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:
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.
- NVL in SQL Server - 2023-11-01
- ¿Que es Cake Build? - 2023-02-22
- #How to fix error: MSB4019: The imported project «Microsoft.Data.Tools.Schema.SqlTasks.targets» was not found - 2023-02-20