Clean
オプションが無効でソースファイルが変更されていないのに(ソースフェッチでは何も変更されていない)、VSTS msbuildタスクがCoreCompile
の実行を継続しているようです。VSTS Visual Studioビルドタスクはインクリメンタルではありません。
ローカルでローカルまたは直接ビルドマシンでmsbuild
を実行すると、予想外の動作をします。変更されていないプロジェクトはすべて再構築されません。 CoreCompile
は実行されません。csc.exe
Clean
オプションが無効でソースファイルが変更されていないのに(ソースフェッチでは何も変更されていない)、VSTS msbuildタスクがCoreCompile
の実行を継続しているようです。VSTS Visual Studioビルドタスクはインクリメンタルではありません。
ローカルでローカルまたは直接ビルドマシンでmsbuild
を実行すると、予想外の動作をします。変更されていないプロジェクトはすべて再構築されません。 CoreCompile
は実行されません。csc.exe
これは、MSBuildが自動的に生成してコンパイルに挿入する "TargetFrameworkMoniker"ファイルがテンポラリディレクトリに書き込まれていること、つまりSystem.IO.Path.GetTempPath()
を実行したときに得られるものであることがわかりました。
ただし、VSTSエージェントは独自のテンポラリディレクトリ(_temp
)を指定し、ビルドごとにクリアするようです。これは良い動作のようです - それを修正する必要があるMSBuildです(IMO)。
/p:TargetFrameworkMonikerAssemblyAttributesPath=$(Build.Repository.LocalPath)\temp.moniker.cs
:
あなたのプロジェクトが混在フレームワークを使用する場合は動作しない場合があります、という迅速かつ汚い修正は、このMSBuildのオプションを追加することです
/p:GenerateTargetFrameworkAttribute=False