Вопрос

У нас есть настройка CC.NET в нашем приложении ASP.NET.Когда мы создаем проект, приложение ASP.NET предварительно компилируется и копируется в общий сетевой ресурс, из которого сервер запускает приложение.

Сервер немного отличается от блоков разработки, а следующий сервер в нашей промежуточной среде отличается еще больше.Разница заключается в конкретных файлах конфигурации и т. д. Поэтому я хочу исключить некоторые файлы или удалить их перед копированием предварительно скомпилированного приложения в общий сетевой ресурс.

Мой конфигурационный файл выглядит так:

    <project name="Assembly.Web.project">
    <triggers>
        <intervalTrigger seconds="3600" />
    </triggers>
    <sourcecontrol type="svn">
        <trunkUrl>svn://svn-server/MyApp/Web/Trunk</trunkUrl>
        <workingDirectory>C:\build-server\Assembly\Web\TEST-HL</workingDirectory>
    <executable>C:\Program Files (x86)\SVN 1.5 bin\svn.exe</executable>
    <username>uid</username>
    <password>pwd</password>
    </sourcecontrol>
    <tasks>
        <msbuild>
          <executable>C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe</executable>
          <workingDirectory>C:\build-server\Assembly\Web\TEST-HL</workingDirectory>
          <projectFile>C:\build-server\Assembly\Web\TEST-HL\Web\Web.sln</projectFile>
          <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
          <targets>Build</targets>
          <timeout>900</timeout>
          <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
        </msbuild>
    </tasks>
    <publishers>
        <buildpublisher>
             <sourceDir>C:\build-server\Assembly\Web\PrecompiledWeb</sourceDir>
             <publishDir>\\test-web01\Web</publishDir>
             <useLabelSubDirectory>false</useLabelSubDirectory>
             <alwaysPublish>false</alwaysPublish>
        </buildpublisher>           
    </publishers>
</project>

Как видите, я использую buildPublisher для копирования предварительно скомпилированных файлов в общий сетевой ресурс.Здесь я хочу либо 1) удалить определенные файлы перед их копированием, либо 2) заменить эти файлы после того, как они будут скопированы.

Я НЕ хочу, чтобы какое-то приложение отслеживало изменения в определенных файлах, а затем после этого заменяло файлы другими.Я хочу, чтобы что-то выполнялось CC.NET или запускалось CC.NET.

Можете ли вы запустить файл .bat с помощью CC.NET?

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

Решение

Вы должны использовать НАнт для таких вещей.Здесь Справочник задач Нанта..

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

Я использую НАнт задача для всех публикаций, развертываний, очистки и т. д.

Взгляни на MSDEPLOY или Проекты веб-развертывания.Есть вопрос, который даст подробнее здесь

Конечно, CruiseControl.NET может запускать командный файл, просто используйте задачу exec.Однако более простой ответ может заключаться в том, чтобы MSBuild выполнил эту задачу за вас.Должно быть просто добавить несколько шагов в цель посткомпиляции.

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