所以我有一个如下所示的 Azure DevOps Pipelines:
目前,使用 NuGet 4.6.2,我可以使用服务端点添加我的凭据/PAT。现在正在工作。
但是,我被 NuGet 4.6.2 困住了。如果我升级到最新的 NuGet (5.8),那么我将在 NuGet 恢复期间收到错误:
Unable to find version '<x.y.z>' of package '<my.object.package>'.
C:\Users\VssAdministrator\.nuget\packages\:
Package '<my.object.package.x.y.z>' is not found on source 'C:\Users\VssAdministrator\.nuget\packages\'.
https://api.nuget.org/v3/index.json:
Package '<my.object.package.x.y.z>' is not found on source 'https://<private.nuget.url>: Failed to fetch results from V2 feed at '
Response status code does not indicate success: 401 (Unauthorized).)
我的猜测是,我需要以某种方式将凭证传递给私有 NuGet 源(组织外部),但不确定如何传递。或者也许我在这里遗漏了一些东西?
根据错误消息,我们可以知道它正在尝试访问您的私人 nuget feed 并收到此 401(未经授权)错误。您似乎没有在
nuget.config
文件中提供认证信息。
您可以尝试在您的
nuget.config
中添加认证信息,如下:
<configuration>
<packageSources>
<add key="keyName" value="privateFeedUrl" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSourceCredentials>
<keyName>
<add key="Username" value="%USER_VARIABLE%" />
<add key="ClearTextPassword" value="%PAT%" />
</keyName>
</packageSourceCredentials>
</configuration>
您可以参考此主题了解更多详细信息。
将您的凭据添加到
Nuget.Config
应该可以,唯一的区别是 Nuget.Config
文件的格式对于较新版本的 nuget 略有更改,请参阅此 link
查看如何正确格式化 nuget.config 文件。