Вывод сборки веб-приложения ASP.NET. Как включить все файлы развертывания?

StackOverflow https://stackoverflow.com/questions/55323

Вопрос

Когда я строю свой АСП.НЕТ веб-приложение, я получаю файл .dll с кодом для веб-сайта (и это здорово), но веб-сайту также нужны все файлы .aspx и их друзья, и их необходимо разместить в правильной структуре каталогов.Как я могу получить все это в одном каталоге в результате каждой сборки?Попытка выбрать нужные файлы из исходного каталога — это боль.

Конечным результатом должна быть возможность развертывания xcopy.

Обновлять: Я не хочу вручную использовать команду «Опубликовать», о которой я знаю.Я хочу, чтобы полный набор файлов, требуемых приложению, был результатом сборки. Это означает, что я также получаю полный набор файлов в одном месте при запуске. MSBuild.

Это было полезно?

Решение

Одним из решений, по-видимому, являются проекты веб-развертывания (WDP), доступная надстройка для Visual Studio (и msbuild), которая создает веб-проект в каталоге и может при необходимости объединять сборки и изменять файл web.config.Результатом создания WDP являются все файлы, необходимые для развертывания сайта, в одном каталоге.

Дополнительная информация о проектах веб-развертывания:

  1. Объявление в блоге webdevtools MSDN для WDP 2008
  2. ScottGu: введение в WDP 2005

Единственным недостатком этого решения является требование наличия надстройки, которая должна быть доступна на сборочной машине.Тем не менее, на данный момент этого достаточно!

Другие советы

В ASP.NET нет настоящий развертывание xcopy для новый места.Это зависит от наличия виртуального каталога/приложения в IIS.Однако как только этот виртуальный каталог будет создан, вы сможете использовать xcopy для обновлений.

Ты можешь Опубликовать веб-сайт..Если вы хотите автоматизировать развертывание, вам нужно использовать некоторые сценарий.

Пробовали ли вы использовать aspnet_compiler.exe в каталоге вашей платформы .net?Я почти уверен, что вы можете создать «готовую к развертыванию» версию веб-приложения или веб-сайта.

Цель _CopyWebApplication в MSBuild сделает именно то, что вам нужно.Загвоздка в том, что в папку bin будет скопирована только основная сборка, и поэтому задача копирования необходима для копирования любого другого файла в папке bin.

Я пытался опубликовать образец сценария в этом посте, но не смог.

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

Пробовали ли вы щелкнуть правой кнопкой мыши веб-сайт в обозревателе решений и выбрать «Опубликовать веб-сайт»?

Создать -> Опубликовать

Появится диалоговое окно, которое проведет вас через весь процесс.

Что касается автоматизированного здания, которое вы описываете в обновлении, я бы рекомендовал вам изучить MSBuild и КруизКонтроль.NET

Это зависит от того, насколько сложное решение вам нужно, например, вы можете просто использовать скрипт и Дженкинс.Вы можете использовать MSBUild с Jenkins просто для развертывания в IIS.А если у вас есть Jenkins, к нему позже довольно легко подключить другие инструменты.Но если вы просто хотите построить, используйте сценарий, который jenins выполняет каждую сборку, использующую MSDeploy, и он будет отлично работать.

Вот как я это делаю, просто чтобы вы почувствовали:

Sonarqube использует Gallio, Gendarme, FXcop, Stylecop, NDepths и PartCover для получения ваших показателей, и все это довольно просто, поскольку SonarQube делает это автоматически без особой настройки.

Вот Jenkins, который собирает и получает метрики Sonar, а также еще одно задание для автоматического развертывания в IIS.Я использую простую строку сценария, которая вызывает мой MSBuild и имеет URL-адрес, пароль и пользователя.

И Sonarqube, все показатели моего проекта.Это простое приложение MVC4, но оно отлично работает!:

Если вам нужна дополнительная информация, могу ли я предоставить вам хорошее руководство.

Вся эта установка использует MSBuild, а также создает и развертывает приложения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top