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

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

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

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

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

3 ответов


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

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

7/31/2014 обновления:

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

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


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


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

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

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

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

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