Versionado de ensamblados con MSBuild en .NET Core 2.0
Aunque esto podría aplicar a .NET Core en general, voy a tratar de explicar como podemos versionar nuestros ensamblados tomando como ejemplo, un proyecto de ASP.NET Core.
En primer lugar, he decidido crear un proyecto de ASP.NET Core 2 con Visual Studio 2017 Preview 3.
Una vez que tengo el proyecto, he decidido hacer clic con el botón derecho sobre él, y he abierto las propieades del mismo.
Dentro de la ventaja de propiedades del proyecto, he hecho clic sobre la solapa Package.
Aquí podemos ver las diferentes opciones que se nos da para cambiar la versión de nuestra aplicación y ensamblados cuando trabajamos desde Visual Studio.
No obstante, si abrimos el fichero de proyecto (extensión csproj, y en mi caso MvcMovie.csproj), podremos encontrar también ahí, el versionado de nuestro ensamblado.
Cambiar el versionado en un sitio o en otro es equivalente.
Ahora bien, también podemos versionar en caliente, en un proceso de integración continua por ejemplo.
Esto lo haríamos con la línea de comandos y no tendríamos que modificar ninguna propiedad o el fichero de proyecto.
Bastaría con realizar las siguientes acciones, abriendo para ello una ventana de consola para demostrar el procedimiento a seguir.
(Opcional) => ejecutamos el comando
dotnet clean
De esta manera, limpiamos todo el contenido de la carpeta bin si existe algo.
Ejecutamos el comando
dotnet restore
De esta forma, restauramos los paquetes del proyecto, incluyendo el fichero de MSBuild que nos servirá para realizar la compilación y versionado que le aplicaremos en tiempo de ejecución.
Finalmente, ejecutaremos el comando de compilación:
dotnet msbuild MvcMovie.csproj /p:Version=2.1.0.0
Si accedemos a la carpeta en la que se ha compilado nuestro ensamblado, y hacemos clic con el botón derecho sobre la dll y seleccionamos las propiedades, veremos que nuestro ensamblado se ha compilado con la versión 2.1.0.0.
Si volvemos a acceder a la versión de nuestro ensamblado, ya sea en el fichero csproj o en las propiedades del proyecto, veremos que la versión de nuestro ensamblado sigue siendo la versión 1.0.0.0.
Por último, comentar que con msbuild también podemos compilar para publicar nuestra aplicación.
Esto lo realizaremos con el comando:
dotnet msbuild MvcMovie.csproj /t:publish /p:Version=2.1.0.0
También cabe recordar, que si queremos compilar nuestra aplicación de forma estándar (con la versión configurada y que en nuestro caso es la versión 1.0.0.0), basta con ejecutar el comando:
dotnet msbuild
Ya para finalizar, si lo que queremos es compilar todos los proyectos de una solución con la misma versión, podremos utilizar el mismo comando, pero indicando el nombre de la solución en lugar del proyecto, como por ejemplo:
dotnet msbuild MvcMovie.sln /p:Version=2.0.0.0
Y no te olvides, que si queremos acceder a la ayuda de MSBuild, bastará con ejecutar el comando:
dotnet msbuild -help
¡Happy Coding!