Pregunta

Estoy usando TortoiseSVN y Visual Studio 2008. ¿Hay alguna manera de actualizar el assemblyinfo.cs 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

¿Fue útil?

Solución

Puede utilizar la herramienta SubWCRev que viene con TortoiseSVN (también disponible por separado).

Ejecútelo desde una línea de comando o use COM- Objeto 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 ejemplo se muestra en los documentos.

Otros consejos

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 tareas de creación de comunidad . Esto esencialmente aplica una expresión regular a AssemblyInfo.cs, reemplazando la revisión actual con la revisión svn.

Puede usar $ Rev $ svn palabra clave pero eso le dará la última revisión del archivo, creo que desea obtener el número de revisión HEAD .

Echa un vistazo a esta pregunta:

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

Sí, puede agregar un evento previo a la compilació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 < a href = "https://stackoverflow.com/questions/1620598/how-to-get-the-current-revision-number-into-a-file-after-export/1620624#1620624"> esta publicación );
  • modifica sus propiedades \ AssemblyInfo.cs como corresponda.

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<*>quot;)]
[assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev<*>quot;)]

Editar: 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 haría el truco si actualiza su copia local.

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 Windows Creación de SVN proporcionada por CollabNet

Creé un complemento SVN versión para el Proyecto Build Version Increment (que se menciona 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top