3

私は9つのプロジェクトで解決策を持っています。各プロジェクト内のすべての参照は、CopyLocal プロパティが False に設定されています。

VS からビルドすると、これらの参照されたバイナリは出力ビルド ディレクトリにコピーされません。同様に、msbuild を使用してビルドすると、プロジェクト バイナリのみが表示され、参照は表示されません。

しかし、msbuild コマンドで出力パスを指定すると、一部の参照がコピーされてしまい、その理由がわかりません。設定し忘れている設定はありますか?誰もこれを見たことがありますか?

4

1 に答える 1

2

プロパティを設定せずにアプリケーションをビルドするOutDirと、ファイルはプロジェクト プロパティで指定されたパス (ビルド\出力パス) にコピーされます。この後、参照されたプロジェクトの出力 (*.dll ファイル) をOutDirアプリケーション (*.exe) の にコピーする別の手順があります。ただし、CopyLocalfalse に設定すると、この最後の手順は実行されません。このような:

ProjectEXE\OutDir = c:\a\bin
ProjectDLL\OutDir = c:\b\bin

OutDirこの 2 つは異なる (そして、プロジェクトのプロパティで異なる方法で指定されている)という事実に注意してください。

ただしOutDir、コマンド プロンプトを使用して設定すると、両方のOutDirパラメータが同じパスに設定されます。最初に DLL と EXE をビルドした場所と同じ場所であるという事実を除いて、アプリケーションの同じディレクトリに DLL の最終的なコピーはまだありません。このような:

msbuild yourSolution.sln /p:OutDir="c:\a\bin\"

ProjectEXE\OutDir = c:\a\bin
ProjectDLL\OutDir = c:\a\bin
于 2013-01-11T16:09:50.597 に答える