簡體   English   中英

Nuget 還原失敗並進行身份驗證

[英]Nuget restore fails with authentication

遷移到我的 Linux 機器工作我遇到了 Nuget 的問題。 我們的項目是 .net 核心 3.1,每個項目都有自己的 nuget.config 文件,其中包含四個 package 源。 第一個是顯而易見的,但 rest 是該公司專用的。

每當我構建時,我都會收到一條錯誤消息,指出我沒有被授權:

/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 output 。 我跑了:

mozroots --import --sync --url https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/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" 的所有包,因為它是我認為列表中的第一個。

這一切都歸結為將正確的 packageSourceCredentials 添加到正確的 nuget.config 文件中。 我有

  1. ~/.config/NuGet/nuget.config
  2. ~/.nuget/NuGet/nuget.config
  3. 解決方案級別 nuget.config 文件

不要為此使用#3,因為這會將用戶設置在解決方案級別並且已提交。 當我從項目文件夾執行“dotnet build”時,#1 似乎沒有任何影響。 #2 是需要設置憑據的文件(無論如何對我來說)。

下一個問題是我們在我們的私人倉庫上設置了 PAT 代碼訪問權限,但非 Windows 平台不支持加密,只是放置一個明文密碼也沒有好處。 我需要做的是:

  1. Go 到 VSTS 用我的賬號登錄並生成 PAT 碼
  2. 在#2 nuget 配置文件中創建 PackageSourceCredentials 部分
  3. 對於需要憑據的每個 repo,在 PackageSourceCredentials 部分中為其名稱創建一個部分,即

<add key="PLASMA" value="" protocolVersion="3" />

(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 復制出來的代碼。 我需要憑據的 package 源在#3 配置文件中定義,它們的憑據在#2 配置文件中定義似乎並不重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM