Могу ли я изменить номер сборки по умолчанию в Visual Studio 2008 - PullRequest
2 голосов
/ 02 июля 2010

Я устанавливаю номера версий в моих сборках на:

[assembly: AssemblyVersion("1.0.*")]

После первого перестроения я получил номер этой версии:

1.0.3835.35633   
<major version>.<minor version>.<build number>.<revision>

В статье MSDN о версии сборки действительно есть краткое описание:

Номер сборки по умолчанию увеличивается ежедневно.

Можно ли как-нибудь сбросить номер сборки по умолчанию, например, на 1 и Visual Studio автоматически увеличивается.

Edit:
Я нашел информацию , что номер сборки - это количество дней с 2000-01-01. Я проверил это на двух разных компьютерах, и это действительно так. В приведенном выше номере сборки 3835 - это количество дней между 2000-01-01 и 2010-07-02.
Таким образом, похоже, что номер сборки по умолчанию нельзя изменить, и он идентичен для всех установок VS2008.
Мне не нравится эта схема нумерации, поэтому я попробую две надстройки - одну, которую Алек предложил в своем ответе , и другую, которую я нашел: Расширение версии сборки надстройки Visual Studio

Ответы [ 2 ]

1 голос
/ 29 апреля 2015

Если вы используете MSBuild, я рекомендую вам установить msbuildtasks (https://github.com/loresoft/msbuildtasks), который может быть установлен nuget.

Как только вы сделаете это, он создаст build.proj в корне вашего решения, и вы сможете создать свой собственный файл версии, который он будет использовать для управления информацией о версии.

Он поддерживает использование свойств сборки и ревизии MS, а также поддерживает переопределение даты начала

Я сделал файл версии Major и Minor и поместил их в исходную

<VersionFile Condition=" '$(VersionFile)' == '' ">$(MsBuildProjectDirectory)\VersionMajor.txt</VersionFile>
<VersionSuffixFile Condition=" '$(VersionSuffixFile)' == '' ">$(MsBuildProjectDirectory)\VersionMinor.txt</VersionSuffixFile>

В этих файлах у меня просто есть номер 2 и номер 1 (соответственно)

Затем я создал другой файл, который содержит полный номер версии (куда фактически попадает результат) как version.txt. Содержит 2.1.0.0

Затем в моей Задаче для фактической сборки я добавил

<Version VersionFile=".\Version.txt" BuildType="Automatic" RevisionType="BuildIncrement" StartDate="2015-01-01">
  <Output TaskParameter="Build" PropertyName="Build" />
  <Output TaskParameter="Revision" PropertyName="Revision" />
</Version>

Это дало мне параметр Build and Revision для использования в другом месте.

Там, где написана информация о сборке, я использую их все так:

AssemblyVersion="$(Version).$(VersionSuffix).$(Build).$(Revision)"
AssemblyFileVersion="$(Version).$(VersionSuffix).$(Build).$(Revision)"  

И бум! У меня есть хорошие версии. Я сам управляю своим основным и второстепенным (я собираюсь переключить те, которые используют ветку git, которая также 2.1 и которую могут выполнять задачи сборки), и сборка увеличивается на количество дней с момента StartDate (которое я установил, когда сделал ветвь) и ревизия автоматически увеличивается с каждой сборкой и сбрасывается в 0, когда сборка сбрасывается в 0.

Вы можете увидеть больше, если посмотрите на исходный код buildtasks на github: https://github.com/loresoft/msbuildtasks/blob/master/Source/MSBuild.Community.Tasks/Version.cs

1 голос
/ 02 июля 2010

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

...