Я унаследовал очень большой проект веб-сайта VS2012 (а не веб-приложение) и пытаюсь автоматизировать его развертывание. Есть тонны круговых ссылок в проекте, чтобы заставить его предварительно скомпилировать с помощью aspnet_compiler.exe. Мне нужно включить фиксированные имена. Проблема в том, что это заставляет сборку занимать около 20 минут на моем четырехъядерном ядре, 16 ГБ оперативной памяти, ssd-машине разработчика. Предыдущему разработчику не пришлось иметь дело с этим, поскольку он просто скопировал весь источник на веб-сервер производства.
Итак, прежде чем решать проблему круговых ссылок, я хочу, по крайней мере, автоматически развернуть проект, используя msdeploy. Я могу использовать профили публикации в visual studio, и он делает именно то, что я хочу:
- Создает ссылочную DLL и добавляет их в проект.
- Преобразует ли web.config.
- Даже не пытаюсь создать сайт, а просто пакеты в zip файл для меня.
То, что я не могу понять для жизни, - это то, как заставить MSBuild.exe делать то же самое!
MSBuild.exe WebProject.vs2012.sln /m /T:Build
/p:Configuration=Release`;DeployOnBuild=true`;PublishProfile=TestDeploy
Вышеприведенная команда по-прежнему пытается выполнить aspnet_compiler, чего я не хочу. Профиль публикации говорит, что он не должен быть предварительно скомпилирован... но в журналах я вижу, что он выполняет его.
Итак: как я могу использовать msbuild для развертывания проекта веб-сайта без предварительной компиляции?