Выберите MSBuldTarget для запуска с Cruisecontrol.Net - PullRequest
1 голос
/ 17 апреля 2009

Я хочу использовать CCNetRequestSource с именем триггера, запускающего задачу Msbuild. Например, когда ожидается триггер «toto», я хочу запустить цель «toto» на MsBuild. Является ли это возможным ? Это для ночной сборки, я хочу создать MSI-файл и документацию в это время, я создал конкретную цель в MSBuild, но я не нашел, как ее выполнить, только когда выброшен определенный триггер.

Ответы [ 2 ]

1 голос
/ 21 апреля 2009

Существует синтаксис msbuild, который должен помочь вам в этом. Взгляните на следующие ссылки:

Вы должны попытаться добавить файл сборки фасада для вызова CruiseControl, который делегирует файлы вашего решения с конструкцией, подобной следующей:

<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>
0 голосов
/ 23 апреля 2009

Я делаю это так:

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

Я выбрал это решение, потому что мне всегда нужна первая сборка :) Вторая цель - проект с песочным замком, чтобы обедать только ночью :)

...