C# Nuget还原因身份验证而失败

C# Nuget还原因身份验证而失败,c#,.net-core,nuget-package-restore,C#,.net Core,Nuget Package Restore,迁移到我的Linux机器上工作时,我遇到了Nuget的问题。我们的项目是.net core 3.1,每个项目都有自己的nuget.config文件,其中包含四个包源。第一个是显而易见的,但其余的都是针对公司的 每当我构建时,我都会收到一个错误,说明我未经授权: /usr/share/dotnet/sdk/3.1.301/NuGet.targets(128,5):错误:无法加载源的服务索引。[/home/lg/Documents/ALD/repo/activityIngestion.OmegaCo

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

每当我构建时,我都会收到一个错误,说明我未经授权:

/usr/share/dotnet/sdk/3.1.301/NuGet.targets(128,5):错误:无法加载源的服务索引。[/home/lg/Documents/ALD/repo/activityIngestion.OmegaConnector/OmegaConnector.Functions/OmegaConnector.Functions.csproj] /usr/share/dotnet/sdk/3.1.301/NuGet.targets(128,5):错误:响应状态代码不表示成功:401(未授权)。[/home/lg/Documents/ALD/repo/activityIngestion.OmegaConnector/OmegaConnector.Functions/OmegaConnector.Functions.csproj] 0个警告 1个错误

但是当我把json输出放在浏览器中时,我可以得到它。我参加过:

mozroots--导入--同步--url

因为我发现它的线程似乎有一个类似的问题,但对我来说没有运气

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“我认为它是列表中的第一个,所以下载了。

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

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

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

  • 转到VSTS使用我的帐户登录并生成PAT代码
  • 在#2 nuget配置文件中创建PackageSourceCredentials节
  • 对于每个需要凭证的回购,在PackageSourceCredentials节中为其名称创建一个节 i、 e.为了
  • (PLASMA在我们设置的#3 nuget.config文件中定义)

    
    
    如果您只是使用密码而不是ClearTextPassword,它似乎不起作用,“复制的PAT代码”就是您从vsts中复制出来的代码。我需要凭据的包源在#3配置文件中定义,它们的凭据在#2配置文件中定义,这似乎并不重要

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