Версии SVN в VS с T4

Из-за различных внутренних проблем в нашем рабочем процессе я настроил следующий рабочий процесс управления версиями:

  1. Создан шаблон T4, который содержит ключевое слово SVN ($URL:).
  2. В коде T4 C# я извлекаю версию SVN из этого ключевого слова.
  3. Удален AssemblyInfo.cs из проекта.
  4. Версия SVN переопределяет версию сборки:
    • Сборочная версия 999.999.999 для багажника SVN
    • Сборочная версия xy999 для ветки SVN
    • Сборочная версия xyz для релиза SVN
    • Где: x= основная версия, y= вспомогательная версия, z=rev (из SVN)
    • Да: я полностью игнорирую номер сборки, что для меня нормально, версия SVN должна быть ведущей. Я хочу, чтобы версия SVN и версия сборки совпадали из-за других проблем рабочего процесса.
  5. Выходной файл.cs из шаблона T4 содержит статический класс, который содержит статическую строку версии SVN (которую я теперь могу свободно использовать в остальной части моего проекта, например, для целей отображения).
  6. Создан файл.bat, который преобразует все шаблоны T4 в моих проектах перед сборкой

Все вышеперечисленное работает нормально (и без установки каких-либо SDK вместо стандартной установки VS2015).

Теперь моя проблема (более или менее косметическая вещь): когда я фиксирую ветку в SVN, он регистрирует csproject с форматом сборки "xy999". Затем я делаю релиз в SVN, проверяю, T4 делает свое дело и работает нормально, но: теперь файл.csproj указывает, что он отличается от релиза из SVN. Это из-за следующих отличий:

REL_BR_1_0 <ApplicationVersion>1.0.999.0</ApplicationVersion>

RELEASE_1_0_3 <ApplicationVersion>1.0.3.0</ApplicationVersion>

Кто-нибудь знает, как преодолеть этот последний вопрос? Может быть, в SVN можно игнорировать определенные части.csproj? Или использовать трюк при совершении? Много гуглил, но не могу найти обходной путь или трюк, который мне подходит.

Спасибо!

0 ответов

Другие вопросы по тегам