.csproj
ソリューション内のいくつかのプロジェクトを参照するビルドを試みます。これらの参照は。でマークされていCopyLocal=False
ます。そして、これは望ましい動作です。
MSBuildを使用してCI用にビルドするので、を介して出力フォルダーを設定します/p:OutputPath="some output dir"
。/p:SolutionDir="path to the solution"
また、いくつかのNuGet参照を正しく解決するように設定しました。
問題は、出力ディレクトリへの絶対パスを指定してOutputPathを指定すると(のようにd:\solution\build\buildgroupsubfolder
)、MSBuildがすべての依存関係を出力ディレクトリにコピーする理由がわかりません。また、相対パス(など..\..\..\..\..\build\buildgroupsubfolder
)を使用して出力パスを指定すると、MSBuildはCopyLocal=false
参照を正しく処理し、出力ディレクトリにコピーしません。
ソリューションにはいくつかのネストがあり、プロジェクトはグループに分割されているため、サブフォルダーにビルドする必要があります。また、プロジェクト自体のパスではなく、ベースビルドパスを基準にしてビルドパスを指定できるようにしたいと思います。
絶対パスが指定されている場合にMSBuildがCopyLocal=falseを無視し、相対パスが指定されている場合に正しく処理するのはなぜですか?