none
parametrizacion de numero de versiones RRS feed

  • Pregunta

  • buenas tardes mi pregunta es sobre team foundation server, deseo saber  si el usuario puede controlar la version del proyecto o solucion, es decir, parametrizarlo a su conveniencia.
    Ejemplo: el contador de versiones va 1 en 1, pero yo quiero ejemplo poder parametrizarlo 0.x , x.x
    x.0 , x0.x, algo asi...

    Gracias por su respuestas :D


    martes, 3 de febrero de 2009 18:35

Todas las respuestas

  • Hola emperatriz, por el formato de las versiones que indicas, creo que te refieres a la versión de los ensamblados generados al construir la solución (la versión que aparece en las propiedades del .exe o .dll). Este número de versión se controla desde código; en un proyecto C# si despliegas las propiedades encontrarás un fichero AssemblyInfo.cs que contiene las siguientes líneas:

    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]

    En VB.NET, si en el explorador de soluciones tienes pulsado el botón de mostrar todos los ficheros, en la carpeta "My Project" tienes el fichero AssemblyInfo.vb con las siguientes líneas:

    <Assembly: AssemblyVersion("1.0.0.0")>
    <Assembly: AssemblyFileVersion("1.0.0.0")>

    Cambiando el número de versión en esos ficheros conseguirás cambiar el número de versión de los ensamblados. Lo normal es cambiar AssemblyFileVersion en cada build, y cambiar AssemblyVersion si se rompe la compatibilidad hacia atrás (no para cambios menores o resolución de bugs). Es también común tener un solo fichero AssemblyInfo a nivel de solución, y añadirlo como un enlace en cada uno de los proyectos que componen la solución. De este modo sólo hay que tocar un fichero para cambiar la versión de todos los ensamblados del proyecto.

    Para parametrizar la versión en team foundation server (supongo que te refieres a las builds), como puedes suponer tendrás que modificar el comportamiento de la build para que cambie el fichero AssemblyInfo del proyecto o solución, según lo que  necesites escribir en la versión. Esto puede ser más o menos complejo dependiendo del dominio que tengas de MSBuild y de la versión que quieras escribir. Como es un poco largo de contar, te dejo un enlace del blog de El Bruno donde explica cómo construir una tarea personalizada que permite incrementar cualquiera de los cuatro números de la build, manteniendo además alineada la versión con el número de build, y cómo invocar a esa tarea desde el fichero TFSBuild.proj:

    http://geeks.ms/blogs/elbruno/archive/2008/07/09/msbuild-howto-incrementar-el-numero-de-la-version-en-cada-build.aspx

    Si los cambios en la versión que quieres hacer no son sólo incrementos, tendrás que hacer algo parecido a eso pero adaptado a tus necesidades. De todos modos lo más común es simplemente incrementar el cuarto número de AssemblyFileVersion.

    Espero que te sea de ayuda...

    Un saludo!!!

    miércoles, 4 de febrero de 2009 1:24
  • Buenas días

        la información me es útil. pero quizas no me explique bien en mi pregunta.


    Existe alguna forma de que el TFS no trabaje en base a los changeset, sino que utilize el formato de versiones (X.X.X.X) y este sea actualizado cada vez que se realice cambios al proyeto.?


    muhas gracias.
    miércoles, 4 de febrero de 2009 14:42
  • Puedes poner el número de versión que quieras sobre-escribiendo el target BuildNumberOverrideTarget.


    <Target Name="BuildNumberOverrideTarget">
    ...
    </Target>

    Aqui tienes la documentación de MSDN que te indica paso a paso cómo hacerlo : http://msdn.microsoft.com/es-es/library/aa395241.aspx


    Tendrás de desarrollar la "lógica" de cuando incrementar versiones. Si es mediante un parámetro que se le pasa a la build, o por cada compilación de un tipo, mediante un fichero que este en TFS ...

    Saludos,
    David Hernández Díez
    MCDBA MCSD vs6 & .Net, MCPD Enterprise
    miércoles, 4 de febrero de 2009 16:59