将Nuget包推送到Azure DevOps

时间:2019-02-10 22:45:49

标签: azure-devops nuget dotnet-cli

我正在尝试从MAC将Nuget程序包推送到Azure DevOps。

我创建了一个Azure DevOps人工产物提要,并尝试使用以下方法推送软件包:

dotnet nuget push 
  --source "https://pkgs.dev.azure.com/MyProject/_packaging/MyFeed/nuget/v2" 
  --api-key "MyToken" 
  "MyPackage.nupkg"

我生成的令牌如下:

https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops

生成令牌时,我向用户提供了完全访问权限。

我一直遇到错误:

error: Unable to load the service index for source https://pkgs.dev.azure.com/mdmoura/_packaging/Moleky/nuget/v3/index.json.
error: Response status code does not indicate success: 401 (Unauthorized).

我尝试了其他选项,但总是收到此错误...

我可能会缺少什么?

3 个答案:

答案 0 :(得分:0)

未在Feed中对管道进行身份验证。您需要先添加身份验证任务,然后才能尝试推送nuget软件包。 尝试以下

- task: NuGetAuthenticate@0
  displayName: 'Authenticate in NuGet feed'
- script: dotnet nuget push $(PATH_PIPELINE_ARTIFACT_NAME)/**/*.nupkg --source MyProject --api-key MyToken
  displayName: 'Uploads nuGet packages'

通知NuGetAuthenticate@0任务需要预先进行身份验证。身份验证不需要任何其他操作,因为您似乎正在使用Azure DevOps工件。否则,您将不得不创建连接(更多信息https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/package/nuget-authenticate?view=azure-devops

按照命令dotnet nuget push的注意,我写了一个带有正则表达式**/*.nupkg的完整路径。使用此PATH_PIPELINE_ARTIFACT_NAME变量或将其替换为要升级的nuGet软件包当前所在的路径。正则表达式将允许您在该文件夹中发布所有nuGet软件包。

答案 1 :(得分:0)

您可以尝试这样做吗?

dotnet nuget add source "https://pkgs.dev.azure.com/MyProject/_packaging/MyFeed/nuget/v2" --name MyFeed --username "YourUserName" --password "YourPatToken"

然后

dotnet nuget push "MyPackage.nupkg" --source MyFeed --api-key az

这就是这里描述的nuget方式的等效项:https://docs.microsoft.com/en-us/azure/devops/artifacts/nuget/publish?view=azure-devops#create-and-publish-your-own-nuget-package

答案 2 :(得分:-2)

为什么要运行dotnet nuget push而不是nuget push

请注意:根据文档:https://docs.microsoft.com/en-us/azure/devops/artifacts/get-started-nuget?view=azure-devops&tabs=new-nav

,此处的API_KEY可以是任何非空值