Можно ли изменить формат версии проекта C #? - PullRequest
4 голосов
/ 30 июля 2009

Вместо формата major.minor.build.revision я хотел бы использовать дату и время для номеров версий. Что-то более похожее на day.month.year.time. Есть ли способ изменить формат атрибута AssemblyVersion в AssemblyInfo.cs?

Ответы [ 5 ]

10 голосов
/ 30 июля 2009

Вы можете поместить туда любые числа, которые вы хотите (до тех пор, пока они не переполняют типы данных, которые их содержат в памяти), и вызывать их как хотите. Однако я не уверен, почему вы захотите это сделать, поскольку стандартный формат обычно имеет некоторую форму даты, хранящейся в поле build .

Например, вот формат версии сборки, который мы используем там, где я работаю:

5.1.729.1

Это говорит мне о том, что это сборка из версии 5.1 библиотеки, построенная 29 июля, и была первой сборкой дня. Последующие сборки в тот же день просто увеличивают поле revision .

3 голосов
/ 30 июля 2009

Самый простой подход - написать свою собственную задачу сборки, которая ее обрабатывает, и затем файл .csproj вызывает вашу задачу, чтобы обновить ее по умолчанию. Есть статья о , использующая пользовательскую задачу MSBuild для увеличения номеров версий , которая может служить руководством. Мы делали похожую вещь здесь в прошлом и обнаружили, что она хорошо работает.

Я не верю, что в VS2005 есть какие-либо инструменты для этого.

1 голос
/ 30 июля 2009

Я бы предложил придерживаться существующей схемы для номеров версий, используемых AssemblyVersion и т. Д. - они имеют общеизвестные значения, и это может запутать людей, выступающих против них.

Однако вы можете легко создать свой собственный атрибут уровня сборки и использовать его для своей даты / времени. К сожалению, тип DateTime не может быть встроен в метаданные, поэтому вам лучше использовать строку - но ваш атрибут может преобразовать его в DateTime для вас во время выполнения.

0 голосов
/ 30 июля 2009

Если вы хотите автоматически изменить эти версии с помощью скрипта или чего-то подобного Я бы предложил использовать http://www.codeproject.com/KB/macros/versioningcontrolledbuild.aspx

Его также можно запустить из командной строки.

0 голосов
/ 30 июля 2009

Вы можете собрать соответствующий фрагмент кода assemblyinfo в сценарии сборки - достаточно просто использовать IronPython или F # в качестве инструмента сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...