Задний план
Я использую следующее:
- VS 2012
- Приложения .NET 4.5, включая приложение MVC4, приложение домена C # и проекты NUnit.
- Пользовательский файл MSBuild
- CruiseControl.NET, работающий на сервере сборки
У меня есть следующие цели сборки:
- Очистить: удаляет каталог buildartifacts
- Init: создает пустой каталог buildartifacts
- Compile: компилирует решение.
- Тест: запускает тесты NUnit
- Пакет: создает ZIP-пакет для развертывания.
- Развертывание: развертывание пакета на удаленном сервере IIS.
Проблема
- Когда я запускаю сборку со своего локального компьютера, она отлично упаковывается и развертывается.
- Когда CCNet запускает ту же цель сборки, файлы кажутся развернутыми.
Попытки решения проблемы / потенциальные клиенты
- Я запускал одну и ту же цель в PowerShell с обеих машин и не видел ошибок или предупреждений ни на одном из них.
- Поскольку я приказываю CCNEt переопределить фреймворк, чтобы он указывал на файлы .NET 4.5, которые я скопировал на сервер сборки, я сделал так, чтобы мой локальный компьютер указывал на те же файлы при запуске MSBuild, но моя локальная сборка все еще работала и развертывалась.
- В Visual Studio я удостоверился, что все файлы содержимого помечены действием сборки «Содержимое» и параметром «Копировать в вывод» «Всегда копировать».
Код
- Доступно в основном по адресу https://gist.github.com/53ef2a63931d190593f6
- (файл был очищен, имя приложения и учетные данные заменены и т. д.)