Поделиться через


Создание и запуск командного файла развертывания

Джейсон Ли

В этом разделе описывается, как создать командный файл, который позволит запускать развертывание с помощью файлов проекта Microsoft Build Engine (MSBuild) в виде одношагового повторяемого процесса.

Этот раздел является частью серии учебников, основанных на требованиях к развертыванию на предприятии вымышленной компании Fabrikam, Inc. В этой серии учебников используется пример решения диспетчера контактов для представления веб-приложения с реалистичным уровнем сложности, включая приложение ASP.NET MVC 3, службу Windows Communication Foundation (WCF) и проект базы данных.

Метод развертывания в основе этих учебников основан на подходе с разделением файлов проекта, описанном в разделе Основные сведения о процессе сборки, в котором процесс сборки управляется двумя файлами проектов: один содержит инструкции сборки, которые применяются к каждой целевой среде, а второй содержит параметры сборки и развертывания для конкретной среды. Во время сборки файл проекта для конкретной среды объединяется с файлом проекта, не зависящим от среды, чтобы сформировать полный набор инструкций по сборке.

Обзор процесса

В этом разделе вы узнаете, как создать и запустить командный файл, который использует эти файлы проекта для выполнения повторяемого развертывания в целевой среде. По сути, командный файл просто должен содержать команду MSBuild, которая:

  • Указывает MSBuild выполнить файл Publish.proj , не зависящий от среды.
  • Сообщает файлу Publish.proj , какой файл содержит параметры проекта для конкретной среды и где его найти.

Создание команды MSBuild

Как описано в разделе Основные сведения о процессе сборки, файл проекта для конкретной среды, например Env-Dev.proj, предназначен для импорта в файл Publish.proj , независимый от среды, во время сборки. Вместе эти два файла предоставляют полный набор инструкций по сборке и развертыванию решения в MSBuild.

Файл Publish.proj использует элемент Import для импорта файла проекта, относящегося к среде.

<Import Project="$(TargetEnvPropsFile)"/>

Таким образом, при использовании MSBuild.exe для сборки и развертывания решения Диспетчера контактов необходимо:

  • Запустите MSBuild.exe в файле Publish.proj .
  • Укажите расположение файла проекта для конкретной среды, указав параметр командной строки с именем TargetEnvPropsFile.

Для этого команда MSBuild должна выглядеть следующим образом:

msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj

Теперь это простой шаг для перехода к повторяемому одношаговому развертыванию. Все, что нужно сделать, — это добавить команду MSBuild в CMD-файл. В решении Диспетчера контактов папка Publish содержит файл с именем Publish-Dev.cmd , который выполняет именно это.

%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe Publish.proj /fl /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj
echo 
pause

Примечание

Параметр /fl указывает MSBuild создать файл журнала с именем msbuild.log в рабочем каталоге, в котором был вызван MSBuild.exe.

Чтобы развернуть или повторно развернуть решение Диспетчера контактов, достаточно запустить файл Publish-Dev.cmd . При запуске файла MSBuild:

  • Выполните сборку всех проектов в решении.
  • Создание развертываемых веб-пакетов для проектов веб-приложений.
  • Создайте dbschema и deploymanifest-файлы для проектов базы данных.
  • Разверните веб-пакеты на веб-сервере.
  • Разверните базу данных на сервере базы данных.

Запуск развертывания

Создав командный файл для целевой среды, вы сможете завершить все развертывание, просто запустив файл.

Развертывание решения Диспетчера контактов в тестовой среде

  1. На рабочей станции разработчика откройте windows Обозреватель и перейдите к расположению файла Publish-Dev.cmd.

  2. Дважды щелкните файл, чтобы запустить его.

  3. Если откроется диалоговое окно Открытие файла — предупреждение системы безопасности , нажмите кнопку Выполнить.

  4. Если параметры конфигурации и тестовые серверы настроены правильно, в окне командной строки появится сообщение Сборка выполнена успешно , когда MSBuild завершит обработку файлов проекта.

    Если параметры конфигурации и тестовые серверы настроены правильно, в окне командной строки появится сообщение Сборка выполнена успешно, когда MSBuild завершит обработку файлов проекта.

  5. Если решение развертывается в этой среде впервые, необходимо добавить учетную запись компьютера тестового веб-сервера в db_datawriter и db_datareader роли в базе данных ContactManager . Эта процедура описана в разделе Настройка сервера базы данных для публикации веб-развертывания.

    Примечание

    Эти разрешения необходимо назначить только при создании базы данных. По умолчанию процесс сборки не будет повторно создавать базу данных при каждом развертывании, а сравнивает существующую базу данных с последней схемой и вносит только необходимые изменения. В результате необходимо сопоставить эти роли базы данных только при первом развертывании решения.

  6. Откройте интернет-Обозреватель и перейдите по URL-адресу приложения Диспетчера контактов (например, http://testweb1:85/ContactManager/).

  7. Убедитесь, что приложение работает должным образом и вы можете добавлять контакты.

    Убедитесь, что приложение работает должным образом и вы можете добавлять контакты.

Заключение

Создание командного файла, содержащего инструкции MSBuild, обеспечивает быстрый и простой способ создания и развертывания многопроектного решения в определенной целевой среде. Если необходимо повторно развернуть решение в нескольких целевых средах, можно создать несколько файлов команд. В каждом командном файле команда MSBuild создает один и тот же универсальный файл проекта, но указывает другой файл проекта для конкретной среды. Например, командный файл для публикации в среде разработчика или тестовой среде может содержать следующую команду MSBuild:

msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj

Файл команды для публикации в промежуточной среде может содержать следующую команду MSBuild:

msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Stage.proj

Примечание

Инструкции по настройке файлов проекта для конкретной среды для собственных серверных сред см. в статье Настройка свойств развертывания для целевой среды.

Вы также можете настроить процесс сборки для каждой среды, переопределив свойства или задав различные другие параметры в команде MSBuild. Дополнительные сведения см. в справочнике по командной строке MSBuild.