2

いくつかの DLL を生成するソリューションに取り組んでいます。プロジェクト A が A.dll を生成するとします。プロジェクト B は、A.dll を使用していくつかの機能を実行します。

プロジェクト B が実行されると、出力ディレクトリに A.dll が存在するかどうかがチェックされ、存在しない場合は、ヒントパスから A.dll がコピーされます (私が理解しているように)。ただし、A.dll が既に出力ディレクトリにある場合は、コピーされません。

したがって、プロジェクト A に変更があり、新しい A.dll が生成された場合、出力ディレクトリのコピーが削除されるまで、プロジェクト B は新しい A.dll を取得しません。したがって、プロジェクト B を実行すると、古いコードが使用されます。

DLL を常にコピーするように強制する方法はありますか? プロジェクト B をビルドする前に、出力ディレクトリ内のコピーを削除することはできますか?

使い方はとても簡単ですが、ProjectReference私たちが使用している別のビルド システムではサポートされていません。

4

1 に答える 1

3

この問題を解決する 1 つの方法は、プロジェクト A でビルド後のイベントを作成することです。プロジェクト A がビルドされるたびに、A.dll を特定のディレクトリにコピー (または置換) するように指示できます。このようなもの:

copy /Y "$(TargetDir)$(ProjectName).dll" "C:\SomePath"
于 2013-05-17T20:03:37.767 に答える