2009-11-04 3 views

ответ

2

Я использовал это MSBuild Task для автоматического увеличения числа моих номеров сборки. В ваших * .csproj или * .vbproj-файлах требуется несколько ручных модификаций, но он работает совершенно безупречно и тоже довольно гибкий.

+0

Я думаю, что это нацелено на то, что мне нужно лучше, мне потребуется некоторое время, чтобы проверить его, но это выглядит правильно! благодаря ! – Dani

+0

Это небольшая проблема, я использую среду, управляемую svn, которая блокирует файлы, если я их не проверю. , используя это решение, заставляет меня блокировать сборку.cs для сборки. Я думаю, что нет способа избежать этого ... но он принимает удовольствие от решения ... – Dani

1

Visual Studio имеет встроенный Механизм, для этого:

внутри AssemblyInfo.cs, измените настройки с помощью этого:

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

Звездочка знак инструктирует Visual Studio, чтобы назначить на каждой сборку версии 1.0. ds, где d - количество дней с 1 февраля 2000 года, s - количество секунд с полуночи/2.

EDIT:

Посмотрите на этом сайте: http://www.codeproject.com/KB/dotnet/ManagingAssemblyVersions.aspx есть много информации о том: как управлять номер версии.

+0

10x, как я могу сказать что текущий номер/есть «Sid» - смысл - если проект в количестве 55 и я хочу его начать автоматически с 56? (или начать с нуля после изменения номера версии мага?) – Dani

+0

Я пробовал использовать * в этом поле - идеал не позволяет этого. – Dani

+0

Если я правильно помню, первое сгенерированное число будет сгенерировано в функции даты, а второе - с номером сборки. Итак, вы получите номер, например, 1.0.4245.51002 – Matthieu

0

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

(двойной) нажмите «Мой проект».

Затем дважды щелкните на «Assemblyinfo.vb»

В редакторе кода, прокрутите вниз, пока вы не достигли дна.

Закомментируйте

Заменить

<Assembly: AssemblyVersion("1.0.0.0")> 

с

<Assembly: AssemblyVersion("1.*.0")> 

Нажмите кнопку 'Сохранить'.

Тогда все готово!

+2

Да, но это не очень хорошо продвигает номер сборки - он просто захватывает текущее время и дату и держит его там, поэтому ваши номера построений выглядят примерно как 1.0. 21643.23849 и т. Д .... –

+0

Спасибо за это, плохо сделайте заметку. Я помню, как один из моих сотрудников упоминал об этом один раз. – CaRDiaK

0

Одним из гибких вариантов является создание шаблона T4 с использованием схемы нумерации версий и ссылка на файл .cs, который Visual Studio генерирует из него. Пример такого шаблона:

< # @ template language = "C#" #> // // Этот код был сгенерирован инструментом. Любые изменения, сделанные вручную, будут потеряны // при следующем восстановлении этого кода. //

using System.Reflection;

[сборка: AssemblyVersion ("1.0.1 < # = this.RevisionNumber #>.")] [сборка: AssemblyFileVersion ("1.0.1 < # = this.RevisionNumber #>")] < # + int RevisionNumber = (int) (DateTime.UtcNow - новый DateTime (2010,1,1)).TotalDays;

>

В этом примере номер ревизии устанавливается на количество дней, прошедших с 1 января 2010 г. Но вы можете предоставить любую пользовательскую схему нумерации, потому что это обычный C#.

Я написал blog post, который объясняет эту технику более детально:

+0

Спасибо, я проверил ваш блог, чтобы понять эту технику. – Dani