新しい TeamCity エージェントをセットアップしようとしています。
新しいエージェントが呼び出しています: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe
既存のエージェントが呼び出している間: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64\CL.exe
どちらも 64 ビット ホストであり、64 ビット バイナリを構築しているため、既存のエージェントは、私が知る限り正しいことを行っています。両方とも同じ引数で msbuild を呼び出しています (詳細は無実を保護するために削除されています): C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe (xxxx.sln /clp:PerformanceSummary /p:Configuration=Release / p:プラットフォーム=x64)
このブログを見つけました: http://blogs.msdn.com/b/aaronhallberg/archive/2007/07/16/msbuild-property-evaluation.aspx、msbuild がプロパティを評価する方法を説明しています。しかし、ツールを決定するためにどのプロパティが使用されているかはわかりません。
なぜ私がツールの選択にこだわるのか不思議に思うかもしれません。CL 呼び出しはどちらの場合でも成功します (64 ビット ウィンドウで 32 ビット コンパイルを実行できます)。しかし、新しいエージェントでは、プリコンパイル済みヘッダーでエラーが発生します。 - プリコンパイル済みヘッダーは、同じ AMD64\CL.exe によって消費されています。
したがって、msbuild が実際に使用する小道具を誰かが知っていれば、これを理解するのに役立ちます。
補足として、ワークステーションの VC++ ディレクトリ、実行可能ディレクトリの下の Visual Studio プロジェクト プロパティ ページにクロス コンパイラ (x86_amd64\CL.exe) が表示されます。どちらがWin 7、64ビットです。継承されていると書かれており、msbuild props (C:\Users\bdelavega\AppData\Local\Microsoft\MSBuild\v4.0) をカスタマイズしていません。なぜそれがデフォルトになるのですか?