我正在尝试从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).
我尝试了其他选项,但总是收到此错误...
我可能会缺少什么?
答案 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
?