Me gustaría que la propiedad de versión de mi aplicación se incrementara para cada compilación, pero no estoy seguro de cómo habilitar esta funcionalidad en Visual Studio (2005/2008). Intenté especificar AssemblyVersion como 1.0. * Pero no me da exactamente lo que quiero.
También estoy usando un archivo de configuración y en intentos anteriores, cuando la versión de ensamblaje cambió, mi configuración se restableció a la predeterminada ya que la aplicación buscó el archivo de configuración en otro directorio.
Me gustaría poder mostrar un número de versión en forma de 1.1.38 para que cuando un usuario encuentre un problema, pueda registrar la versión que está usando y decirle que actualice si tiene una versión anterior.
También se agradecería una breve explicación de cómo funciona el control de versiones. ¿Cuándo se incrementa el número de versión y revisión?
fuente
Respuestas:
Con las cosas "incorporadas", no puede, ya que usar 1.0. * O 1.0.0. * Reemplazará los números de revisión y compilación con una fecha / marca de tiempo codificada, que generalmente también es una buena manera.
Para obtener más información, consulte la documentación de Assembly Linker en la etiqueta / v.
En cuanto a incrementar números automáticamente, use la tarea AssemblyInfo:
Tarea AssemblyInfo
Esto se puede configurar para incrementar automáticamente el número de compilación.
Hay 2 problemas:
Recuperar el número de versión es bastante fácil:
Y, para aclarar: en .net o al menos en C #, la compilación es en realidad el TERCER número, no el cuarto, como algunas personas (por ejemplo, los desarrolladores de Delphi que están acostumbrados a Major.Minor.Release.Build) podrían esperar.
En .net, es Major.Minor.Build.Revision.
fuente
VS.NET establece por defecto la versión de Ensamblaje en 1.0. * Y usa la siguiente lógica cuando se incrementa automáticamente: establece la parte de compilación en el número de días desde el 1 de enero de 2000, y establece la parte de revisión en el número de segundos desde la medianoche, hora local, dividida por dos. Consulte este artículo de MSDN .
La versión de ensamblado se encuentra en un archivo assemblyinfo.vb o assemblyinfo.cs. Del archivo:
fuente
January 1st, 2000
Descubrí que funciona bien simplemente mostrar la fecha de la última compilación usando lo siguiente siempre que se necesite una versión del producto:
En lugar de intentar obtener la versión de algo como lo siguiente:
fuente
¿Qué sistema de control de fuente estás usando?
Casi todos tienen algún tipo de etiqueta $ Id $ que se expande cuando se registra el archivo.
Normalmente utilizo algún tipo de piratería para mostrar esto como el número de versión.
La otra alternativa es usar la fecha como número de compilación: 080803-1448
fuente
[Visual Studio 2017, propiedades de .csproj ]
Para actualizar automáticamente su propiedad PackageVersion / Version / AssemblyVersion (o cualquier otra propiedad), primero, cree una nueva
Microsoft.Build.Utilities.Task
clase que obtenga su número de compilación actual y envíe el número actualizado (recomiendo crear un proyecto separado solo para esa clase).Actualizo manualmente los números principales y menores, pero dejo que MSBuild actualice automáticamente el número de compilación (1.1. 1 , 1.1. 2 , 1.1. 3 , etc. :)
Luego llame a su tarea recientemente creada en el proceso de MSBuild agregando el siguiente código en su archivo .csproj:
Al elegir la opción de proyecto Visual Studio Pack (simplemente cambie a
BeforeTargets="Build"
para ejecutar la tarea antes de la compilación), el código RefreshVersion se activará para calcular el nuevo número de versión y laXmlPoke
tarea actualizará su propiedad .csproj en consecuencia (sí, modificará el archivo).Cuando trabajo con bibliotecas NuGet, también envío el paquete al repositorio NuGet simplemente agregando la siguiente tarea de compilación al ejemplo anterior.
c:\nuget\nuget
es donde tengo el cliente NuGet (recuerde guardar su clave API de NuGet llamandonuget SetApiKey <my-api-key>
o incluir la clave en la llamada push de NuGet).Por si acaso ayuda a alguien ^ _ ^.
fuente
Hace algún tiempo escribí un exe rápido y sucio que actualizaría los números de versión en un assemblyinfo. {Cs / vb} - También he usado rxfind.exe (una herramienta de reemplazo de búsqueda simple y poderosa basada en expresiones regulares) para hacer el actualizar desde una línea de comando como parte del proceso de compilación. Un par de otras sugerencias útiles:
fuente
Si desea un número de incremento automático que se actualice cada vez que se realiza una compilación, puede usar VersionUpdater desde un evento previo a la compilación. Su evento previo a la compilación puede verificar la configuración de compilación si lo prefiere para que el número de versión solo se incremente para una compilación de lanzamiento (por ejemplo).
fuente