2017-02-17 26 views
1

У меня есть приложение MVC, а служба WebAPI - это единственное решение, и для обоих проектов я создал профиль publilsh, используя развернутую файловую систему. Он работает очень красиво. Однако сначала мне нужно вручную развернуть каждый проект в Staging, а затем в Production. Это утомительно, если не сказать больше.MSBuild из командной строки, но нет app_offline.htm?

Я выяснил, как я могу вызвать MSBuild через командную строку и указать профиль публикации. Это позволяет мне вызывать MSBuild на уровне решения, и приложение MVC и Служба будут развернуты. Отлично. Тем не менее ...

Когда я вызываю функцию публикации через VS2015 (щелкните правой кнопкой мыши по проекту, выберите «Опубликовать», выберите правильный профиль и прочь), он копирует app_offline.htm, удаляет то, что в настоящее время существует, создает проекта и развертывания. Но когда я делаю это через командную строку, app_offline.htm никогда не появляется, он не удаляет файлы перед развертыванием.

Есть ли какой переключатель или параметр, мне не хватает в моей командной строке MSBuild, который довольно откровенно является довольно просто:

msbuild .\mySolution.sln /p:DeployOnBuild=true /p:PublishProfile=Staging 

Я знаю, что Web Deploy является предпочтительным методом, но мы немного назад здесь , мы никогда не принимаем последнюю и самую последнюю, поэтому мне нужно выяснить, как я могу использовать мои текущие публикации, используя файловую систему, немного более эффективно, чем публикацию каждого проекта по отдельности, несколько раз.

ответ

0

По большей части VS и MSBuild через командную строку выполняют, по сути, одно и то же. Но у меня есть аналогичные проблемы, с которыми вы сталкиваетесь. Один из способов борьбы с этим - создать цель, чтобы убедиться, что ваши файлы скопированы соответствующим образом. This MSDN Question более подробно описывает несколько решений, которые могут помочь. В нескольких случаях у меня есть сценарии powershell или пакетные файлы, которые проверяются в рассматриваемых проектах, и я запускаю их на целевых компьютерах после развертывания решения.