c# svn tortoisesvn assemblyinfo

c# - AssemblyInfo.cs subversion y TortoiseSVN



(7)

Estoy usando TortoiseSVN y Visual Studio 2008. ¿Hay alguna manera de actualizar el número de información de construcción de mi proyecto con la versión de svn en cada compilación?

Por ejemplo, 1.0.0. [Versión de svn] -> 1.0.0.12


¿Cómo te sientes acerca de un addin Visual Studio hacerlo?


En Visual Studio 2008, puede definir un evento previo a la compilación que puede iniciar una secuencia de comandos o un programa pequeño. Dentro de este script o programa, puede usar el comando svnversion para obtener la revisión del repositorio, luego analizar su AssemblyInfo.cs y modificar el número de versión a lo que desee.

No estoy seguro de si TortoiseSVN viene con svnversion, pero sí viene con la compilación SVN de Windows proporcionada por CollabNet


Hago esto en mi script de compilación :

<SvnInfo LocalPath="."> <Output TaskParameter="Revision" PropertyName="BuildRev" /> </SvnInfo> <FileUpdate Files="protobuf-net/Properties/AssemblyInfo.cs" Regex=''(/[/s*assembly:/s*AssemblyVersion/(/s*"[^/.]+/.[^/.]+)/.([^/.]+)(/.)([^/.]+)("/)/s*/])'' ReplacementText=''$1.$2.$(BuildRev)$5'' />

utilizando las msbuildtasks.tigris.org la msbuildtasks.tigris.org . Esto esencialmente aplica una expresión regular a AssemblyInfo.cs, reemplazando la revisión actual con la revisión svn.



Podría usar la herramienta SubWCRev que viene con TortoiseSVN (también disponible por separado).

Puede ejecutarlo desde una línea de comandos o usar el COM-Object que ofrece.

La herramienta de línea de comandos SubWCRev reemplaza las palabras clave dentro de un archivo con información de su copia de trabajo svn. Un example se muestra en los documentos.


Sí, puede agregar un evento de precompilación que llame a un script que

  • llama a svn info para extraer el número de revisión actual (si realiza una actualización antes, puede incluir directamente la palabra clave $Revision$ en un archivo, verifique también esta publicación );
  • modifes su archivo de propiedades / AssemblyInfo.cs en consecuencia.

Lo que normalmente hago es transformar una plantilla AssemblyInfo.cs cuando se construye el proyecto. El script es necesario para adaptar la forma de $ Revision $ a la sintaxis de este archivo, desafortunadamente.

Las propiedades interesantes son (donde las cadenas de la plantilla están entre ''$''):

[assembly: AssemblyVersion("$v$.$build$.$Last Changed Rev$")] [assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev$")]

Edición: la svn info es parte del cliente SVN estándar, no TortoiseSVN como se señala en otra publicación. Aunque es fácil de instalar. Sin embargo, TortoiseSVN viene con SubWCRev.exe que transforma un archivo con sustitución de palabras clave, por lo que sería SubWCRev.exe si actualiza su copia local.


happyturtle.codeplex.com un happyturtle.codeplex.com para el addin (que se nombra en la respuesta de popester). Este complemento SVN extraerá el último número de revisión de cambio de su copia de trabajo y le permitirá usarlo en su número de versión, lo que debería lograr exactamente lo que está tratando de hacer.