使用NuGetCommand@2将包推送到nuget.org



此处的文档显示

要发布到外部NuGet提要,您必须首先创建一个指向该提要的服务连接。。。。

然后它提供这个YAML:

- task: NuGetAuthenticate@0
inputs:
nuGetServiceConnections: '<Name of the NuGet service connection>'
- task: NuGetCommand@2
inputs:
command: push
nuGetFeedType: external
versioningScheme: byEnvVar
versionEnvVar: <VersionVariableName>

失败

"错误:"的服务连接https://api.nuget.org/v3/index.json"无效。此任务不支持ApiKey服务连接。相反,在调用工具本身时使用-ApiKey(NuGet(或-api-key(dotnet(。有关更多详细信息,请参阅任务文档">

我用ApiKey创建了一个指向nuget.org的服务连接。

我不理解错误消息的这一部分:;相反,在调用工具本身时使用-ApiKey(NuGet(或-api-key(dotnet(。有关更多详细信息,请参阅任务文档">

我也看到了这个问题,它指的是一个缺陷,该缺陷已被实施。

编辑:原来上面提到的不足是转移注意力。真正的问题是nuget的局限性,这种局限性在撰写本文时仍然存在。

根据NuGet-Authenticate任务文档:

一些包源(如nuget.org(使用API密钥进行身份验证推送包时,而不是用户名/密码凭据。由于由于NuGet中的限制,此任务不能用于设置NuGet使用API密钥的服务连接

相反:

  1. 配置包含ApiKey 的秘密变量

  2. 执行程序包使用nuget-push-ApiKey$(myNuGetApiKey(或dotnet-nuget-push进行推送--api密钥$(myNuGetApiKey(,假设您将变量命名为myNuGetApiKey

相关内容

最新更新