Что такое хороший процесс автоматизации сборки и развертывания для использования с asp.net? - PullRequest
9 голосов
/ 20 февраля 2010

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

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

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

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

Ответы [ 3 ]

4 голосов
/ 02 марта 2010

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

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

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

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

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

0 голосов
/ 02 марта 2010

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

0 голосов
/ 20 февраля 2010

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

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

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

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

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

...