Лучшее сочетание инструментов развертывания aspnet

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

Мне нужно развернуть сайт ASP.NET 4.0, и я хочу сделать что-то вроде этого:

  1. Получите последнюю версию всего решения - веб-сайт и несколько проектов класса, которые используются веб-приложением (я делаю это уже с использованием CCNet- не проблема)
  2. Сборка и развертывание в конфигурации отладки на тестовом сайте
  3. Сборка и развертывание в конфигурации выпуска на промежуточном сайте
  4. Если на промежуточном сайте все выглядит нормально, я запустил сценарий, который развертывает промежуточный сайт сборки выпуска, на 7-8 похожих сайтах, используемых разными клиентами на одном сервере. В будущем это будет на другом сервере.

Есть MSDeploy (webdeploy 2.0), aspnet_compiler, MSBuild, Powershell (мое оружие выбора..) и, вероятно, больше... Я не уверен на 100%, что использовать где?

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

Я чувствую, что должен много использовать MSDeploy... но мне довольно трудно ПОЛУЧИТЬ. Я читаю в IIS.NET и слышал подкаст Скотта Хансельмана / Джона Арилда Торресдала. Я не на 100% уверен, с чего начать... и я не эксперт MSBuild, так что Powershell выглядит довольно хорошо для меня. Но я чувствую, что упускаю правильные инструменты, идя этим путем...

Какой инструмент вы бы использовали на каком этапе??

1 ответ

По моему мнению, MSDeploy создан для удовлетворения всех ваших потребностей с гораздо большим контролем. MSDeploy - это продукт команды IIS, и он гораздо более многофункциональный.

Ответы на ваши вопросы Соображения: Svn as Source control, MSDeploy для развертывания

  1. Вы можете использовать инструмент командной строки SVN, чтобы получить последнюю версию исходного кода в некотором временном каталоге и собрать ее с помощью инструмента командной строки MSBuild. Затем вы можете создать пакет развертывания или пакет публикации контента, который можно развернуть в определенной среде. В настоящее время я работаю над проектом, который может в основном создать пакет развертывания, независимый от среды, что означает, что пакет может быть развернут на любой стадии / тестовой / рабочей среде. Пример для создания пакета развертывания...

    msbuild C: \ Projects \ NimBuildDeployTestApp \ NimBuildDeployWebApp / NimBuildDeployWebApp.csproj / t: package / p: Конфигурация =Release /p:PackageLocation=C:\Temp\DeployPackage\NimTestWebAcessLogApp.Pro.Ipp.ImpSignP

  2. Используйте средство командной строки MSDeploy для развертывания пакета, как показано ниже

    msdeploy -verb:sync -source:package=packagelocation -dest:CONFIGURABLE_ACCORDING_TO_YOUR_NEEDS

  3. Выполните шаг 2 пользователя, чтобы построить решение в режиме Release с помощью MSBUILD и настроить параметр dest в msdeploy.

  4. Если на вашем промежуточном сервере все выглядит нормально, запустите файл deployToLive.batch, который развернет определенный пакет PublishContent/ на вашем живом сервере. Выполните 7 сценариев msdeploy в одном пакетном файле или используйте DFS (что является гораздо более сложным решением)

MSDeploy, безусловно, путь. Одна вещь, которую вы можете рассмотреть, это иметь готовый пакет развертывания, который можно развернуть в любой вашей среде. Под этим я подразумеваю, что ваш файл web.config не будет одинаковым для всех сред, и поэтому создайте пакет развертывания, содержащий файл web.confif для всех сред. Обратитесь к моему решению здесь

Надеюсь, что это поможет и даст вам уверенность в продвижении вперед для автоматизации процесса развертывания

Другие вопросы по тегам