Главная страница   /   22.2. Возможность развертывания приложений при помощи утилиты XCOPY через кнопку (ASP.NET MVC 4 в действии

ASP.NET MVC 4 в действии

ASP.NET MVC 4 в действии

Джеффри Палермо

22.2. Возможность развертывания приложений при помощи утилиты XCOPY через кнопку

В интранет-средах XCOPY развертывания могут быть такими же простыми, как и настройка общего сетевого ресурса на машине развертывания. Этот процесс усложняется при развертывании веб-сайтов из-за составных файловых типов, которые нужно разворачивать, к примеру JavaScript, CSS, .cshtml, .config и сборки. Когда ваше программное обеспечение начинает усложняться, вы можете создать инсталлятор или автономный zip-файл. Этот пакет развертывания должен быть скопирован вручную или вытащен из системы управления версиями.

Независимо от того, могут ли файлы быть вытащены из общего сетевого ресурса или перемещены на сервер вручную, наш пакет развертывания будет включать следующее:

  • Окончательное приложение
  • Инструмент построения, если он использовался (в нашем случае – NAnt)
  • Скрипт развертывания
  • Файл пакета или PowerShell файл для начала процесса

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

NAnt, наряду со своим родственным проектом NAntContrib, предоставляет дюжину исключительных задач, которые вы можете скомпилировать вместе для создания единичного скрипта развертывания. В эти задачи входят следующие:

  • Задачи системы управления версиями
  • IIS задачи
  • Файловые и директивные задачи для создания, удаления и копирования
  • Zip задачи
  • Задачи управления XML

Вместо этого при помощи ручного процесса мы можем начать автоматизировать по одному шагу за раз в рамках NAnt задач, пока не будет автоматизирован весь процесс развертывания. Многие команды уже применяют процесс построения в форме документа Microsoft Word или статьи wiki, детализируя шаги, выполняемые вручную. Вопрос всего лишь в поиске соответствующей NAnt задачи для каждой ручной задачи, и развертывание будет автоматизировано. Если для конкретной операции не существует ни одной NAnt задачи, то NAnt предоставляет задачу exec, которая может выполнить все, что можно выполнить в командной строке.

Ниже перечислены ключевые NAnt задачи для развертывания:

  • unzip – использовалась для распаковки пакета развертывания, первоначально возвращаемого системой управления версиями. В случае ручного перемещения пакета развертывания мы можем распаковать пакет вручную.
  • copy – использовалась для копирования окончательного приложения в корректную директорию развертывания, выполняя при этом XCOPY развертывание в одной автоматизированной задаче.
  • exec – использовалась для множества сценариев таких, как регистрация IIS, служб остановки и запуска, а также регистрации сборок.
  • xmlpoke – использовалась для управления конфигурациями развертывания путем манипулирования ключевыми файлами конфигурации такими, как файл Web.config.

В следующем разделе мы рассмотрим, как управлять конфигурациями составных развертываний с помощью NAnt и xmlpoke.