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

Logo Teamcty

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 mas 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 veras nada relacionado a 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 utilizarlos 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.