Внизу Stack Overflow указан номер версии Subversion:
Версия SVN: 679
Я хочу использовать такое автоматическое управление версиями с моими .NET Web Site/Application
проектами / решениями Windows Forms, WPD.
Как мне это реализовать?
.net
asp.net
svn
versioning
Зак Петерсон
источник
источник
Ответы:
Судя по некоторым расшифровкам подкастов, Джефф использует CruiseControl.NET . Кажется, у этого есть возможности автоматического развертывания от управления версиями до производства. Может здесь и происходит прошивка?
источник
Мы делаем это с помощью xUnit.net для наших автоматических сборок. Мы используем
CruiseControl.net
(и пробуем TeamCity). Задача MSBuild, которую мы запускаем для непрерывной интеграции, автоматически меняет номер сборки для нас, поэтому итоговый ZIP-файл сборки содержит правильно версионный набор DLL и EXE.Наш файл MSBuild содержит ссылку UsingTask для библиотеки DLL, которая выполняет замену регулярных выражений: (вы можете использовать эту DLL, поскольку на нее также распространяется лицензия MS-PL)
Затем мы извлекаем номер сборки, который автоматически предоставляется системой CI. Вы также можете попросить своего поставщика управления версиями предоставить номер исходной версии, если хотите, но мы обнаружили, что номер сборки в системе CI был более полезен, потому что не только можно видеть результаты интеграции по номеру сборки CI, который также предоставляет ссылка на набор изменений, которые были включены в сборку.
(Мы пробуем BUILD_NUMBER из TeamCity, затем ccnetlabel из CC.net, и если ни один из них не присутствует, мы по умолчанию устанавливаем значение 0, чтобы мы могли протестировать сценарий автоматической сборки вручную.)
Затем у нас есть задача, которая устанавливает номер сборки в файл GlobalAssemblyInfo.cs, который мы связываем со всеми нашими проектами:
Это находит атрибут AssemblyVersion и заменяет номер версии abcd на abcBuildNumber. Обычно мы оставляем источник отмеченным в дереве с фиксированными первыми тремя частями номера компоновщика и четвертой равной нулю (например, сегодня это 1.0.2.0).
В процессе сборки убедитесь, что задача SetVersionNumber предшествует задаче сборки. В конце мы используем нашу задачу Zip, чтобы заархивировать результаты сборки, чтобы у нас была история двоичных файлов для каждой автоматизированной сборки.
источник
Вы можете сделать это, добавив следующее в любом месте вашего кода
$Id:$
Так, например, @Jeff сделал:
<div id="svnrevision">svn revision: $Id:$</div>
и при проверке на сервере заменил $ Id: $ на текущий номер версии. Я также нашел эту ссылку .
Также есть $ Date: $ , $ Rev: $ , $ Revision: $
источник
Если вы используете
ASP.Net MVC
(как это делает StackOverflow), я написал простое трехэтапное руководство по автоматическому получению и отображению последней версии SVN . Руководство было вдохновлено моей мыслью об этом самом вопросе! : o)источник
@Balloon Если вы используете TortoiseSVN, вы можете использовать упакованную программу SubWCRev . Он запрашивает рабочую копию и сообщает вам только самый высокий номер ревизии. По общему признанию, это похоже на клиентский подход к проблеме на стороне сервера, но поскольку это хорошая программа командной строки, вы должны иметь возможность довольно легко фиксировать ее вывод для использования.
источник
$rev
и другие подобные - это версии отдельных файлов, поэтому они не изменятся, если файл не изменится. Номер на веб-странице (скорее всего, я предполагаю здесь) номер версии svn для всего проекта. Это отличается от ревизий файлов, на которые указывали другие.В этом случае я предполагаю, что CCNET извлекает номер редакции проекта и переписывает часть веб-страницы с этим номером. Любое решение CI должно уметь это делать, настройте это самостоятельно с помощью CCNET и Teamcity (хотя и не веб-страницы, а автоматическое управление версиями версий развертывания / сборки).
Для этого используйте решение CI, которое его поддерживает, или используйте процесс сборки (MSbuild / Nant), чтобы сохранить эту версию и записать ее в файлы перед ее «развертыванием».
источник
Чтобы добавить к ответу @ BradWilson: «Вы также можете попросить своего поставщика системы управления версиями предоставить номер версии исходного кода, если хотите»
Чтобы подключить Subversion и MSBuild: проект задач сообщества MSBuild
источник