Подверсия AssemblyInfo.cs и TortoiseSVN

Все остальные, кажется, предлагают различие в переменной передаче, но я заметил что-то другое:

, Если пример кода Вы отображаетесь, упрощение чего-то, на что Вы уже смотрите, затем Вы могли бы хотеть отметить что в Вашем втором примере:

private int DoSomething(int value) {
    return value++;
}

Эти value возвратится затем инкремент. Таким образом, если Вы делаете следующее:

public Main() {
    int val = 1;
    Console.writeln(DoSomething(val));
}

Ваш вывод будет 1.

Сообщенный мне, если это помогает вообще.

17
задан Assaf Lavie 20 August 2010 в 12:31
поделиться

7 ответов

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

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

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

13
ответ дан 30 November 2019 в 12:51
поделиться

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

2
ответ дан 30 November 2019 в 12:51
поделиться

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

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

3
ответ дан 30 November 2019 в 12:51
поделиться

I do this in my build script:

<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' />

using the community build tasks. This essentially applies a regex to the AssemblyInfo.cs, replacing the current revision with the svn revision.

7
ответ дан 30 November 2019 в 12:51
поделиться

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

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

1
ответ дан 30 November 2019 в 12:51
поделиться

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

  • вызывает 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 , который преобразует файл с заменой ключевых слов, так что это поможет, если вы обновите локальную копию.

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

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

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

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

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

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

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

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

не TortoiseSVN, как указано в другом сообщении. Хотя установка проста. Однако TortoiseSVN поставляется с SubWCRev.exe , который преобразует файл с заменой ключевых слов, так что это поможет, если вы обновите локальную копию.

не TortoiseSVN, как указано в другом сообщении. Хотя установка проста. Однако TortoiseSVN поставляется с SubWCRev.exe , который преобразует файл с заменой ключевых слов, так что это поможет, если вы обновите локальную копию.

2
ответ дан 30 November 2019 в 12:51
поделиться

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

0
ответ дан 30 November 2019 в 12:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: