3

3 つの .net プロジェクトがあります。

Project1.dll は、VS2008 プロジェクトによって生成されます。

Project2.dll は、Project1.dll を参照する VS2005 プロジェクトによって生成されます。

Project3.dll は、Project1.dll と Project2.dll の両方を参照する VS2008 プロジェクトによって生成されます。

現在、Project1.dll をビルドし、Project 2 が取得できる場所に手動でコピーしています。

次に、Project2.dll をビルドし、それと Project1.dll を Project 3 が取得できる場所に手動でコピーします。

明らかに私は何か間違ったことをしています(手動)。プロジェクトの参照を最新の状態に保つ正しい方法は何ですか?


Project2 を VS2008 に更新してから、3 つのプロジェクトすべてを含む 1 つのソリューションを作成することは、現時点ではオプションではありません。VS2008 ではまだ動作しないサードパーティの VisualStudio プラグインがあります。Project2 は VS2005 のままにする必要があります

Project1 と Project3 を VS2005 に更新解除してから、1 つのソリューションを作成することもできません。これらのプロジェクトでは、C# 3.0 と .net 3.5 の機能に依存しています。

4

5 に答える 5

4

おそらく最良の選択肢は、3 つのプロジェクトすべてに共通のビルド フォルダーを用意することです。これは、[プロジェクト プロパティ] -> [ビルド] -> [出力パス] で実行できます。次に、出力フォルダーへの参照をポイントします。そうすれば、下位のプロジェクトをビルドするたびに、上位のプロジェクトに最新バージョンが含まれます。構成 (デバッグ、リリース) ごとにパスを設定することもできるため、ビルドの種類ごとにパスを変更する必要はありません。

于 2008-10-01T15:39:41.847 に答える
2

Project3 のビルド前のイベントでは、バッチ ファイルを使用して Project1 をビルドし、それを Project2 フォルダーにコピーしてから、project2 をビルドし、それを project3 フォルダーにコピーします。

于 2008-10-01T15:41:07.523 に答える
1

ソリューション間で csproj/vbproj ファイルを共有することをお勧めします。プロジェクト ファイルの形式は、スタジオの 2 つのバージョン間で互換性があり (ただし、ソリューション ファイルは互換性がありません)、VS2008 プロジェクトが 2.0 ランタイムをターゲットにしている限り、コンパイルに問題はありません。これにより、依存関係を処理するプロジェクトを参照できるようになります。

これが厄介になる唯一の場所は、スタジオの 2 つのバージョン間で動作する必要がある Web プロジェクトがある場合です。その場合、正しい MSBuild ターゲット ファイルを指すプロジェクト ファイルにいくつかの変更があります。

于 2008-10-01T16:17:42.973 に答える
0

依存関係を処理し、DLL をビルドし、手動で行っていることを実行するビルド スクリプトを使用します。

于 2008-10-01T15:35:04.543 に答える
0

過去に使用したトリックは、すべてを 2008 に移行することです。次に、2005 年にプロジェクト 2 用の特別なソリューションをセットアップし、それを使用してアドインを操作します。これが機能するかどうかは、2008 年のプロジェクト 2 の振る舞いにかかっています。

于 2008-10-01T16:14:22.420 に答える