NuGet Package Restore no puede encontrar el paquete, no tiene fuente


Tengo un paquete en mi feed de TeamCity NuGet, construido por TeamCity, pero un proyecto TC dependiente no puede verlo durante la restauración del paquete.

[14:05:02][Exec] E:\TeamCity-BuildAgent\work\62023563850993a7\Web.nuget\nuget.targets (88, 9): No se puede encontrar la versión '1.0.17.0' del paquete 'MarkLogicManager40'.

[14:05:02][Exec] E:\TeamCity-BuildAgent\work\62023563850993a7\Web.nuget\nuget.targets (88, 9): error MSB3073: El comando ""E:\TeamCity-BuildAgent\work\62023563850993a7\Web.nuget\nuget.exe" instalar "E:\TeamCity-BuildAgent\work\62023563850993a7\ProductMvc\packages.config "- source "" - RequireConsent-SolutionDir "E:\TeamCity-BuildAgent\work\62023563850993a7\Web\ "" salió con el código 1.

Tenga en cuenta que el parámetro source en la línea de comandos de NuGet está vacío. ¿Podría ser esta la causa?

Author: abatishchev, 2013-06-17

2 answers

A partir de hoy, NuGet.targets tiene la siguiente forma de especificar fuentes personalizadas:

<ItemGroup Condition=" '$(PackageSources)' == '' ">
    <!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
    <!-- The official NuGet package source (https://nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->

    <PackageSource Include="https://nuget.org/api/v2/" />
    <PackageSource Include="\\MyShare" />
    <PackageSource Include="http://MyServer/" />
</ItemGroup>

Otra opción es poner NuGet.config junto al archivo de solución:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
    <add key="MyShare" value="\\MyShare" />
    <add key="MyServer" value="http://MyServer" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)"  />
  </activePackageSource>
</configuration>
 40
Author: abatishchev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-14 17:56:18

Aparentemente las fuentes personalizadas de NuGet no se establecen a través de nada en los archivos de solución o proyecto, o nuget.config en la solución, pero en el nuget.config en el perfil del desarrollador.

En TeamCity, el agente no verifica este archivo de configuración, ni escribe en él, para asegurarse de que contiene el feed para el propio servidor de TeamCity.

Así que la restauración de paquetes en TC usando un feed de TC personalizado no 'solo funcionará'. Tienes que gastar cientos de libras del dinero del cliente persiguiendo tu cola para descubre todo esto y luego configura / copia tu nuget.config de su perfil en el perfil de la cuenta de usuario que ejecuta el agente de compilación.

Horrible.
 8
Author: Luke Puplett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-17 16:35:57