2011-12-16 12 views
2

チームビルド(2010)を使用して、msbuildを呼び出すバッチファイルを呼び出すExecタスクでmsbuildスクリプトを呼び出しています。このように:もちろんteambuildからmsbuildのバッチファイルからmsbuildを呼び出すにはどうすればいいですか?

<Exec Command="BatchFileThatCallsMSBuild.bat" /> 

バッチファイルは、他のジャンクの束を行うか、私はただのMSBuildタスクを使用すると思います。

バッチファイルがmsbuildを呼び出そうとすると、問題が見つからないという問題があります。

'msbuild' is not recognized as an internal or external command, operable program or batch file. 

execタスクに必要な環境を設定する方法を教えてください。

私はにコマンドを変更してみました:まだMSBuildのが発見されていない、

<Exec Command="%22$(VS100COMNTOOLS)..\..\VC\vcvarsall.bat%22&amp;BatchFileThatCallsMSBuild.bat" /> 

しかし、誰サイコロ。

+0

バッチファイル内のmsbuild実行可能ファイルへのフルパスを指定していますか、または相対パスに頼っていますか(期待どおりであることは保証されていません)? – David

+0

バッチファイルは、 "msbuild"が不鮮明であると呼び出します。 –

+0

msbuild.exeへのフルパスを指定してみてください。私はdev pc(実際には、私はちょうど数時間前にWindowsを再インストールしたPC上にあります)だから私はあなたのための完全なパスを調べることはできませんが、それは%Windir%\ Microsoft.NET \ Framework \(Framework version)\ – David

答えて

2

私が思いついた答えは、あまり実証されていないオンラインの複数行のコマンド文字列をExecタスクに利用することでした。

<Exec Command="call &quot;%VS100COMNTOOLS%..\..\VC\vcvarsall.bat&quot; x86 
    set AnotherEnvVar=$(RandomMSBuildProperty) 
    call BatchFileThatCallsMSBuild.bat 
    type file_with_output_from_the_msbuilds_in_the_batchfile.log" /> 

これは、バッチmsbuildsはそれを見ることができExecの環境に出MSBuildのプロパティを押して、私は(vcvarsallするために呼び出す)基本的なビルド環境をセットアップしてみましょうバッチファイルを呼び出し、さらに隠されたMSBuildのを引っ張りますチームビルドのより明確なログインのために、Execタスクのレベルまで出力します。

私のコードでこの特定のVSバージョンへの参照をもう1つ埋め込む必要はありませんが、今はうまくいきます。

関連する問題