Incluyendo la Revisión de SVN en Tu Versionado de Ensamblado .NET

En el mundo del desarrollo de software, mantener el control de versiones es crucial. Para aquellos que utilizan Subversion (SVN) como su sistema de control de versiones, poder incluir el número de revisión del repositorio SVN en la cadena de versión de un ensamblado .NET puede mejorar la trazabilidad y facilitar la depuración. Si te has preguntado, "¿Hay una forma de hacer esto sin herramientas de terceros como CC.NET?", la respuesta es un rotundo sí.

El Problema: Versionado Sin Herramientas Adicionales

Puede que te hayas encontrado en situaciones donde deseas que tu cadena de versión no solo refleje los números de versión mayor y menor, sino también el número de revisión SVN. Un formato típico de versión que podrías considerar se ve así:

Mayor.Menor.RevSVN

Desafortunadamente, encontrar un método sencillo para lograr esto en .NET sin software adicional puede ser un desafío, especialmente si previamente has realizado algo similar en lenguajes como C o C++. En C/C++, esto podría lograrse utilizando un script de compilación que actualizara un archivo de encabezado con el número de versión.

La Solución: Usando SubWCRev

Una forma efectiva de incorporar el número de revisión SVN en tu versionado de ensamblado .NET es a través de SubWCRev, una utilidad incluida con TortoiseSVN. SubWCRev lee palabras clave de SVN de tus archivos y las reemplaza con la información de revisión adecuada durante el proceso de compilación.

Guía Paso a Paso para Implementar SubWCRev

  1. Descargar y Configurar TortoiseSVN:

    • Comienza descargando TortoiseSVN si aún no lo has hecho.
    • Instálalo en tu máquina para acceder a la utilidad SubWCRev incluida.
  2. Configura Tu Archivo AssemblyInfo.cs:

    • Abre tu archivo AssemblyInfo.cs; este archivo típicamente contiene la información de versión de tu ensamblado.
    • Agrega marcadores de lugar donde los números de versión serán reemplazados por SubWCRev.

    Ejemplo:

    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
    [assembly: AssemblyInformationalVersion("1.0.0.0")]
    
  3. Crea un Archivo de Plantilla:

    • Crea un nuevo archivo de texto (por ejemplo, VersionInfo.txt) y estructúralo para definir cómo se debe completar la información de versión.
    • Utiliza marcadores de lugar para el número de revisión.

    Ejemplo de VersionInfo.txt:

    [assembly: AssemblyVersion("${VersionNumber}.0")]
    [assembly: AssemblyFileVersion("${VersionNumber}.0")]
    [assembly: AssemblyInformationalVersion("${VersionNumber}.${Revision}")]
    
  4. Ejecuta SubWCRev:

    • Utiliza el comando SubWCRev para reemplazar los marcadores de lugar en tu archivo VersionInfo.txt con los números de versión reales de tu repositorio SVN.
    • Esto puede hacerse típicamente a través de una línea de comandos o incluido en tus scripts de compilación.
  5. Compila Tu Proyecto:

    • Al compilar tu proyecto, SubWCRev generará un nuevo AssemblyInfo.cs con la versión poblada con tu revisión SVN.

Conclusión

Al incorporar SubWCRev en el flujo de trabajo de tu proyecto .NET, puedes asegurarte fácilmente de que la cadena de versión de tu ensamblado incluya el número de revisión SVN, todo sin necesidad de depender de software externo como CC.NET. Este enfoque no solo hace que tu versionado sea más informativo, sino que también lo mantiene directo y manejable.

Ahora que sabes cómo incluir el número de revisión de SVN en tu versionado de ensamblado .NET, pruébalo en tu próximo proyecto y apreciarás la claridad que aporta.