Как мне координировать информацию о версии сборки в моем дереве многих проектов C #? - PullRequest
5 голосов
/ 12 июля 2011

Какие подходы вы применили для координации изменений в версии и авторском праве для групп сборок?

У меня есть дерево из множества csprojs, каждый со своим собственным файлом AssemblyInfo.В рамках процесса сборки я хочу указать год и версию авторского права.Похоже, что доступны следующие опции, но изменение файла - это единственное, что я видел до сих пор:

  • Изменить все файлы с помощью скрипта
  • Включить ресурс с датой (макрос, одноэлементный класс с открытыми статическими переменными)
  • Переопределить AssemblyVersion в командной строке (-DAssemblyVersion = "1.0.0.1"?)
  • Справочная переменная среды ([assembly: AssemblyFileVersion("${ENV.VERSION")])

Я привык поддерживать чистоту исходного дерева в сгенерированных файлах в Java / C ++ с помощью параметров командной строки, определяя и централизуя всю спецификацию версии в одном файле.

Какой подход вы используете для синхронизации и управления версиями?

Спасибо

Питер

Ответы [ 3 ]

5 голосов
/ 12 июля 2011

В верхнюю папку я помещаю файл CommonAssemblyInfo.cs, который содержит ... общие сведения, такие как авторское право и FileVersion.Этот файл содержит только некоторые атрибуты по умолчанию и регенерируется скриптом (простым файлом .bat) на сервере сборки, в моем случае - Hudson.Удалите эти общие атрибуты в каждом из проектов AssemblyInfo.cs.

В каждом проекте решения я добавляю этот файл.но используйте «Добавить как ссылку» - доступно в раскрывающемся списке кнопки «Добавить» при добавлении существующего файла.т. е. все проекты содержат ссылку на один и тот же файл, поэтому нужно обновить только один файл.

0 голосов
/ 12 июля 2011

Теоретически вы можете иметь один файл сборки. Просто свяжите файл во всех других проектах: добавьте существующий файл >> файл ссылки вместо добавления (кнопка с раскрывающимся списком)

0 голосов
/ 12 июля 2011

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

Создайте файл на некотором уровне выше других проектов, с точки зрения структуры, затем добавьте его во все проекты (из Visual Studio), но при этом обязательно выберите «Добавить как ссылку».

Я также использовал задачу MSBuild для управления обновлением, я просто не могу об этом думать - какой движок сборки вы используете?

...