Используя ключевое слово $ Rev: $ SVN в коде C #? - PullRequest
2 голосов
/ 27 июля 2010

Кто-нибудь знает, каков синтаксис использования ключевого слова revision файла в коде на C #?Я знаю, как использовать его в SQL Server, но я не могу понять синтаксис правильно.Я уже добавил свойство в файл, в котором я хотел бы отобразить версию.

Ответы [ 2 ]

5 голосов
/ 27 июля 2010

Ваши файлы C # должны содержать $LastChangedRevision: $, чтобы добавить ревизию SVN. Однако вам также нужно правильно установить свойство svn:keywords для файлов, в которых вы хотите, чтобы это значение было расширено.

Например, следующее приведет к строке, содержащей ревизию.

string revision = "$LastChangedRevision: $";

Свойство svn:keywords должно включать LastChangedRevision в свой список значений, разделенных пробелами.

Вы можете сделать это автоматически для расширения cs, отредактировав конфигурацию TortoiseSVN. Для этого перейдите в меню проводника TortoiseSVN и выберите Settings.... Затем на вкладке General нажмите кнопку Edit рядом с Subversion configuration file:.

Прокрутите вниз и добавьте строку, подобную этой, в раздел [auto-props] (просто пример, у вас может быть больше или меньше ключевых слов, и вы также можете установить другие свойства):

*.cs = svn:keywords=LastChangedDate LastChangedBy LastChangedRevision Id URL;
4 голосов
/ 14 апреля 2011

Вы можете вызвать SubWCRev.exe и заставить его записать номер версии в ваш Resources.resx в вашей предварительной сборке, а затем выполнить очистку, чтобы вам не приходилось возиться с другими скриптами, а svn делает неоднократно видят в Resources.resx изменения.

  1. Добавьте строковые ресурсы в файл Resources.resx, используя заполнители, которые распознает SubWCRev.exe, например:

    BuildTime = $ WCNOW $

    CurrentSVNRevision = $ WCREV $

    HasLocalModification = $ WCMODS? (Обнаружены локальные изменения): $

  2. Добавьте следующую предварительную сборку (для резервного копирования вашего Resources.resx и замены SubWCRev.exe на заполнители необходимыми значениями):

    copy / Y "$ (ProjectDir) \ Properties \ Resources.resx" "$ (ProjectDir) \ Properties \ Resources.resx.save"

    вызовите "C: \ Program Files \ TortoiseSVN \ bin \ SubWCRev.exe" "$ (SolutionDir) \" "$ (ProjectDir) Properties \ Resources.resx" "$ (ProjectDir) Properties \ Resources.resx"

  3. Добавьте следующую пост-сборку для восстановления вашего Resources.resx:

    move / Y "$ (ProjectDir) \ Properties \ Resources.resx.save" "$ (ProjectDir) \ Properties \ Resources.resx"

  4. Установить событие пост-сборки для запуска всегда (даже в случае сбоя сборки)

  5. Используйте Resources.CurrentSVNRevision и т. Д., Где это необходимо в вашем коде.

Я посмотрел на множество решений, а затем обнаружил, что это намного проще и надежнее, чем все остальное, что я нашел. Надеюсь, это поможет кому-то еще.

...