Лучшее сочетание инструментов развертывания aspnet - PullRequest
1 голос
/ 25 июня 2011

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

Мне нужно развернуть сайт 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 Ответ

0 голосов
/ 27 июня 2011

По моему мнению, MSDeploy создан для удовлетворения всех ваших потребностей с гораздо большим контролем.MSDeploy - это продукт команды IIS, и он гораздо более многофункциональнИнструмент командной строки, чтобы получить последнюю версию вашего исходного кода в некотором временном каталоге и собрать ее с помощью инструмента командной строки MSBuild.Затем вы можете создать пакет развертывания или пакет публикации контента, который можно развернуть в определенной среде.В настоящее время я работаю над проектом, который может создать пакет развертывания, независимый от среды, что означает, что пакет может быть развернут в любой среде stage / test / live.Пример создания пакета развертывания: ...

msbuild C: \ Projects \ NimBuildDeployTestApp \ NimBuildDeployWebApp / NimBuildDeployWebApp.csproj / t: package / p: Configuration = Release / p: PackageLocation = C: \ Temp \ DeployPage\ NimTestWebApp.zip / p: EnablePackageProcessLoggingAndAssert = true

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

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

Пользователь Шаг 2 для построения решения в режиме Release с использованием MSBUILD и настройки параметра dest в msdeploy.

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

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

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

...