¿Cómo debo decirle al paso de compilación del instalador NuGet de TeamCity que use NuGet.org y la fuente de paquetes proporcionada por TeamCity?
nuget-server (4)
Estoy teniendo problemas con el paso de compilación de mi instalador NuGet.
Estamos utilizando paquetes oficiales de NuGet.org y nuestros propios paquetes alojados en el servidor de TeamCity NuGet. Si dejo las Fuentes de los Paquetes en blanco, se encontrarán los paquetes de nuget.org, pero tan pronto como especifique %teamcity.nuget.feed.server%
como fuente del paquete, no se encontrarán los paquetes de nuget.org.
Intenté establecer Paquetes de fuentes para incluir ambos, pero aún no funciona para los paquetes oficiales de nuget.org.
https://nuget.org/api/v2/
%teamcity.nuget.feed.server%
¿No es la URL correcta para la fuente del paquete nuget.org? ¿Cómo le digo a usar ambas fuentes?
Pregunté esto en el foro de discusión de desarrolladores de JetBrains , pero no he recibido ninguna respuesta.
Aparentemente, el paso de compilación del instalador de NuGet ni siquiera es necesario. Edité el archivo .nuget/NuGet.targets
para incluir ambas rutas y eliminé el paso de compilación del instalador de NuGet y ahora funciona.
Al configurar TeamCity para esta solución originalmente, no funcionó sin el paso del instalador de NuGet, por lo que no sé qué otra cosa he hecho de manera diferente para hacer que esto funcione, pero tal vez el archivo NuGet.targets fue la clave en todo momento. .
El comentario en esta publicación del blog me indicó la dirección correcta.
El mismo problema aqui. Estoy usando TeamCity v10, se requiere el paso Nuget (no hay ningún archivo .targets en mi solución). Sin embargo, utilicé otro enfoque para agregar la fuente del paquete "extra":
c:/BuildAgent/tools/NuGet.CommandLine.2.7.0/tools/Nuget.exe sources Add -Name TeamCity-feed -Source http://myteamcityserver/guestAuth/app/nuget/v1/FeedService.svc/
Después de eso, agregué un paso del instalador de Nuget y no especifiqué nada en el cuadro de fuente del paquete en TeamCity, ahora ambos paquetes de la fuente pública nuget.org y mi fuente interna se podrían restaurar sin problemas.
Puede modificar la carpeta local NuGet.Config en AppData para el usuario con el que se ejecuta TeamCity y no modificar el archivo .targets de cada proyecto:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<!--<add key="repositoryPath" value="J:/TeamCity7/buildAgent/work/my_shared_packages_dir" />-->
</config>
<packageRestore>
<add key="enabled" value="True" />
</packageRestore>
<packageSources>
<add key="NuGet official package source" value="https://nuget.org/api/v2/" />
<add key="MMG TeamCity Nuget Server" value="http://myteamcityserver/guestAuth/app/nuget/v1/FeedService.svc" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
</configuration>
El NuGet.exe dentro de la carpeta .nuget en cada proyecto respetará primero las configuraciones establecidas aquí, luego aplicará cualquier "anulación" hecha en el archivo .targets.
Tenía el mismo problema, lo suficientemente gracioso que mis fuentes de Nuget se especificaron como
https://www.nuget.org/api/v2/
http://nugetserver/nuget
Agregar una barra diagonal hacia adelante en la segunda url para hacerla http://mynugetserver/nuget/
solucionó el problema. Me tomó un tiempo para averiguar. Ahora el paso de compilación de mi instalador Nuget se está ejecutando bien.