使用 .NET CLI 将 NuGet 包推送到 VSTS

Push a NuGet package to VSTS with .NET CLI

我正在尝试将 NuGet 包发布到私有 VSTS 源。我想使用 .NET CLI 来实现这一点,而无需创建或修改 nuget.config 文件。

我试过:

dotnet nuget push <PackageName> --source https://XXX.pkgs.visualstudio.com/_packaging/YYY/nuget/v3/index.json --api-key <VSTS UserName>:<PersonalAccessToken>

我得到: error: Unable to load the service index for source https://XXX.pkgs.visualstudio.com/_packaging/YYY/nuget/v3/index.json. error: Response status code does not indicate success: 401 (Unauthorized).

我可以在 Fiddler 中看到 .NET CLI 仅向 https://XXX.pkgs.visualstudio.com/_packaging/YYY/nuget/v3/index.json 发送 GET 请求而没有任何授权令牌。该请求以 401 结尾。

NuGet 包凭据和 API 密钥应添加到 NuGet.config 文件中。

所以在使用 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 push命令推送NuGet包:

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