C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

MyProject内に作ったクラスを移動したい /machida (19/05/16(Thu) 09:43) #90984
Re[1]: MyProject内に作ったクラスを移動したい /Hongliang (19/05/16(Thu) 10:02) #90985
  └ Re[2]: MyProject内に作ったクラスを移動したい /machida (19/05/16(Thu) 10:17) #90986 解決済み


親記事 / ▼[ 90985 ]
■90984 / 親階層)  MyProject内に作ったクラスを移動したい
□投稿者/ machida (1回)-(2019/05/16(Thu) 09:43:06)

分類:[VB.NET/VB2005 以降] 

VS2017/VB.NET/Windowsフォーム で開発しています。
ソリューションエクスプローラー上からプロジェクトに新しいクラスを追加しようとして、間違えて

「My Project」を右クリック→「追加」→「新しい項目」

と操作してClass1.vbを作ってしまっていることに大分実装を進めてから気付きました。
実際のファイル階層として「\ソリューション名\プロジェクト名\MyProject\Class1.vb」にファイルがあります。

ファイルがここにあっても他クラスから問題無くアクセスできますが、これだとソリューションエクスプローラーに
Class1.vbが表示されないので不便で、このクラスをプロジェクトフォルダ直下に移動したいのですが、
方法が調べても分からず質問した次第です。

やってみたこととして、
通常のエクスプローラーで直接ファイル移動して、既存の項目として追加したのですが、
元々のファイルが見つからないという、以下のエラーになってしまいます。
「ファイル '〜〜〜\My Project\Class1.vb' が見つかりませんでした。」
この元のファイルを見に行くことを辞められれば済む話だと思うのですが。
[ □ Tree ] 返信 編集キー/

▲[ 90984 ] / ▼[ 90986 ]
■90985 / 1階層)  Re[1]: MyProject内に作ったクラスを移動したい
□投稿者/ Hongliang (802回)-(2019/05/16(Thu) 10:02:10)
2019/05/16(Thu) 10:10:05 編集(投稿者)

※一応、ソリューションのフォルダ全体のコピーを作っておくなどして、いつでも戻せるようにしておいてください。

My Projectフォルダから、Class1.vbを一つ上のフォルダに移動させます。
メモ帳(notepad.exe)を起動し、プロジェクトフォルダにある ***.vbproj を開きます。
Class1 で検索すると、
<Compile Include="My Project\Class1.vb" />
という行が見つかるので、これを
<Compile Include="Class1.vb" />
に書き換えて上書き保存します。

Visual Studioでプロジェクトを開けば、Class1.vbがプロジェクト直下に出ているはずです。
なおVSでプロジェクトを開いたまま上記作業を行った場合、VSがアクティブになった時点でプロジェクトに変更があったから再読み込みするか聞かれるので、「すべて再読み込み」を選びます。
[ 親 90984 / □ Tree ] 返信 編集キー/

▲[ 90985 ] / 返信無し
■90986 / 2階層)  Re[2]: MyProject内に作ったクラスを移動したい
□投稿者/ machida (2回)-(2019/05/16(Thu) 10:17:15)
Hongliang様のご回答通りに操作し問題が解決しました。
vbprojファイルの存在理由が分かっていませんでしたが、大変勉強になりました。

困っていたので助かりました。本当にありがとうございました。
解決済み
[ 親 90984 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -