Что такое хорошая автоматизация сборки и процесс развертывания для использования с asp.net?

Я ищу некоторые рекомендации сделать здание проекта и развертывание автоматически.

Наша текущая установка разработки использует ASP.NET, SVN, CCNET и сценарий MSBuild для dev сборки сервера. Я думал о переключении для Выполнения круиза вместо CCNET, хотя я не уверен, дает ли это мне что-либо дополнительное, которое я уже не имею.

То, что я хотел бы автоматизировать, является процессом от того, после того, как автоматизированная сборка сделана к обновлению живого сайта с новыми изменениями. Обновления сайта могут включать основные обновления сайта, а также клиентские обновления, которые могут быть кодом и/или изменениями базы данных, таким образом, процесс должен быть достаточно гибким, таким образом, он может обработать те сценарии.

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

9
задан Brian Surowiec 19 February 2010 в 12:31
поделиться

3 ответа

Для небольших или личных проектов я бы рекомендовал использовать что-то вроде бесплатного (и отличного) TeamCity от JetBrains. Автоматизация модульного тестирования, непрерывная интеграция и правила того, что происходит после сборки (включая перемещение ее в другое место).

Для больших команд я обнаружил некоторую автоматизацию сборки в виде настраиваемых задач MSBuild, и RoboCopy работает лучше всего. Эта приятная комбинация между продвижением сборок между средами вручную и использованием MSBuild и RoboCopy для автоматизации частей этого процесса создает четкие перерывы между средами (с очень небольшим количеством ошибок типа «ой, я не хотел выдвигать эти ошибки»).Это также позволяет нам проверять сборки перед продвижением.

Обновление 31.07.2014:

Я успешно использовал настраиваемые шаблоны сборки TFS . Они немного сложны, но с ними можно сделать довольно много интересных вещей.

Для проектов с открытым исходным кодом (таких как библиотеки NuGet), размещенных на GitHub, я не думаю, что вы сможете превзойти AppVeyor . У меня есть несколько проектов, таких как Mailchimp.NET , которые имеют полную автоматизацию сборки и развертывания NuGet.

4
ответ дан 3 November 2019 в 07:47
поделиться

Я использовал Nant в прошлом с большим успехом для подобных задач. Вы можете запустить его с помощью автоматизированной сборки. (http://nant.sourceforge.net/)

Если вам нужно что-то более комплексное, вы можете проверить wix (http://wix.sourceforge.net/)

Теперь вы действительно уверены, что все, что запускает автоматическая сборка, вы хотите обновить на живом сайте? Или вы имеете в виду, что вы запускаете сборку, используя ваш инструмент cc, а затем он генерирует сборку для запуска?

Мне бы не хотелось, чтобы живой сайт обновлялся, когда кто-то проверял новую версию файла.

Обновление базы данных, вероятно, будет самым сложным аспектом. Однако, пока то, что проверяется для обновления базы данных, является скриптом изменений, это не так уж плохо.

0
ответ дан 3 November 2019 в 07:47
поделиться

Похоже, что две основные функции для развертывания изменений вашего кода это: 1. Копирование файлов и 2. Выполнение изменений сценариев БД. Если вы посмотрите на использование MsBuild Community Tasks, то там есть множество удобных задач сборки, которые могут помочь вам на этом пути. Похоже, что SqlExecute и RoboCopy - это все, что вам нужно использовать. Это потребует от вас модификации файлов проекта, чтобы расширить их поведение при сборке, но как только это будет сделано, вы сможете "заскриптовать" часть того, что делается вручную.

0
ответ дан 3 November 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: