Как вы вызываете несколько скриптов MSBuild из одного скрипта MSBuild

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

  •  06-07-2019
  •  | 
  •  

Вопрос

У меня есть 3 сценария MSBUild для развертывания, 1 для развертывания пользовательского интерфейса 1 для развертывания нескольких веб-сервисов. 1 для развертывания серверных служб.

Теперь я хотел бы создать сценарий MSBuild для развертывания одним щелчком, который будет вызывать все 3 вышеупомянутых сценария, которые могут быть выполнены с сервера TeamCity.

Итак, как я могу вызвать эти три сценария MSBuild из другого сценария MSBuild.

Это было полезно?

Решение

Существует MSBuild задача MSBuild .

Другие советы

Я не использовал TeamCity Server, но одно из возможных альтернативных решений - объединить три сценария сборки в один сценарий. И поместите задачи трех отдельных сценариев в отдельные цели в основном файле сборки. Таким образом, вместо трех отдельных сценариев сборки у вас есть один сценарий сборки с тремя целями, а именно deployUI, deployServices, deployBackend. Непроверенный образец ниже:

    <?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 для целей, которые вы хотите запустить в отдельных импортированных вами файлах проекта:

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

Это позволит вам гибко настраивать развертывание из TeamCity.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top