Comprendiendo File Version
y Assembly Version
en Aplicaciones .NET
Cuando se trabaja en aplicaciones .NET, gestionar la versionado puede convertirse en una tarea desafiante. En particular, los desarrolladores a menudo lidian con el uso adecuado de File Version
y Assembly Version
. En esta publicación de blog, profundizaremos en estos dos atributos de versión, su importancia y orientación sobre cómo utilizarlos de manera eficaz dentro de sus proyectos.
El Desafío del Versionado
Los proyectos .NET requieren típicamente dos números de versión distintos: el File Version
y el Assembly Version
. A veces, estos dos pueden resultar confusos, especialmente en lo que respecta a sus aplicaciones y cómo interactúan entre sí. Aquí hay un breve resumen:
-
Assembly Version: Este atributo indica la versión del manifiesto de la asamblea en sí, que es crucial durante la resolución de la asamblea. Se trata más de la compatibilidad de su código cuando es llamado por otras asambleas.
-
File Version: Esto se refiere a la versión del archivo físico en disco, y no es utilizada por el tiempo de ejecución de .NET. Esto significa que los usuarios pueden ver esta versión en las propiedades del archivo de la asamblea, pero no afecta el referenciamiento de las asambleas durante el tiempo de ejecución.
Mejores Prácticas para Usar File Version y Assembly Version
Manteniéndolos Separados
Una práctica común es mantener constante la versión de la asamblea mientras se actualiza la versión del archivo. Por ejemplo, si tiene múltiples asambleas como un ejecutable (exe) y varias bibliotecas de enlace dinámico (dlls), puede:
- Establecer la misma versión de asamblea para todas las asambleas (exe y dlls). De esta manera, mantiene su interfaz de asamblea consistente.
- Diferenciar la versión de archivo para asambleas individuales (por ejemplo: el exe tiene la versión 1.0.0.0, mientras que dll1 tiene 1.0.0.1, dll2 tiene 1.0.0.2, etc.). Esto le permite rastrear cambios realizados específicamente en los ejecutables.
Esta estrategia le permite mantener una comprensión clara de qué versión de cada DLL se alinea con el ejecutable, simplificando la gestión del proyecto y minimizando problemas de compatibilidad.
Auto-Incrementando Versiones
En algunos casos, los desarrolladores prefieren auto-incrementar la File Version para cada compilación mientras actualizan manualmente la Assembly Version solo cuando se realicen cambios significativos. Esto significa que después de cada compilación, la File Version podría reflejar detalles específicos de la compilación (por ejemplo, 1.0.0.1, 1.0.0.2, etc.), mientras que las actualizaciones de Assembly Version ocurren en un intervalo más amplio (como de 1.0.0 a 1.0.1, etc.).
El Rol de AssemblyInformationalVersion
El atributo AssemblyInformationalVersion
es otra herramienta de versionado importante. Este atributo puede almacenar una representación de cadena de la versión, utilizada generalmente para fines informativos para mostrar detalles adicionales sobre la versión actual que pueden no encajar perfectamente en los sistemas de versionado estructurado.
- Esto podría incluir etiquetas como “beta”, “candidato a lanzamiento” u otros marcadores cualitativos.
- Ayuda a los usuarios a comprender el estado del software de un vistazo.
Conclusión
Comprender y utilizar eficazmente File Version
, Assembly Version
y AssemblyInformationalVersion
en sus proyectos .NET puede llevar a un mejor control de versiones y a un proceso de desarrollo más fluido. Al adoptar convenciones de versionado consistentes, puede minimizar conflictos potenciales y mantener manejables sus proyectos.
Para orientación adicional, puede consultar el artículo de soporte de Microsoft: Cómo usar Assembly Version y Assembly File Version.
Siguiendo estas prácticas, no solo mantendrá su código organizado, sino que también mejorará la colaboración en entornos de equipo donde múltiples desarrolladores están trabajando en la misma aplicación.