Frage

Ich möchte CCNetRequestSource verwenden, die der Name des Auslösers ist, der die MSBuild -Aufgabe startet. Zum Exemple, wenn der Trigger "Toto" ausgeschlossen wird, möchte ich das "Toto" -Ziel auf MSBuild starten. Ist es möglich ? Es ist für einen nächtlichen Build, ich möchte MSI -Datei und DOC zu diesem Zeitpunkt erstellen. Ich habe das spezifische Ziel in MSBuild erstellt, aber ich habe nicht festgestellt, wie man sie ausführt, wenn ein spezifischer Auslöser war.

War es hilfreich?

Lösung

Es gibt eine MSBuild -Syntax, die Ihnen dabei helfen sollte. Schauen Sie sich die folgenden Links an:

Sie sollten versuchen, eine Fassade -Build -Datei hinzuzufügen, die CruiseControl anrufen kann, die Ihre Lösungsdateien mit einem Konstrukt wie Folgendes delegiert:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Choose>
            <!-- If the toto CCNETRequestSource was submitted -->
        <When Condition="'$(CCNetRequestSource)'=='toto'">
            <PropertyGroup>
                <Target Name="toto">
                    <MSBuild Projects="MyProject.sln" Properties="Configuration=Debug" Targets="toto" />
                </Target>
            </PropertyGroup> 
        </When>
            <Otherwise><!-- Place your standard build call here --></Otherwise>
    </Choose>
    </Target>
</Project>

Andere Tipps

Ich mache es so:

            <Project DefaultTargets="Integration" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <PropertyGroup>

            <Configuration Condition="'$(CCNetBuildCondition)' == 'ForceBuild'">Release</Configuration>
            <Configuration Condition="'$(CCNetBuildCondition)' != 'ForceBuild'">Debug</Configuration>
        </PropertyGroup>
      <Target Name="Integration" DependsOnTargets="ConstruireSolution;FaireDoc">
      </Target>
      <Target Name="ConstruireSolution" >
    <!-- with first build -->
<MSBuild Projects="MyBuild.sln" Properties="Configuration=$(Configuration)" Targets="Clean;Rebuild" />
    </Target>

    <Target Name="FaireDoc" Condition=" '$(CCNetRequestSource)' =='FaireDoc'">
    <!--Build to add when FaireDoc trigger is fired -->
<MSBuild Projects="C:\CI\Plateforme\Documentation\Doc.shfbproj" Targets="Build" />
      </Target>

Ich wähle diese Lösung, weil ich immer den ersten Build brauche :) Das zweite Ziel ist nur nachts ein Sandcastle -Projekt zum Mittagessen :)

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