私のチームには大規模なソリューション (〜 500 csproj) があります。VS2012 を使用し、MSBuild 4 を使用する TFS Build を使用してビルドします。現在はシリアルでビルドしていますが、並行してビルドしたいと考えています ( を使用msbuild /maxcpucount:4
)。ただし、4 プロセッサのマシンで試してみると、奇妙なエラーが発生します。
11:2>CSC : fatal error CS0042: Unexpected error creating debug information file 'C:\Common\obj\Debug\Common.PDB' -- 'C:\Common\obj\Debug\Common.pdb: The process cannot access the file because it is being used by another process. [C:\Common\Common.csproj]
ログを見ると、2 つの msbuild ノードが同じ csproj をビルドしようとしていたため、出力の書き込み時に衝突していました。
10>Project "C:\Utils\Utils.csproj" (10) is building "C:\Common\Common.csproj" (11) on node 4 (default targets).
46:2>Project "C:\Objects\Objects.csproj" (46:2) is building "C:\Common\Common.csproj" (11:2) on node 1 (default targets).
MSBuild が同じプロジェクトを 2 回ビルドしようとするのはなぜですか?