Восстановление Nuget не выполняется с проверкой подлинности - PullRequest
0 голосов
/ 09 июля 2020

Переход на мой компьютер Linux для работы У меня возникла проблема с Nuget. Наши проекты - это. net core 3.1, и каждый имеет свой собственный файл nuget.config, в котором есть четыре источника пакетов. Первый очевиден, но остальные указаны c для компании.

Каждый раз, когда я строю, я получаю сообщение об отсутствии авторизации:

/ usr / share / dotnet /sdk/3.1.301/NuGet.targets(128,5): ошибка: невозможно загрузить индекс службы для источника https://aldinternational.pkgs.visualstudio.com/_packaging/PLASMA/nuget/v3/index.json. [/home/lg/Documents/ALD/repo/CampaignIngestion.OmegaConnector/OmegaConnector.Functions/OmegaConnector.Functions.csproj] /usr/share/dotnet/sdk/3.1.301/NuGet.targets(128,5): error: Код состояния ответа не указывает на успех: 401 (Неавторизованный). [/home/lg/Documents/ALD/repo/CampaignIngestion.OmegaConnector/OmegaConnector.Functions/OmegaConnector.Functions.csproj] 0 Предупреждение (я) 1 Ошибка (и)

, но я могу получить json вывод, когда я помещаю это в браузер. Я запустил:

mozroots --import --syn c --url https://hg.mozilla.org/mozilla-central/raw-file/tip/security ‌ / nss / lib / ckfw / builti‌ ns / certdata.txt

как поток, в котором я его нашел, похоже, имеет аналогичную проблему, но мне не повезло.

dotnet --info output

.NET Core SDK (reflecting any global.json):
 Version:   3.1.301
 Commit:    7feb845744

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-x64
 Base Path:   /usr/share/dotnet/sdk/3.1.301/

Host (useful for support):
  Version: 3.1.5
  Commit:  65cd789777

.NET Core SDKs installed:
  2.1.302 [/usr/share/dotnet/sdk]
  2.2.300 [/usr/share/dotnet/sdk]
  3.1.301 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

Сборка определенно попадает в правильный файл nuget.config и не использует мою локальную конфигурацию использования . Как я могу исправить эту проблему?

У меня загружены все пакеты из key = "nuget.org" value = "https://api.nuget.org/v3/index.json", так как я думаю, что он первый в списке.

1 Ответ

0 голосов
/ 10 июля 2020

Все это сводилось к добавлению правильных packageSourceCredentials в правильный файл nuget.config. У меня есть

  1. ~ / .config / NuGet / nuget.config
  2. ~ / .nuget / NuGet / nuget.config
  3. файл nuget.config уровня решения

Не используйте для этого # 3, так как это ставит пользователя на уровень решения, и оно фиксируется. # 1, похоже, не оказывает никакого влияния, когда я делаю «do tnet build» из папки проекта. # 2 - это файл, для которого необходимо настроить учетные данные (в любом случае для меня).

Следующая проблема заключается в том, что у нас настроен доступ к коду PAT в нашем частном репо, но платформы, отличные от windows, не поддерживают шифрование но просто вводить пароль в виде открытого текста тоже бесполезно. Мне нужно было сделать следующее:

  1. Go для входа в VSTS с моей учетной записью и создания кода PAT
  2. Создать раздел PackageSourceCredentials в # 2 файле конфигурации nuget
  3. для каждого репо, которому требуются учетные данные, создайте раздел для его имени в разделе PackageSourceCredentials, то есть для

(PLASMA определена в # 3 файлах nuget.config в нашей настройке)

<PLASMA>
      <add key="Username" value="your username for PAT code" />
      <add key="ClearTextPassword" value="Copied PAT code from vsts" />
</PLASMA>

Если вы просто используете пароль вместо ClearTextPassword, похоже, он не работает и "Скопирован код PAT "- это тот, который вы копируете из vsts. Не имеет значения, что источники пакетов, для которых мне нужны учетные данные, определены в файлах конфигурации №3, а учетные данные для них определены в файле конфигурации №2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...