1つのMSBuildスクリプトから複数のMSBuildスクリプトを呼び出す方法

StackOverflow https://stackoverflow.com/questions/1213228

  •  06-07-2019
  •  | 
  •  

質問

展開用に3つのMSBUildスクリプトがありますが、 UIを展開するための1 1つのWebサービスのデプロイ用。 バックエンドサービスをデプロイする場合は1。

ここで、TeamCityサーバーから実行できる上記の3つのスクリプトをすべて呼び出すワンクリック展開MSBuildスクリプトを作成したいと思います。

では、これら3つのMSBuildスクリプトを異なるMSBuildスクリプトから呼び出すにはどうすればよいですか。

役に立ちましたか?

他のヒント

TeamCity Serverを使用したことはありませんが、3つのビルドスクリプトを1つのスクリプトに結合する方法が考えられます。そして、3つの個別のスクリプトのタスクをマスタービルドファイルの個別のターゲットに配置します。したがって、3つの別個のビルドスクリプトの代わりに、3つのターゲット、つまりdeployUI、deployServices、deployBackendを含む1つのビルドスクリプトがあります。以下のテストされていないサンプル:

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

    <Target Name="DefaultTarget">
            <CallTarget Targets="deployUI" ContinueOnError="false"></CallTarget>
            <CallTarget Targets="deployServices" ContinueOnError="false"></CallTarget>
            <CallTarget Targets="deployBackend" ContinueOnError="false"></CallTarget> 
    </Target>

    <Target Name="deployUI">
            <!-- Put UI deployment tasks here -->
    </Target>

    <Target Name="deployServices">
            <!-- Put Services deployment tasks here -->
    </Target>

    <Target Name="deployBackend">
            <!-- Put Backend deployment tasks here -->
    </Target>
</Project>

MSBuild 4.0のオプションは、条件付きでインポートすることです3プロジェクトファイルをワンクリックで展開するMSBuildスクリプト:

<Import Project="ProjectPath1" Condition="'$(DeployUI)'!=''" />
<Import Project="ProjectPath2" Condition="'$(DeployWebServices)'!=''" />
<Import Project="ProjectPath3" Condition="'$(DeployBackendServices)'!=''" />

<Target Name="DeployTheWorld">
    <Message Text="Deploying..." />
</Target>

AfterTargets機能を使用しますa>インポートした個別のプロジェクトファイルで実行するターゲット:

  <Target Name="DeployUI" AfterTargets="DeployTheWorld">
    <Message Text="Hello from DefaultAfterTarget"/>
  </Target>

これにより、TeamCity内からデプロイメントを柔軟にカスタマイズできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top