Как сделать ежедневную сборку для проекта .NET от A - Z?

StackOverflow https://stackoverflow.com/questions/4125583

  •  29-09-2019
  •  | 
  •  

Вопрос

Я разработчик новичков, который хочет лучше изучать процесс разработки программного обеспечения. Мои вопросы:

  1. Что такое ежедневная сборка в целом?
  2. В чем разница, если я создаю свой собственный проект в VS?
  3. Как мы делаем это лучший способ .NET Project (предпочтительно с использованием TFS)?
  4. Больше вещей, о которых я должен знать?

Любая ссылка на статью/книги/другие вопросы приветствуются.

Спасибо

Это было полезно?

Решение

1) Из Вход Википедии:

Ежедневная сборка или ночная сборка - это практика каждого дня, выполняющего программное обеспечение последней версии программы. Это так, чтобы сначала можно собрать, чтобы гарантировать, что все необходимые зависимости присутствуют, и, возможно, протестированы, чтобы показать никаких ошибок. Daily Build также часто доступна общедоступной, что позволяет получить доступ к последним функциям для обратной связи.

2) Не должно быть никакой разницы между ночной сборкой и сборкой от VS, однако идея ежедневной сборки заключается в том, что она автоматизирована. Таким образом, вы можете запланировать его, чтобы работать в 3 утра :)

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

Без такого процесса, если кому -то нужна сборка, вы никогда не знаете, сколько времени потребуется, чтобы доставить его им. Возможно, вы сможете просто создать его в VS без каких -либо проблем, или вам, возможно, придется исправить части кода, просто чтобы он построил. Это становится большей проблемой, когда ваша сборка большая и состоит из нескольких решений, которые каждая необходимо построить отдельно.

3) Вы можете создать пакетный скрипт, который запускает сборку для вас, из вас может использовать инструмент для этой цели. Для получения дополнительной информации см.: от того, что можно использовать для использования в течение всего ночи. Анкет Некоторые из их предложений включают в себя:

Другие советы

Статья от Джоэла. Хорошо читать.

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

Мы используем Гудзон Для ночных сборок, но вы также можете использовать Cruise Control.net. Потому что мы делаем Java & .net Hudson - лучшее решение. Если у вас есть Team Foundation Server от MS, вы также можете использовать это.

Пожалуйста, посмотрите это Для интеграции Гудзона и C#.

Также рассмотрите возможность интеграции StyleCop, FXCOP и модульного тестирования на ваш сервер сборки.

На этой теме есть отличная статья от Мартина Фаулера

http://martinfowler.com/articles/continouryintegration.html

Я лично не согласен с тем, что строительный исходный код от вас Development Env такой же, как и в ночной сборке или ежедневной сборке. Среда развития затоплена компонентами, SDK, библиотеками и ресурсами, которые когда -то скрываются. Лучший путь - ночная сборка на машине для сборки - лучший путь.

Также выполнение сборки с вашей собственной машины предотвращает ежедневную проверку в основной код. Снова плохая практика.

Ночная сборка должна работать с минимальными необходимыми инструментами и библиотеками. Использование ВСЕГО Dev Env на сборке сборки - плохая идея. Полная сборка также будет иметь несколько быстрых и грязных - мелких автоматизированных тестов для запуска на коде после его сбора, сборки и развертывания в Env Test/Pre -Prod. NUNIT, SELENIUM и FXCOP - ваши друзья.

  1. Автоматизированная сборка каждый день (или ночь) всей системы. Система сборки отчетов по сборке моей почты и т. Д.
  2. Он строится на отдельной машине, он гарантирует, что вы не забыли проверять какие -либо файлы или установили недокументированные зависимости только на вашей машине. И это сообщает об ошибках.
  3. Не останавливайся в ежедневных сборках, перейдите к непрерывной интеграции, которая строит после каждой регистрации. Посмотрите на Cruisecontrol.net.
  1. Ежедневные сборки предназначены для обеспечения того, чтобы, по крайней мере, один раз в день, ваша заявка находится в построении. Они обычно управляются автоматическим процессом. Многие команды предпочитают иметь постоянную интеграцию, которые готовится после каждой регистрации в репозитории.

  2. Автоматизированный ежедневный процесс имеет преимущество в том, что он автоматизирован :) Вы также можете настроить его для выполнения различных вспомогательных задач: от выполнения модульных тестов до автоматического развертывания компонентов сервера. Когда вы строите на своем Dev Machine, вы гарантируете, что ваш местный Копия действительна и компилируется, в то время как CI Server утверждает то же самое о вашем репозиторий.

  3. Cruisecontrol.net это популярное решение. Вы также можете рассмотреть Использование граблей.

1) Ежедневная сборка - это полная сборка супа для орехов вашей базы кода и процессы, которые пройдет установщик, включая тестирование, установку и потенциально удаление.

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

3) Это в воздухе, зависит от бюджета, команды, среди прочего.

4) Статья Джоэла, как было опубликовано ранее.

Что такое ежедневная сборка в целом?

«Daily Build» является частью «непрерывной интеграции» и означает, что полный проект строится регулярно и автоматически. Как правило, это происходит, по крайней мере, ежедневно, или даже чаще, если это возможно, возможно, даже после каждого изменения.

Основная цель - убедиться, что проект всегда может быть построен; Кроме того, различные тесты могут выполняться как часть сборки, вы можете автоматически развернуться в среде тестирования, генерировать установщики для дальнейшего тестирования и т. Д.

В чем разница, если я создаю свой собственный проект в VS?

Это происходит автоматически и использует конфигурацию по умолчанию. Это гарантирует, что проект всегда строится правильно, а не только в вашей системе (например, потому что у вас есть специальный конфигуратор, который вы забыли проверить управление версией, или у вас установлен конкретный IDE).

Как мы делаем это лучший способ .NET Project?

Используйте сервер CI (непрерывная интеграция), например, Cruisecontrol.net. Анкет Есть несколько доступных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top