Обновление номера версии всех сборок в решении - PullRequest
27 голосов
/ 17 апреля 2009

У меня довольно большое решение в Visual Studio. Есть ли способ обновить номера версий Major / Minor для всех сборок в решении за один раз?

Ответы [ 6 ]

43 голосов
/ 17 апреля 2009

Вы можете поделиться файлом AssemblyInfo.cs между всеми проектами в решении. Этот общий файл должен содержать номера версий. Чтобы поделиться им, вы должны использовать Добавить существующий файл в VS и выбрать Добавить как ссылку в диалоговом окне файла. Каждый проект имеет свой собственный и общий AssemblyInfo.cs. Частный по-прежнему содержит атрибуты не-версии.

У меня есть настройка TeamCity, где я генерирую общий файл в каждой сборке TeamCity, используя реальную версию сборки, и она прекрасно работает.

10 голосов
/ 17 апреля 2009

У нас есть один AssemblyInfoCommon.cs, который имеет номера версий и включен в каждый проект по ссылке. Остальные файлы AssemblyInfo.cs остаются, но содержат только информацию о сборке (заголовок и описание). Таким образом, у нас есть только один файл для обновления для каждого проекта C #.

7 голосов
/ 17 апреля 2009

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

Это хороший вариант, если вам не нравится идея ссылаться на один и тот же AssemblyInfo.cs во всех ваших проектах.

Редактировать: Примечание! Это также работает, когда вы используете несколько языков (F # и C # в моем случае).

4 голосов
/ 17 апреля 2009

Поиск / замена

Номера версий в конце концов сохраняются в текстовых файлах (AssemblyInfo.cs в папке Properties для каждого проекта).

1 голос
/ 17 апреля 2009

Существует очень полезная утилита, которую я использовал некоторое время назад в проекте, который требовал управления версиями с высокой степенью управляемости:

http://www.codeproject.com/KB/macros/versioningcontrolledbuild.aspx

0 голосов
/ 16 декабря 2015

Также вы можете создать некоторую «базовую» сборку и добавить в каждую вашу сборку ссылку на «базовую» сборку. «ядро» сборки будет постоянным. В этом случае в каждом сборочном информационном файле будет установлена ​​версия сборки из константы «core». Например:

«базовая» сборка имеет файл Ver.cs с константой: public const string Значение = "0.0.0.99";

в каждой информации о сборке решения: [Assembly: AssemblyFileVersion (Ver.Value)]

...