Actualmente estoy usando el "complemento de número de versión" de Jenkins para establecer una variable de entorno para la versión de compilación. Esto funciona bien dentro de jenkins, pero necesito una forma de pasar esto a MSBuild para que se actualice el número de versión de los exe y dll. Probé el fuelle de configuración pero no actualiza las compilaciones versiónUso de la variable de entorno de versión de Jenkins en el paso
Respuesta
Medio Ambiente Nombre de la variable debe ser escrito sin El porcentaje de marcas ('%'), como este :
VERSION
aparte de eso, creo que es bueno ir.
También puede considerar el cambio de
${BUILDS_ALL_TIME}
a
${BUILDS_ALL_TIME, XX}
(esto hará cumplir una acumulación número de dos dígitos con ceros a la izquierda)
Este es un objetivo de MSBuild que sustituye a la revisión número en el archivo GlobalAssemblyInfo.cs con la variable SVN_REVISION de Jenkins.
Tenemos una solución de proyectos múltiples en la que cada proyecto hace referencia a la misma información GlobalAssemblyInfo para obtener información común (como la versión). Modifique esto para que se ajuste a su configuración.
Al tener la condición Exists, el destino se ejecuta en máquinas desarrolladoras donde MSBuildCommunityTasks no está instalado. En esos casos, el número de versión en GlobalAssemblyInfo.cs no se modifica.
<Target Name="InjectSVNRevision" Condition="Exists('$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets')">
<!-- When this build is done by the Jenkins CI server; the svn revision number is set in the environment variable SVN_REVISION
This little snippet replaces the revision number in GlobalAssemblyInfo.cs with this svn revision number
-->
<Message Text="Injecting SVN revision number in GlobalAssemblyInfo.cs" />
<FileUpdate Files="GlobalAssemblyInfo.cs"
Multiline="true"
Singleline="false"
Regex="(AssemblyVersion|AssemblyFileVersionAttribute|AssemblyFileVersion)\("([0-9]+\.[0-9]+\.[0-9]+)(\.[0-9]+)?"\)"
ReplacementText="$1("$2.$(SVN_REVISION)")"
Condition="$(SVN_REVISION) != '' "/>
</Target>
La manera más fácil que he encontrado para hacer esto es usar la Change Assembly Version. Al usar ese complemento solo necesita proporcionar el número de versión (o la variable de entorno utilizada) y lo reemplazará en todos los archivos AssemblyInfo.cs de su área de trabajo.
Una solución muy rápida a esto es crear una tarea de powershell antes de su tarea msbuild. Esto supone que usted definió la variable VERSIÓN como arriba (sin el %%). Y marcó eliminar el espacio de trabajo antes de que comience la compilación.
Este es el código para la tarea de powershell.
gci -rec -Filter *AssemblyInfo* | ForEach { (Get-Content $_.FullName) | ForEach-Object {$_ -replace "1.0.0.0",$env:VERSION } | Set-Content $_.FullName}
- 1. ¿Cómo uso la variable de entorno JAVA_OPTS?
- 2. Configuración de variables de entorno en el evento de preconstrucción y uso en el paso de compilación
- 3. El uso de un equipo variable de entorno de la ciudad para anular una propiedad proyecto
- 4. ¿Cómo establecer una variable de entorno mediante programación en Jenkins/Hudson?
- 5. Uso de gtest en jenkins
- 6. Tiempo de espera en un paso de compilación de Jenkins
- 7. Cómo conservar el valor de la variable en Jenkins
- 8. Configuración de la variable de entorno en el script ant
- 9. Usando la variable de entorno en una ruta de archivo
- 10. Jenkins Slave Environment Variable Refresh
- 11. cómo establecer la variable de entorno para el usuario raíz
- 12. ¿Cómo exportar e importar "paso de compilación" en Jenkins?
- 13. C# establecer la variable de entorno
- 14. ¿Qué es la variable de entorno HTTP_AUTHORIZATION?
- 15. Incrementando la versión del Proyecto Maven con Jenkins/Git
- 16. Entorno personalizado en Grails para Hudson/Jenkins
- 17. lectura variable de entorno fiesta
- 18. expansión de tilde en la variable de entorno
- 19. Variable de entorno en la consola de Rails y Pow
- 20. Makefile: Ajuste variable de entorno
- 21. Establecer una variable de entorno en javascript
- 22. NodeJS establecer la variable de entorno para el ejecutivo
- 23. Accediendo a la variable de entorno AppKernel en Symfony 2
- 24. Preprocesador de Xcode dependiente de la variable de entorno
- 25. Cargar variable de entorno antes de ejecutar
- 26. Leer una variable de entorno de applicationContext.xml
- 27. whiptail: ¿Cómo redirigir la salida a la variable de entorno?
- 28. Alcance de variable de entorno basado en directorio: ¿cómo implementarlo?
- 29. ¿Cuál es la forma más limpia de establecer la variable de entorno DYLD_FRAMEWORK_PATH para una compilación de versión?
- 30. cómo insertar una variable de entorno en el indicador bash
Sí, me di cuenta de que, también parece que MSBuild.exe no admite/p: versión de forma predeterminada. necesitas perder el tiempo con las extensiones MSBuld. Terminé escribiendo una aplicación de consola para actualizar AssemblyInfo.cs antes de compilar y llamarlo pasando en la variable de entorno. Esto fue más rápido que meterse con las complicadas extensiones de msbuild –
Bueno, esperaba que encontraras una buena manera de pasar la versión a la compilación, ya que también usamos un script adaptado para eso ... – Gonen