2012-01-31 5 views
3

2つのバッチファイルだけを順番に実行するTFSBuild.projファイルを作成する必要があります。ビルド定義からprojファイルを呼び出すだけで、projファイルは2つのバッチファイルを順番に呼び出す必要があります。すべてのビルドは、ビルドサーバーにあるバッチファイルによって行われます。2つのバッチファイルを順番に実行するTFSBuild.projファイルを作成するにはどうすればよいですか?

ビルドサーバーにバッチファイルを配置しました。私はエラーを取得しています

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="GetLatest" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 

<Target Name="EndToEndIteration" 
    Condition=" '$(IsDesktopBuild)'!='true' " 
    DependsOnTargets="$(EndToEndIterationDependsOn)" > 
    <CallTarget Targets="GetLatest"/> 
</Target> 

    <Target Name="GetLatest"> 
    <Exec Command="C:\BuildScript\GetFromTFSTask.bat" /> 
    </Target> 
    <Target Name="BuildStampVer"> 
    <Exec Command="C:\BuildScript\BuildTask.bat" /> 
    </Target> 
</Project> 

The command "C:\StampBuild\GetFromTFS.bat" exited with code 3.

私はからビルド実行している、指定されたパスにビルドサーバからバッチファイルを実行する必要があり、次は私が書かれているTFSBuild.projファイルです私の開発サーバー。

答えて

0

これをお読みください。 ?

http://www.danielfortunov.com/software/ $のdaniel_fortunovs_adventures_in_software_development/2009/5月21日/ invoking_batch_files_from_msbuildソース= ActivityLog

アップデート - サンプルコード:このサンプルでは、​​MSBuildのは、呼び出す必要があります依存ターゲットの順序を決定するためにEndToEndIterationDependsOnプロパティを使用するように変更あなたのコードですEndToEndIterationを実行しています。これは理にかなっていますか?

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="GetLatest" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 

<PropertyGroup> 
    <EndToEndIterationDependsOn> 
    GetLatest; 
    BuildStampVer 
    </EndToEndIterationDependsOn> 
</PropertyGroup> 
<Target Name="EndToEndIteration" 
    Condition=" '$(IsDesktopBuild)'!='true' " 
    DependsOnTargets="$(EndToEndIterationDependsOn)" > 
</Target> 

<Target Name="GetLatest"> 
    <Exec Command="C:\BuildScript\GetFromTFSTask.bat" /> 
</Target> 
<Target Name="BuildStampVer" DependsOnTargets="GetLatest" > 
    <Exec Command="C:\BuildScript\BuildTask.bat" /> 
</Target> 
</Project> 
+0

ありがとう、ニック、しかし私は私の問題を解決することができません。私はいくつかの情報を追加しました、あなたはそれを見て、お勧めしますか? – Ashutosh

+0

batファイルには特定の作業ディレクトリが必要ですか?自分で手動で実行しようとしましたか?また、EndToEndIterationはGetLatestでCallTargetを実行しますが、呼び出されるターゲットにBuildStampVerターゲットが含まれている場所はわかりません。そのターゲットをDependsOnなどに入れてはいけませんか? –

+0

こんにちはニック、私はprojファイルについて多くのアイデアを持っていませんでした。私はこれらの2つのバッチファイルを順番に呼び出すprojファイルを書く必要があります。私はバッチファイルですべてを書いており、バッチファイルは手動で実行するとうまくいきます。私のprojファイルを変更する方法を提案してください。 – Ashutosh

0

バッチ終了コード3はパスエラーです。 'GetFromTFS.bat'のパス参照は正しいですか?相対パス参照は、.projが実行されている場所から解決しようとします。

0

私はあなたのコードを試したことがないが、あなたはCMD/Cを呼び出すことによって試さなかった:

<Target Name="GetLatest"> 
    <Exec Command="cmd /c C:\BuildScript\GetFromTFSTask.bat" /> 
</Target> 
<Target Name="BuildStampVer" DependsOnTargets="GetLatest" > 
    <Exec Command="cmd /c C:\BuildScript\BuildTask.bat" /> 
</Target> 
</Project> 

私はそう正しく、コマンドラインにcmd/Cを調整してください、あなたの上記の例を修正しました。

希望する場合があります。

関連する問題