Какой инструмент мне следует использовать для автоматизации развертывания приложения ASP.NET MVC?
-
19-09-2019 - |
Вопрос
Я написал сайт для своей летней стажировки, используя ASP.NET MVC.Прогресс идет хорошо, но одна вещь, которую я считаю болезненной, — это развертывание.В частности, потому что у нас частые развертывания, и я делаю их вручную.
Я ищу своего рода «стандартный» инструмент развертывания .NET, который можно использовать с проектом ASP.NET MVC для автоматизации процесса развертывания.
Некоторые вещи, которые мне хотелось бы, чтобы этот инструмент мог делать (сейчас я делаю это вручную):
- Установите режим компиляции на «Выпуск».
- Опубликовать проект веб-приложения ASP.NET MVC
- Убедитесь, что режим отладки = «Выкл.» в моей веб-конфигурации.
- Измените строки подключения для нашей базы данных с dev db на информацию prod db.
- Перенос сайта на веб-сервер
- В идеале было бы неплохо, если бы он остановил сайт IIS и заменил существующий сайт новыми файлами, а затем перезапустил его.
Учитывая такие мягкие требования, какой инструмент вы бы посоветовали мне использовать для решения этой проблемы?Я использую II7, если это имеет значение.
Решение
Я бы использовал NAnt.Ты можешь иметь это:
- Получите код из своего репозитория исходного кода (для подавляющего большинства из них есть плагины).
- Он может скомпилировать код либо напрямую, либо использовать файл решения и параметры командной строки для запуска vstudio.Посмотрите на параметры командной строки, и вы сможете указать ему выполнить перестройку и изменить режим на Release.
- Он имеет XML-команды (XMLPOKE), которые позволят вам легко отключить режим отладки в рамках развертывания.
- Копировать файлы легко (есть много способов сделать это).
И вам не нужно останавливать сайт IIS.Вы можете просто добавить файл app_offline.htm (проверьте мое имя файла).При посещении сайта эта страница автоматически отображается.Поэтому сценарий NAnt развернет файл на первом этапе и удалит его на последнем этапе.
Другие советы
Это поддерживается только до VS2010.
Проверьте Проект веб-развертывания.Он способен сделать большую часть того, что вы просите.Я использовал его для строительной части развертывания.Я не уверен в копировании в iis и перезапуске IIS-части.
Вы взглянули на Веб-развертывание еще?
Можешь попробовать УстановитьAce который заботится о большинстве сценариев развертывания веб-приложений, включая упаковку сборки, задачи сценариев, задачи IIS или SQL, распространение файлов и обновление файлов конфигурации на стороне сервера.