Подтвердить что ты не робот

Восстановление пакета NuGet не может найти пакет, не имеет источника

У меня есть пакет на моем канале TeamCity NuGet, созданный TeamCity, но зависимый проект TC не может видеть его во время восстановления пакета.

[14:05:02] [Exec] E:\TeamCity-BuildAgent\work\62023563850993a7\Web.nuget\nuget.targets(88, 9): Не удается найти версию '1.0.17.0' пакета 'MarkLogicManager40.

[14:05:02] [Exec] E:\TeamCity-BuildAgent\work\62023563850993a7\Web.nuget\nuget.targets(88, 9): ошибка MSB3073: команда "E:\TeamCity-BuildAgent\work\62023563850993a7\Web.nuget\nuget.exe" установить "E:\TeamCity-BuildAgent\work\62023563850993a7\ProductMvc\packages.config" -source "" -RequireConsent -solutionDir "E:\TeamCity-BuildAgent\work\62023563850993a7\Web\" " вышел с кодом 1.

Обратите внимание, что параметр source в командной строке NuGet пуст. Может ли это быть причиной?

4b9b3361

Ответ 1

На сегодняшний день NuGet.targets имеет следующий способ указать пользовательские каналы:

<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>

Другим вариантом является размещение NuGet.config рядом с файлом решения:

<?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>

Ответ 2

По-видимому, настраиваемые фиды NuGet устанавливаются не через что-либо в файлах решений или проектов, или nuget.config в решении, а в файле nuget.config в профиле разработчика.

Сверху на TeamCity не проверяется агентом этого файла конфигурации или записью на него, чтобы убедиться, что он содержит фид для самого сервера TeamCity.

Таким образом, восстановление пакета на TC с использованием настраиваемого фида TC не будет "просто работать". Вы должны тратить сотни фунтов клиентских денег на погоню за хвостом, чтобы обнаружить все это, а затем установить/скопировать nuget.config из вашего профиля в профиль учетной записи пользователя, на которой запущен агент сборки.

Ужасные.