Действия CruiseControl.NET после сборки
-
02-07-2019 - |
Вопрос
У нас есть настройка 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 выполнил эту задачу за вас.Должно быть просто добавить несколько шагов в цель посткомпиляции.