[英]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.