Me pregunto si existe una forma de sincronizar los números de compilación (20080213.1) sin usar BuildNumberOverrideTarget donde tendría que generar mi propio número de compilación. Básicamente, quiero usar el generador de número de builds tfs predeterminado/incorporado, pero quiero acceder a él para alinear mis versiones de ensamblaje con él. ¿Se puede hacer esto y es una forma sensata de hacerlo de esta manera?Alineación de números de versión de ensamblaje con TFS Buildnumber
Respuesta
Sí, puedes. En algún momento, posiblemente en AfterGet, puede usar BuildNumber y crear una tarea personalizada para actualizar los archivos AssemblyInfo.cs en su código fuente.
Hemos enganchado en AfterGet y causó nuestro objetivo de ser dependientes:
<Target Name="AfterGet" DependsOnTargets="VersionAssemblies" />
Nuestro objetivo VersionAssemblies tira de todos los archivos de AssemblyInfo.cs $ (SolutionRoot):
<CreateItem Include="$(SolutionRoot)\**\AssemblyInfo.cs;">
<Output TaskParameter="Include" ItemName="AssemblyInfos"/>
</CreateItem>
cheques fuera de ellos:
<Exec Command="$(TfCommand) checkout "AssemblyInfo.cs" -r"
WorkingDirectory="$(MSBuildProjectDirectory)\..\sources" ContinueOnError="true"/>
los edita y reemplaza la versión del archivo con $ (Buil NUMEROD):
<File.Replace Path="%(AssemblyInfos.FullPath)"
NewValue="AssemblyFileVersion("$(BuildNumber)")"
RegularExpression="AssemblyFileVersion\(\"(\d+.\d+.\d+.\d+)\"\)"
IgnoreCase="true"
Force="true"/>
y luego comprueba los archivos de nuevo en:
<Exec Command="$(TfCommand) checkin /override:"Automated" /comment:"Update AssemblyInfo files to version number $(BuildNumber) - $(NoCICheckinComment) " /noprompt "AssemblyInfo.cs" /recursive"
WorkingDirectory="$(MSBuildProjectDirectory)\..\sources" ContinueOnError="false"/>
Para la sustitución de las versiones del archivo que utilizo la tarea File.Replace que viene con el Microsoft SDC tasks en CodePlex.
También tenga en cuenta que si tiene una compilación activada en un check-in, cuando compruebe los archivos AssemblyInfo.cs, asegúrese de que el comentario incluya $ (NoCICheckinComment) ya que esto hace que TFS no active otra compilación. terminaré en un ciclo de compilación infinito.
Lo que está pidiendo es muy sensato y hay varias maneras de lograrlo.
Personalmente, cuando hago esto no me gusta revisar los archivos en el control de versiones que tienen el número generado por el servidor de compilación en ellos; simplemente presenta demasiados dolores de cabeza al fusionar código entre ramas pero también me gusta un número de versión conocido que se utilizará cuando un desarrollador realiza una compilación de estación de trabajo frente a un ensamblado derivado del servidor de compilación adecuado para que sea realmente fácil diferenciarlos.
Para obtener más información sobre cómo me gusta hacerlo, echar un vistazo a la TFS Build Recetas wiki:
o mi blog sobre el tema
Espero que ayude,
Martin.
Gracias Martin. Ya me había encontrado con tu excelente publicación sobre la alineación y he usado ese método. Cuando dice que le gusta un número de versión conocido para usar en compilaciones de desarrollador, ¿quiere decir que esos serían los del archivo de información del ensamblado sin anulaciones? decir 1.0.0.0? – Fadeproof
Para los desarrolladores, ¿solo utilizas la compilación VS o usas compilaciones de compilación que los desarrolladores deberían usar en sus estaciones de trabajo? – Fadeproof
Para desarrolladores, solo uso la compilación VS. A veces utilizo las compilaciones de Developer Workstation usando el script TeamBuild; sin embargo, las compilaciones de VS tienden a ser capaces de hacer el trabajo el 90% del tiempo y hacen las cosas mucho más simples. En respuesta a su comentario anterior, de hecho uso 1.0.0.0 en los archivos de AssemblyInfo. –
- 1. Deserialización binaria con diferente versión de ensamblaje
- 2. TFS Lista de todos los archivos y números de versión con un conjunto de cambios particular
- 3. ¿Se puede actualizar automáticamente la versión de ensamblaje con cada TFS 2010 Build?
- 4. números de alineación/almohadilla derecha en bash
- 5. RE: Alineación de números en las barras individuales con ggplot2
- 6. Alineación de números en las barras individuales con ggplot2
- 7. Detalles de la versión de ensamblaje
- 8. números de versión de msi
- 9. ¿Cuál es la mejor manera de usar la versión de archivo y la versión de ensamblaje?
- 10. Gestión automática del número de versión de ensamblaje en VS2008
- 11. ¿Cuándo deberían usarse directivas explícitas de alineación en el ensamblaje?
- 12. Atributo de versión de NuSpec frente a la versión de ensamblaje
- 13. Complemento Maven Buildnumber - Git
- 14. ¿Cómo obtengo la versión de un ensamblaje sin cargarlo?
- 15. tfs database size - control de versión
- 16. TFS para el mantenimiento de la versión
- 17. Números de versión de análisis a números reales
- 18. ¿Puedo establecer la versión del proyecto con un buildnumber-maven-plugin?
- 19. Números de versión flotante, decimal o doble
- 20. Google App Engine números de versión?
- 21. ¿Versión de ensamblaje desde la línea de comandos?
- 22. Obtener la versión de ensamblaje de otro proyecto (.exe)
- 23. Agregando dos números de 64 bits en el ensamblaje
- 24. Especifique la versión de publicación con la línea de comandos de MSBuild como versión de ensamblaje del proyecto
- 25. ¿Enlace contra versión no específica de un ensamblaje?
- 26. TFS obtén la última versión con los archivos nuevos
- 27. Cambiar la versión de ensamblaje en un ensamblado .NET compilado
- 28. Ensamblaje de Maven: ensamblaje
- 29. ¿Cómo se genera una versión de ensamblaje en .NET?
- 30. Ensamblaje de Maven: agregue una versión diferente del mismo artefacto
¿Cómo extraes la compilación y la revisión desde $ (BuildNumber) como está por defecto del formato "MyBuildDefinition_20090213.1"? – Fadeproof
Puede escribir una tarea personalizada para quitar la parte MyBuildDefinition_ y quitarla. –