Мы используем CruiseControl.NET, который вызывает скрипт MSBuild. При отладке сценария сборки мы постоянно вносим небольшие изменения и запускаем сборку через веб-консоль CruiseControl.NET, работающую на IIS. Все только на одной машине, так как мы просто тестируем.
Я заметил, что некоторые изменения, которые мы вносим в скрипт MSBuild, не регистрируются. Иногда они проталкиваются, иногда сервер несколько устаревших версий. Иногда перезапуск служб IIS делает свое дело. Иногда даже это не работает.
Кто-нибудь знает о том, что происходит в фоновом режиме? Есть ли какой-то кэш, который мы должны очистить для веб-приложений? Где это может быть?
Редактировать: Чтобы уточнить, все мои вещи находятся на одной машине, так как я все еще на стадии тестирования. Поэтому я не думаю, что контроль версий должен быть проблемой. Мой ccnet.config просто вызывает цель MSBuild. Вот упрощенный пример:
<project>
<tasks>
<msbuild>
<executable>$(netFrameworkRoot)\MSBuild.exe</executable>
<projectFile>C:\MyProject\ProductBuild.proj</projectFile>
<targets>BuildProject</targets>
</msbuild>
</tasks>
</project>
ProductBuild.proj - это скрипт MSBuild, написанный вручную, который создает множество других решений .NET и упаковывает установщик с помощью vdproj.
Кажется, что изменения, внесенные в мой скрипт сборки, не всегда вступают в силу, когда я запускаю сборку на CruiseControl. Я думаю, что было бы безопаснее перезапустить службу CCNet, но я надеялся, что мне не придется прерывать текущие сборки.