Pergunta

Eu tenho 3 scripts de MSBuild para implantação, 1 para a implantação de UI 1 para a implantação de um par de serviços web. 1 para a implantação de serviços de back-end.

Agora eu gostaria de criar um script MSBuild implantação um clique, o que chamaria todos os acima 3 scripts, que podem ser executados a partir de um servidor TeamCity.

Então, como posso chamar esses três scripts MSBuild de um script MSBuild diferente.

Foi útil?

Solução

Outras dicas

Eu não usei TeamCity Server, mas uma solução alternativa possível é a de combinar os três scripts de construção em um script. E colocar tarefas dos três scripts separados em metas separadas no arquivo mestre de construção. Assim, em vez dos três scripts de construção separados, você tem um script de construção com três alvos, nomeadamente deployUI, deployServices, deployBackend. amostra não testada abaixo:

    <?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>

Em MSBuild 4.0 uma opção poderia ser a condicionalmente importação a 3 arquivos de projeto em seu script MSBuild implantação um clique:

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

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

Em seguida, use o recurso de AfterTargets sobre as metas que você deseja executar em seus arquivos de projeto separado que você importou:

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

Isto lhe dará flexibilidade para personalizar a implantação de dentro TeamCity.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top