簡體   English   中英

dotnet nuget 推送給 401,但是 nuget.exe 推送成功

[英]dotnet nuget push gives 401, but nuget.exe push succeeds

我在 Azure Artifacts 中創建了一個提要,我想向其發布 Nuget 包。 我已經使用正確的 scope 生成了個人訪問令牌。

運行此命令成功:

> nuget.exe  push -Source "myAzureFeed" -Apikey $(cat apikey) .\bin\Debug/MyPackage1.2.3.nupkg

然而,這個命令:

> dotnet nuget push .\bin\Debug\MyPackage.1.2.3.nupkg -s "myAzureFeed" -k $(cat apikey)

給我401

PS D:\NuGet\create-package\using-dotnet-cli> dotnet nuget push .\bin\Debug\MyPackage.1.2.3.nupkg -s myAzureFeed -k $(cat apikey)
Pushing MyPackage.1.2.3.nupkg to 'https://pkgs.dev.azure.com/123/abc/_packaging/xyz/v2/'...
  PUT https://pkgs.dev.azure.com/123/abc/_packaging/xyz/nuget/v2/
  Unauthorized https://pkgs.dev.azure.com/123/abc/_packaging/xyz/v2/'...
  PUT https://pkgs.dev.azure.com/123/abc/_packaging/xyz/nuget/v2/ 1323ms
error: Response status code does not indicate success: 401 (Unauthorized).

為什么nuget.exe push成功而dotnet nuget push失敗?

為什么 nuget.exe 推送成功而 dotnet nuget 推送失敗?

已經有一張GitHub 票在談論這個。 請參閱 JeremyTCD 的評論:

--api-key 適用於某些提要(例如 Nuget.org),但不適用於其他提要(例如 Azure 工件提要)。 對於后一種提要,您需要指定密碼。 不幸的是,dotnet nuget 或 nuget CLI 不接受密碼,因此您必須在 nuget.config 中設置它。 更新 nuget.config 的最簡單方法是 nuget 源添加....

dotnet nuget push 命令將 package 推送到服務器並發布。 push 命令使用系統的NuGet config file或配置文件鏈中的服務器和憑據詳細信息。 詳見dotnet nuget推送

因此,在使用dotnet nuget push命令之前,您應該在NuGet.config中添加憑據和 API 密鑰,如下命令:

nuget sources Add -Name "mysource" -Source "https://XXX.pkgs.visualstudio.com/_packaging/YYY/nuget/v3/index.json" -username name -password PAT nuget setapikey mykey -source mysource 

然后通過dotnet nuget推送命令推送NuGet package:

dotnet nuget push packagename.nupkg --source mysource --api-key mykey

您還可以參考此處指示的示例:通過運行dotnet nuget comamnds 從外部源發布包來執行此操作。

暫無
暫無

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

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