How to: Crear un Package Nuget de una dll existente en Teamcity.

Te voy a explicar como crear un package Nuget a partir de una dll existente en un build step de Teamcity. He tenido problemas con determinadas dlls que son referenciadas  usando los rutas locales de los instaladores y al momento de ejecutar el build arrojan error debido a que el archivo no existe porque está apuntando al entorno de desarrollo. El principal problema, en mi caso, son las dlls de Visual Studio y JustMock. Para resolver el problema moví las referencias de esas librerías a un package Nuget, esto me ayuda a tener un build más limpio.

Teamcity te ofrece la funcionalidad de poder exponer tus artefactos .nupkg en un Feed Nuget, si tienes un repositorio de paquetes Nuget distinto también puedes publicarlos desde Teamcity con un build step Nuget Publish.

Paso 1: Crear proyecto.

Debes crear un proyecto nuevo en Teamcity, selecciona la opción: From a Repository. He creado un repo que puedes de usar, de ejemplo puedes hacer clone con la siguiente Url:

https://github.com/HappyDevops/Teamcity-NugetPacks.git

No es necesario que agregues credenciales, no se hará ningún commit o push.

Paso 2: Añadir el Build Step.

Debes añadir un nuevo build step, del tipo Nuget Pack. Luego de esto debes de añadir el path del archivo .nuspec; Teamcity también soporta la generación de paquetes Nuget a partir de un archivo de proyecto. Cuando usas un archivo .csproj, Teamcity crea o complementa el archivo .nuspec que será utilizado para la creación del package. Solo es una mención, no verás nada relacionado con archivos .csproj en este tutorial.

La ruta del archivo .nuspec es la siguiente

Dependences/Microsoft.VisualStudio.QualityTools.UnitTestFramework/16.0.29428.189/package_es.nuspec

Paso 3: Output directory.

Puedes asignar un directorio de salida para tus packages, esto puede ser útil si vas a hacer un Publish en otro servidor. Debes de marcar el checkbox «Publish creates packages to build artifacts» para que sean visibles en la interfaz de Teamcity o puedas emplearlos en tu pipeline.

Paso 4: Run.

Guarda los cambios en tu proyecto y presiona el botón de Run, el build no debe tardar más de unos segundos, en la interfaz de usuario podrás ver el paquete Nuget producido.

El archivo .nuspec.

Puedes revisar el archivo nuspec en el repositorio, también lo agrego al tutorial para que puedas consultarlo fácilmente.

Gustavo Sánchez
Últimas entradas de Gustavo Sánchez (ver todo)

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.