Я хотел бы обновлять номер версии проекта каждый раз, когда я нажимаю f5 для сборки - PullRequest
2 голосов
/ 08 ноября 2011

Что у нас сейчас есть:

  • SVN в качестве исходного хранилища
  • Скрипты MSBuild для построения и настройки номеров версий
    • Эти номера версий представляют собой комбинацию, свойства в файле сборки и последнюю версию из SVN
  • Круиз-контроль для запуска скриптов сборки

Что бы я хотел сделать:

Наши скрипты сборки обновляют номер версии каждый раз, когда мы делаем сборку. Я хотел бы делать это автоматически каждый раз, когда мы делаем сборку, нажимая F5 в Visual Studio. Поэтому обновите GlobalAssemblyInfo.cs, указав правильный номер версии из номера редакции в SVN

.

Ответы [ 3 ]

1 голос
/ 08 ноября 2011

Я только что прочитал об этом вчера в отношении сборок из TFS 2010. Я знаю, что это не совсем применимо к вашей ситуации или архитектуре, но он поднимает некоторые хорошие моменты о том, как поступить с вашейсборка версий.

Точнее, автор ссылается на этот пост .Опять же, это относится к MSBuild, но есть некоторые моменты, которые применимы к версионированию сборок в целом

Редактировать:

Первая ссылка говорит о плюсах и минусахразличных подходов, включая использование даты как части вашего номера версии (не особенно полезно), но склоняется к включению номера сборки TFS как части версии сборки.Он ссылается на предпочитаемую схему управления версиями, которая позволяет ему быстро и легко определить, к чему относится сборка (исправление и т. Д.).Эта ссылка в основном полезна, чтобы дать вам несколько альтернативных представлений о версиях сборок.

Вторая ссылка упоминается в первой ссылке и содержит несколько примеров кода о том, как он использует MSBuild, чтобы помочь в создании версий своих сборок.Это также может дать некоторые полезные идеи о том, как это сделать.Возможно, объедините некоторые из них с событием после сборки, чтобы достичь своей цели.

1 голос
/ 08 ноября 2011

Лучший способ сделать это - подключить SVN.Номер версии будет изменен только для коммита, поэтому вы можете написать ловушку, которая обновляет этот файл как часть коммита.

Или проверить это: http://www.codeproject.com/KB/architecture/svn_visual_studio.aspx

0 голосов
/ 11 ноября 2011

Я нашел способ сделать это с F5, изменив файл проекта и используя MSBUILD.Community.Tasks

<Target Name="BeforeBuild">
<MSBuild.Community.Tasks.Subversion.SvnInfo Username="$(SvnUserName)" Password="$(SvnPassword)" RepositoryPath="$(SvnPath)">
  <Output TaskParameter="Revision" PropertyName="SvnRevision" />
</MSBuild.Community.Tasks.Subversion.SvnInfo>

<CreateProperty Value="$(Major).$(Minor).$(Build).$(SvnRevision)">
  <Output TaskParameter="Value" PropertyName="FullVersionNumber" />
</CreateProperty>

<MSBuild.Community.Tasks.AssemblyInfo 
  OutputFile="$(ProjectFolder)\GlobalAssemblyInfo.cs" 
  CodeLanguage="CS" 
  AssemblyVersion="$(FullVersionNumber)" 
  AssemblyFileVersion="$(FullVersionNumber)" />
<Message Text="Test"/>
</Target>
...