将程序包推送到内部Azure Dev Ops程序包供稿时出现身份验证问题

时间:2019-07-10 12:03:57

标签: azure-devops nuget azure-pipelines dotnet-cli azure-artifacts

我在弄清楚如何对包进行身份验证并将其推送到私有Azure Dev Ops-Artifacts feed时遇到麻烦。我很想知道this是我要寻找的东西,但不太确定在使用dotnet nuget push时如何正确使用它。该文档仅向您显示在使用软件包时如何使用它,而在将软件包发布到私有nuget提要(如Artifacts)时却没有。

在将DotNetCoreCLI@V2任务和环境变量system.debug设置为true时(以增加日志详细程度)使用时,我发现在幕后有一个URL被作为提要URL检索。

在构建任务中看起来像这样

sr/bin/dotnet nuget push /home/vsts/work/1/s/src/{ProjectName}/bin/Release/{MyPackage}.0.4.5-alpha-1911.nupkg --source https://pkgs.dev.azure.com/{MyOrganisation}/_packaging/7064a25a-fa3a-7dc1-a8cb-9d05a01100ef/nuget/v3/index.json --api-key VSTS

源URL似乎是在每个版本上生成的,都是唯一的,我认为这与我的问题有关。当转到Azure Dev Ops本身上的订阅源选项时,订阅源本身会将订阅源URL列为https://pkgs.dev.azure.com/{MyOrganisation}/_packaging/{MyProject}/nuget/v3/index.json

因此,不幸的是没有任何工作。我当时想,如果我可以使用私有访问令牌(PAT)对内部nuget提要进行身份验证,那就太好了。

我正在解决这个问题,因为我需要使它同时在azure dev ops之外工作,因此在我的用例中,使用azure管道任务并不合适。

1 个答案:

答案 0 :(得分:0)

我已经能够使用NuGet.exe(nuget push而不是dotnet nuget push)成功地做到这一点。

在“提要”页面上,单击“连接到提要”按钮。那里有一个链接到“下载NuGet +凭据提供程序”。在zip文件中,将有NuGet.exe和CredentialProvider.VSS.exe的副本。将它们解压缩到同一文件夹。

当您从该目录运行nuget push时(从显示“推送包”的同一页面复制命令语法,替换为.nupkg文件名),CredentialProvider会提示您输入凭据并处理其余内容为了你。 CredentialProvider.VSS.exe必须与NuGet.exe位于同一目录