Quiero ajustar el resultado de mi configuración de compilación TeamCity de mi biblioteca de clases para que los archivos dll producidos tengan el siguiente número de versión: 3.5.0.x, donde x es el número de revisión de subversión que TeamCity ha recogido.Hacer que TeamCity integre el número de compilación de Subversion en la versión de ensamblaje
He encontrado que puedo usar la variable de entorno BUILD_NUMBER
para obtener x, pero desafortunadamente no entiendo qué más tengo que hacer.
Los "tutoriales" Encuentro todos dicen "Usted acaba de añadir esto a la secuencia de comandos", pero que no dicen lo que guión, y "esto" se refiere generalmente a la tarea AssemblyInfo de la Comunidad Extensiones MSBuild.
¿Necesito crear una secuencia de comandos de MSBuild personalizada de alguna manera para usar esto? ¿Es el "script" lo mismo que el archivo de solución o el archivo de proyecto C#?
No sé mucho sobre el proceso de MSBuild, excepto que puedo pasar un archivo de solución directamente a MSBuild, pero lo que necesito agregar a "la secuencia de comandos" es XML, y el archivo de solución definitivamente no lo hace parece XML.
Entonces, ¿alguien me puede indicar una guía paso a paso sobre cómo hacer que esto funcione?
Esto es lo que terminó con:
- Instalar la edición MSBuild Community Tasks
el archivo .csproj de mi biblioteca de clases base, y cambiar la parte inferior para que se lea:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /> <Target Name="BeforeBuild"> <AssemblyInfo Condition=" '$(BUILD_NUMBER)' != '' " CodeLanguage="CS" OutputFile="$(MSBuildProjectDirectory)\..\GlobalInfo.cs" AssemblyVersion="3.5.0.0" AssemblyFileVersion="$(BUILD_NUMBER)" /> </Target> <Target Name="AfterBuild">
Cambie todos mis archivos AssemblyInfo.cs para que no especifique AssemblyVersion o AssemblyFileVersion (en retrospectiva, investigaré la vuelta de AssemblyVersion)
- Agregué un enlace a GlobalInfo ahora global que está ubicado justo fuera de todo el proyecto
- Asegúrese de que este archivo está construida una vez, así que tengo un archivo por defecto en el control de la fuente
esto ahora se actualizará GlobalInfo.cs sólo si se establece la variable de entorno BUILD_NUMBER, la cual es cuando construyo a través de TeamCity.
Opté por mantener AssemblyVersion constante, para que las referencias sigan funcionando, y solo actualizo AssemblyFileVersion, para poder ver de qué compilación es una DLL.
Desafortunadamente, su parche no [actualmente] (http://confluence.jetbrains.net/display/TCD65/AssemblyInfo+Patcher) permiten a uno especificar distintos valores de '' AssemblyFileVersion' AssemblyVersion' y . – ladenedge
Su sugerencia es muy útil en escenarios donde la principal preocupación es poder rastrear el número de compilación: ¡gracias! – faester
Hombre Estaba a punto de hacer un montón de código repetitivo scheiss solo para obtener esto en mi código. ¡Me salvaste 2 o 3 días de trabajo! –