Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если вы хотите развернуть проект веб-приложения в удаленной среде сервера, первая задача — создать проект и создать пакет веб-развертывания. В этом разделе описывается, как работает процесс сборки для проектов веб-приложений. В частности, он объясняет:
- Как конвейер веб-публикации (WPP) расширяет процесс сборки для включения функций развертывания.
- Как инструмент веб-развертывания служб Интернет-информационных служб (Internet Information Services, IIS) - Web Deploy превращает ваше веб-приложение в пакет развертывания.
- Как работает процесс сборки и упаковки и какие файлы создаются.
В Visual Studio 2010 процесс сборки и развертывания для проектов веб-приложений поддерживается WPP. WPP предоставляет набор целевых объектов Microsoft Build Engine (MSBuild), которые расширяют функциональные возможности MSBuild и позволяют интегрировать его с веб-развертыванием. В Visual Studio эта расширенная функциональность отображается на страницах свойств для проекта веб-приложения. Страница конфигурации пакета/публикации Web вместе со страницей конфигурации пакета/публикации SQL позволяет настроить, как проект веб-приложения будет упакован для развертывания по завершении процесса сборки.
Как работает WPP?
При просмотре файла проекта веб-приложения, основанного на C#, вы увидите, что он импортирует два файла .targets.
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\
v10.0\WebApplications\Microsoft.WebApplication.targets" />
Первая инструкция import является общей для всех проектов Visual C#. Этот файл Microsoft.CSharp.targets содержит целевые объекты и задачи, относящиеся к Visual C#. Например, здесь вызывается задача компилятора C# (Csc). В свою очередь файл Microsoft.CSharp.targets импортирует файл Microsoft.Common.targets . Это определяет цели, которые общие для всех проектов, такие как сборка, перестроение, запуск, компиляция и очистка. Вторая инструкция Import предназначена для проектов веб-приложений. Файл Microsoft.WebApplication.targets в свою очередь импортирует файл Microsoft.Web.Publishing.targets . Файл Microsoft.Web.Publishing.targets по сути, это WPP. Он определяет целевые объекты, такие как package и MSDeployPublish, которые вызывают веб-развертывание для выполнения различных задач развертывания.
Чтобы понять, как используются эти дополнительные целевые объекты, в примере решения Contact Manager откройте файл Publish.proj и просмотрите целевой объект BuildProjects .
<Target Name="BuildProjects" Condition=" '$(BuildingInTeamBuild)'!='true' ">
<MSBuild Projects="@(ProjectsToBuild)"
Properties="OutDir=$(OutputRoot);
Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package"
Targets="Build" />
</Target>
Этот целевой объект использует задачу MSBuild для создания различных проектов. Обратите внимание на свойства DeployOnBuild и DeployTarget :
- Свойство DeployOnBuild=true по сути означает" "Я хочу выполнить дополнительный целевой объект при успешном завершении сборки".
- Свойство DeployTarget определяет имя целевого объекта, который требуется выполнить, если свойство DeployOnBuild равно true. В этом случае вы указываете, что MSBuild будет выполнять цель Package после сборки проекта.
Целевой объект пакета определен в файле Microsoft.Web.Publishing.target . По сути, этот целевой объект принимает выходные данные сборки проекта веб-приложения и превращает его в пакет веб-развертывания, который можно опубликовать на веб-сервере IIS.
Замечание
Чтобы просмотреть файл проекта (например, ContactManager.Mvc.csproj) в Visual Studio 2010, сначала необходимо выгрузить проект из решения. В окне обозревателя решений щелкните правой кнопкой мыши узел проекта и выберите команду "Выгрузить проект". Снова щелкните узел проекта правой кнопкой мыши и выберите команду "Изменить[файл проекта]". Файл проекта откроется в необработанной XML-форме. Не забудьте перезагрузить проект после завершения.
Дополнительные сведения о целевых объектах MSBuild, задачах и инструкциях импорта см. в разделе "Общие сведения о файле проекта". Более полное введение в файлы проектов и WPP смотрите в книге "Внутри ядра сборки Microsoft: использование MSBuild и Team Foundation Build", авторы Сайед Ибрагим Хашими и Уильям Бартоломью, ISBN: 978-0-7356-4524-0.
Что такое пакет веб-развертывания?
При сборке и развертывании проекта веб-приложения с помощью Visual Studio 2010 или с помощью MSBuild конечный результат обычно является пакетом веб-развертывания. Пакет веб-развертывания — это файл .zip. Он содержит все необходимое для IIS и Web Deploy, чтобы воссоздать ваше веб-приложение, включая:
- Скомпилированные выходные данные веб-приложения, включая содержимое, файлы ресурсов, файлы конфигурации, ресурсы JavaScript и каскадные таблицы стилей (CSS) и т. д.
- Сборки для вашего проекта веб-приложения и для любых ссылаемых проектов в вашем решении.
- Скрипты SQL для создания всех баз данных, развертываемых с помощью веб-приложения.
После создания пакета веб-развертывания его можно опубликовать на веб-сервере IIS различными способами. Например, вы можете удаленно развернуть его, нацелив службу удаленного агента веб-развертывания или обработчик веб-развертывания на целевом веб-сервере или используя диспетчер IIS для ручного импорта пакета на целевом веб-сервере. Дополнительные сведения об этих подходах к развертыванию см. в разделе "Выбор правильного подхода к веб-развертыванию".
Как работает процесс сборки?
Здесь показано, что происходит при сборке и пакете проекта веб-приложения:
При создании проекта веб-приложения процесс сборки создает файл с именем [имя проекта].SourceManifest.xml. Вместе с файлом проекта и выходными данными сборки этот файл.SourceManifest.xml сообщает веб-развертыванию, что он должен включать в пакет веб-развертывания. С помощью этих входных данных Web Deploy создает пакет для веб-развертывания с именем [имя проекта].zip.
Наряду с пакетом веб-развертывания процесс сборки создает два файла, которые помогут вам использовать пакет:
- Файл .deploy.cmd включает набор параметризованных команд веб-развертывания (MSDeploy.exe), публикующих пакет веб-развертывания на удаленном веб-сервере IIS. Запуск файла .deploy.cmd с соответствующими параметрами обычно обеспечивает более быструю и удобную альтернативу ручному созданию команд MSDeploy.exe самостоятельно.
- Файл SetParameters.xml предоставляет набор значений параметров для команды MSDeploy.exe. К этим значениям относятся такие свойства, как имя веб-приложения IIS, в котором требуется развернуть пакет, значения любых конечных точек службы и строк подключения, определенных в файле web.config , и все значения свойств развертывания, определенные на страницах свойств проекта.
ФайлSetParameters.xml является ключом для управления процессом развертывания. Этот файл создается динамически в соответствии с содержимым проекта веб-приложения. Например, если вы добавите строку подключения в файл web.config , процесс сборки автоматически обнаружит строку подключения, параметризовать развертывание соответствующим образом и создать запись в файле SetParameters.xml , чтобы разрешить изменить строку подключения в процессе развертывания. В следующем разделе описано, как настроить параметры для развертывания веб-пакетов, подробно описана роль этого файла и описаны различные способы его изменения во время сборки и развертывания.
Замечание
В Visual Studio 2010 WPP не поддерживает предварительную компиляцию страниц в веб-приложении до упаковки. В следующей версии Visual Studio и WPP будет включена возможность предварительной компиляции веб-приложения в качестве варианта упаковки.
Conclusion
В этом разделе представлен обзор процесса сборки и упаковки проектов веб-приложений в Visual Studio 2010. В нем описано, как WPP позволяет вызывать команды веб-развертывания из MSBuild, а также объясняется, как работает процесс сборки и упаковки.
После создания пакета веб-развертывания следующий шаг — развернуть его. Дополнительные сведения об этом см. в разделе "Настройка параметров для развертывания веб-пакетов " и "Развертывание веб-пакетов".
Дальнейшее чтение
В следующих разделах этого руководства по настройке параметров для развертывания веб-пакетов и развертывания веб-пакетов приводятся рекомендации по использованию созданного веб-пакета. Последнее руководство в этой серии Advanced Enterprise Web Deployment содержит рекомендации по настройке и устранению неполадок процесса упаковки.
Более полное введение в файлы проектов и WPP смотрите в книге "Внутри ядра сборки Microsoft: использование MSBuild и Team Foundation Build", авторы Сайед Ибрагим Хашими и Уильям Бартоломью, ISBN: 978-0-7356-4524-0.