VSTS Nuget 安装程序无法通过包提要进行身份验证

VSTS Nuget Installer fails to authenticate with package feed

我在 VSTS 上有一个包提要,它提供了我在同样基于 VSTS 构建的解决方案中引用的几个包。构建在包恢复阶段突然开始失败,日志表明它找不到 nuget 应该恢复的 dll。

Restoring NuGet package Basd.Diagnostics.0.7.0.

WARNING: Unable to find version '0.7.0' of package 'Basd.Diagnostics'.

public / 私有提要列在我的 nuget.config 中,它们也出现在构建日志中 "Using Feeds..." 所以这不是恢复操作无法恢复的问题找到包的实际提要。更像是它无法进行身份验证,因此无法从提要中检索包裹。

如果我查看构建定义的历史记录,就会发现从它上次工作到现在的变化是这样的:

  "build": [
    {
      "enabled": true,
      "continueOnError": false,
      "alwaysRun": false,
      "displayName": "NuGet restore MySol.sln",
      "timeoutInMinutes": 0,
      "task": {
        "id": "333b11bd-d341-40d9-afcf-b32d5ce6f23b",
        "versionSpec": "*",
        "definitionType": "task"
      },
      "inputs": {
        "solution": "Basd.Core.sln",
        "nugetConfigPath": "nuget.config",
        "restoreMode": "restore",
        "noCache": "false",
        "nuGetRestoreArgs": "",
        "verbosity": "",
        "nuGetPath": "",
        "preCredProviderNuGet": "false"
      }
    },

定义中现在有一个 "preCredProviderNuGet": "false" 字段。我已经用谷歌搜索,但我无法找到设置方式和位置,但我假设这会阻止对我的提要进行身份验证,这反过来又是恢复操作失败的原因。

那么这个设置在哪里 and/or 我如何将其重新打开或将其作为条目删除?在工作构建定义中,它没有设置为 true,它只是不存在。

它是 VSTS UI 相关字段还是我在 nuget.config 文件中设置的内容?我假设是前者,因为再次进行比较表明我的 nuget.config 在工作和非工作构建之间没有任何变化。

"preCredProviderNuGet"设置与您的问题无关。 NuGet 恢复任务有额外的高级设置,"Path to NuGet.exe" 和相应的复选框 "Path to NuGet.exe is below version 3.2"。这些设置对应于构建 json 中的 nuGetPath 和 preCredProviderNuGet 设置。在使用中,preCredProviderNuGet 仅在还设置了 nuGetPath 时才会产生影响,并且是向任务发出的信号,表明正在使用的 NuGet 版本将无法使用凭据提供程序,因为插件凭据提供程序在 v3 之前不受支持。 2

一个建议是将此任务的详细程度设置为 "Detailed",然后重新运行构建。你会发现在 NuGet Restore task\Advanced\Verbosity.

这似乎是由 VSTS 问题引起的,现在应该已修复,请尝试构建代理。

问题:Packaging issues with Visual Studio Team Services – 7/30 – Resolved