【问题标题】:Nuget restore fails with authenticationNuget 还原因身份验证而失败
【发布时间】:2020-10-30 02:58:37
【问题描述】:

迁移到我的 Linux 机器工作我遇到了 Nuget 的问题。我们的项目是 .net core 3.1,每个项目都有自己的 nuget.config 文件,其中包含四个包源。第一个是显而易见的,但其余的都是针对公司的。

每当我构建时,我都会收到一条错误消息,指出我未获得授权:

/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):错误:响应状态码不表示成功:401(未授权)。 [/home/lg/Documents/ALD/repo/CampaignIngestion.OmegaConnector/OmegaConnector.Functions/OmegaConnector.Functions.csproj] 0 个警告 1 个错误

但是当我将它放在浏览器中时,我可以获得 json 输出。我跑了:

mozroots --import --sync --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" 的所有包,因为它是我认为列表中的第一个。

【问题讨论】:

    标签: c# .net-core nuget-package-restore


    【解决方案1】:

    这一切都归结为将正确的 packageSourceCredentials 添加到正确的 nuget.config 文件中。我有

    1. ~/.config/NuGet/nuget.config
    2. ~/.nuget/NuGet/nuget.config
    3. 解决方案级别 nuget.config 文件

    不要为此使用#3,因为这会将用户设置为解决方案级别并且已提交。当我从项目文件夹执行“dotnet build”时,#1 似乎没有任何影响。 #2 是需要设置凭据的文件(无论如何对我来说)。

    下一个问题是我们在我们的私人仓库上设置了 PAT 代码访问权限,但非 Windows 平台不支持加密,但只是放置一个明文密码也没有好处。我需要做的是:

    1. 去VSTS用我的账号登录并生成PAT码
    2. 在#2 nuget 配置文件中创建 PackageSourceCredentials 部分
    3. 为每个需要凭据的 repo 在 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 配置文件中定义似乎并不重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-21
      • 2020-03-15
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多