Frage

Ich habe 3 msbuild Skripte für die Bereitstellung, 1 für die Bereitstellung von UI 1 für ein paar Web-Services bereitstellen. 1 für Back-End-Dienste bereitstellen.

Nun würde Ich mag einen eine Klick Bereitstellung MSBuild-Skript erstellen, die alle oben genannten 3-Skripte nennen würden, die von einem Server Teamcity ausgeführt werden können.

Wie kann ich diese drei MSBuild Scripts aus einem anderen MSBuild Script aufrufen.

War es hilfreich?

Lösung

Andere Tipps

Ich habe nicht Teamcity Server, aber eine mögliche alternative Lösung zu kombinieren, um das drei Build-Skripte in ein Skript verwendet. Und setzen Aufgaben der drei separaten Scripts in separate Ziele in der Master-Build-Datei. Also, statt der drei separaten Build-Skripte, haben Sie ein Build-Skript mit drei Ziele, nämlich deployUI, deployServices, deployBackend. Ungeprüfte Probe unter:

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

In MSBuild 4.0 eine Option sein könnte href="http://msdn.microsoft.com/en-us/library/92x05xfs.aspx" rel="nofollow"> zum die 3 Projekt-Dateien in einer einzigen Klick Bereitstellung MSBuild-Skript:

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

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

Dann nutzen Sie die AfterTargets verfügen über die Ziele wollen Sie in Ihrer separaten Projektdatei ausführen, die Sie importiert haben:

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

Dies wird Ihnen flexibel geben in der Bereitstellung von innen Teamcity anpassen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top