Как вы вызываете несколько скриптов MSBuild из одного скрипта MSBuild
-
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. Р>