Вопрос

Я использую TortoiseSVN и Visual Studio 2008.Есть ли какой-нибудь способ обновить assemblyinfo.cs моего проекта версией svn в каждой сборке?

Например, 1.0.0.[версия svn] -> 1.0.0.12

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

Решение

Вы можете использовать инструмент SubWCRev , который поставляется с TortoiseSVN (также доступно отдельно).

Запустите его из командной строки или используйте COM- Объект он предлагает.

Инструмент командной строки SubWCRev заменяет ключевые слова внутри файла с информацией из вашей рабочей копии SVN. пример показан в документации.

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

Я делаю это в моем сценарии сборки :

<SvnInfo LocalPath=".">
  <Output TaskParameter="Revision" PropertyName="BuildRev" />
</SvnInfo>
<FileUpdate Files="protobuf-net\Properties\AssemblyInfo.cs"
  Regex='(\[\s*assembly:\s*AssemblyVersion\(\s*"[^\.]+\.[^\.]+)\.([^\.]+)(\.)([^\.]+)("\)\s*\])'
  ReplacementText='$1.$2.$(BuildRev)$5' />

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

Вы могли бы использовать $Rev$ ключевое слово svn но это даст вам последнюю ревизию файла, я думаю, вы хотите получить HEAD номер редакции.

Взгляните на этот вопрос:

Как вы относитесь к надстройке для Visual Studio?

Да, вы можете добавить событие предварительной сборки, вызывающее скрипт, который

  • звонки svn info чтобы извлечь текущий номер редакции (если вы выполняете обновление ранее, вы можете напрямую включить ключевое слово $Revision$ в файле также проверьте этот пост);
  • соответствующим образом изменяет ваш файл Properties\AssemblyInfo.cs.

Что я обычно делаю, так это преобразую шаблон AssemblyInfo.cs при сборке проекта.К сожалению, скрипт необходим для адаптации формы $Revision$ к синтаксису этого файла.

Интересными свойствами являются (где строки шаблона находятся между '$'):

[assembly: AssemblyVersion("$v$.$build$.$Last Changed Rev$")]
[assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev$")]

Редактировать: svn info является частью стандартного SVN-клиента, а не TortoiseSVN, как указано в другом посте.Однако его легко установить.Однако TortoiseSVN поставляется с SubWCRev.exe который преобразует файл с подстановкой ключевых слов, так что это сработает, если вы обновите свою локальную копию.

В Visual Studio 2008 вы можете определить событие предварительной сборки, которое может запустить скрипт или небольшую программу.В рамках этого скрипта или программы вы можете использовать svnверсия выполните команду, чтобы получить ревизию репозитория, затем проанализируйте ваш AssemblyInfo.cs и измените номер версии на то, что вы хотите.

Я не уверен, поставляется ли TortoiseSVN с svnversion, но он поставляется с Сборка Windows SVN, предоставленная CollabNet

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

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