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

Сервер сборки TFS2012 не восстанавливает пакеты NuGet из собственного репозитория

Я создал собственный репозиторий NuGet (общую папку на одном из наших серверов) и добавил его в список "Доступные источники" в настройках Visual Studio NuGet на моем ПК. Я могу успешно установить пакет в свое решение из этого репозитория.

Однако на сервере TFS сборка не работает, потому что она не может восстановить этот конкретный пакет (сообщение: "Невозможно найти версию" xxx "пакета" xxx "). Решение настроено для" включения восстановления пакета NuGet", которое отлично работает для пакетов, установленных через nuget.org. Он просто не восстанавливает пакет из нашего внутреннего хранилища.

Разрешения в папке/папке репозитория в порядке. Что мне не хватает?

Я предполагаю, что мне нужно также настроить "доступные источники" Visual Studio на сервере TFS, но, возможно, эти параметры зависят от пользователя? Служба сборки работает как NETWORK SERVICE, так как я могу настроить NuGet для этого пользователя?

4b9b3361

Ответ 1

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

в зависимости от того, каким образом вы выполняете восстановление NuGet, обновили ли вы файл целей локатор вашего локального фида?

<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://www.nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
        <!--
            <PackageSource Include="https://www.nuget.org/api/v2/" />
            <PackageSource Include="https://my-nuget-source/nuget/" />
        -->
      <PackageSource Include="http://MyLocalFeed/nuget/nuget"/>

    </ItemGroup>

Ответ 2

Вы можете добавить источник в общую конфигурацию на сервере TFS, и он будет включен в список источников при восстановлении пакета.

Я создал файл %ProgramData%\NuGet\Config\sources.config, содержащий:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="internal source" value="http://internal_server/nuget/" />
  </packageSources>
</configuration>

Имя файла не имеет значения, это местоположение файла. Nuget подбирает любые файлы .config в этой папке.

http://docs.nuget.org/docs/reference/NuGet-Config-File#NuGet_config_extensibility_point

ОБНОВЛЕНИЕ 2016-11-18 Согласно http://blog.nuget.org/20161121/introducing-nuget4.0.html (при нарушении изменений) VS 2017+ и NuGet 4.0+ изменяет расположение установочной папки для всей машины на %ProgramFiles(x86)%\NuGet\Config\.