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