5

約 80 のプロジェクトを含む VS2008 ソリューション ファイルがあります (はい、それが悪いことはわかっています)。

プロジェクトはさまざまなフォルダーに配置されており、最上位の「Libs」フォルダーにある他のサードパーティの DLL に依存するものもあります。

これをいくつかの小さな .sln ファイルにリファクタリングし、それぞれに適切な数のプロジェクトを含めたいと考えています。

問題は、プロジェクト ファイルを移動すると、ファイル内に保存されている相対パスが破損するため、これを修正するために多くの手動の「パッチ アップ」を行う必要があることです。

このようなことを行うためのツールや実績のある手法はありますか?

4

1 に答える 1

1

私たちは同様のことを行い、参照を修正するために、.csproj または .vbproj ファイル (基本的には xml ファイル) を解析し、.proj ファイル自体がその後に配置された場所に基づいて影響を受けるパスを修正する簡単なユーティリティを作成しました。リファクタリング。これは、手動でプロジェクト xml を変更したり、参照を追加して人的エラーを回避したりするよりも優れていました。

proj ファイルの場所と共通ファイル (またはその他のファイル) の場所がわかったら、プロジェクト ファイルの参照ノードを相対パスで変更します。したがって、たとえば、オリジナルを変更する必要がある場合があります

<Reference Include="NHibernate">
      <HintPath>..\..\ServicesShared\Library\NHibernate.dll</HintPath>
</Reference> 

.proj ファイルで

<Reference Include="NHibernate">
      <HintPath>..\Common\ServicesShared\Library\NHibernate.dll</HintPath>
</Reference> 

それが NHibernate.dll が現在存在する場所である場合。

うまくいけば、これは皆さんのために働くでしょう。

于 2012-07-20T16:45:11.987 に答える