かなり複雑な Visual Studio ソリューション (2010 ですが、問題ではありません) があり、名前を変更する必要があります。
新しいソリューション名に合わせてフォルダーの名前を変更したいのですが、フォルダー名を自動的にリファクタリングする方法がわからず、すべてのプロジェクト ファイルを調べるのは大変です。
これを行うための公式な方法はありますか?
ベストアンサー1
.sln ファイルを手動で編集する
この方法は、Windows エクスプローラーに表示されるプロジェクトのディレクトリの名前を変更することを目的としています。
この方法では、以下のプロジェクト ファイルの削除/追加方法の問題(参照が消える) は発生しませんが、プロジェクトがソース管理下にある場合は問題が発生する可能性があります (以下の注記を参照)。これが、手順 2 (バックアップ) が非常に重要である理由です。
- Visual Studio を閉じます。
- .sln ファイルのバックアップを作成します (いつでもロールバックできます)。
Project1
ディレクトリの名前を に変更したいとしますProject2
。- ソース管理を使用していない場合は、 Windows エクスプローラーを使用してフォルダーの名前を から に変更します
Project1
。Project2
- ソース管理を使用している場合は、ソース管理が提供する機能を使用して、フォルダーの名前を から に変更します
Project1
。Project2
これにより、ファイルの履歴が保持されます。たとえば、 の場合、TortoiseSVN
ファイルを右クリックし、 を選択しますTortoiseSVN .. Rename
。 - .slnファイルで、テキストエディタを使用して、
Project1
のすべてのインスタンスを に編集します。Project2
メモ帳。 - Visual Studio を再起動すると、すべてが以前と同じように動作しますが、プロジェクトは別のディレクトリにあります。
ご覧いただくこともできますソリューションの名前を手動で変更するまたはこの手動プロセスを説明する投稿。
利点
- Windows エクスプローラー内のディレクトリをソリューション内のプロジェクト名と一致させることができます。
- この方法では、他のプロジェクトからこのファイルへの参照は削除されません(プロジェクト ファイルの削除/追加方法よりも優れている点については、以下の他の回答を参照してください)。
警告
- この方法ではソース管理に問題が発生する可能性があるため、名前を変更する前にすべてを .zip ファイルにバックアップすることが重要です。
- プロジェクトがソース管理下にある場合、ソース管理外 (Windows エクスプローラーを使用) でファイルまたはディレクトリの名前を変更すると、問題が発生する可能性があります。可能であれば、そのファイルの履歴を保存するために、ソース管理フレームワーク自体を使用してファイルの名前を変更することをお勧めします(右クリックしてコンテキスト メニューを確認すると、ファイルの名前を変更する機能がある場合があります)。
2014-11-02 更新
ReSharper には、上記の手動の方法と同じ結果を達成するための自動化された方法が追加されました。名前空間に青い波線の下線が引かれている場合は、アクション ピラミッド アイコンをクリックして、次のいずれかを実行します。
- Windows エクスプローラーのディレクトリ名と一致するように名前空間の名前を変更します。または、
- 名前空間に合わせて Windows エクスプローラーでディレクトリの名前を変更します。
2 番目のケースでは、最後の単語が Windows エクスプローラー内の新しいディレクトリ名を定義します。たとえば、名前空間を に変更するとViewModel2
、ファイルをフォルダー に移動することが提案されますViewModel2
。
ただし、これによって必ずしもソース管理内のファイルが更新されるわけではないので、手動の方法を使用する必要がある場合があります。
2018-01-31 更新
Visual Studio 2008、2010、2012、2013、2015、2017 Update 1、2、3、4、5 でテスト済み。
2020-05-02更新
Visual Studio 2019 でテスト済み。
2021-11-19更新
再テストしました。まだ動作します。
2022-11-30更新
Git の最新バージョンではファイル名の変更が自動検出されるため、差分の履歴を保存するために特別な注意は必要ありません。