Me gustaría actualizar el número de versión del proyecto cada vez que presiono f5 para build

Lo que tenemos actualmente:

  • SVN como repository de origen
  • Scripts de MSBuild para build y configurar numbers de versión
    • Esta versión numbers es una combinación, properties en el file de compilation y la última revisión de SVN
  • Control de crucero para ejecutar los scripts de compilation

Lo que me gustaría hacer:

Tenemos nuestros scripts de compilation actualizando el número de versión cada vez que hacemos la compilation. Me gustaría hacerlo automáticamente cada vez que hacemos una compilation presionando F5 dentro de Visual Studio. Así que actualice GlobalAssemblyInfo.cs con el número de versión correcto, desde el número de revisión en SVN

Una mejor forma de hacerlo es con un gancho SVN. El número de versión solo se cambiaría en una confirmación, por lo que puede escribir un enlace que actualice ese file como parte de la confirmación.

O mira esto: http://www.codeproject.com/KB/architecture/svn_visual_studio.aspx

Ayer estuve leyendo sobre esto con respecto a las comstackciones de TFS 2010. Sé que no es completamente aplicable a su situación o architecture, pero plantea algunos puntos buenos acerca de cómo realizar el control de versiones de su set.

Más específicamente, el autor hace reference a esta publicación . Una vez más, es específico de MSBuild, pero hay algunos puntos que son aplicables al control de versiones de ensamblaje en general

Editar:

El primer enlace habla sobre los pros y los contras de varios enfoques, incluida la utilización de la date como parte de su número de versión (no particularmente útil), pero se inclina por include el número de compilation de TFS como parte de la versión de ensamblaje. Se refiere a su esquema preferido de control de versiones que le permite identificar rápida y fácilmente a qué se refiere la compilation (revisión, etc.). Este enlace es útil principalmente para ofrecerle algunas vistas alternativas sobre el control de versiones de ensamblaje.

El segundo enlace se refiere al primer enlace y tiene algunos ejemplos de código sobre cómo usa MSBuild para ayudar a la versión de sus ensamblajes. Esto también podría brindar algunas ideas útiles sobre cómo hacerlo. Quizás combine algunos de estos con un evento posterior a la construcción para lograr su objective.

Encontré una manera de hacerlo con el F5 modificando el file del proyecto y usando 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>