从 TFS 2015 尝试从私有订阅源恢复包时出错

Getting error from TFS 2015 trying to restore packages from a private feed

我们有一个 on-premise TFS 2015 版本。我们最近添加了对第 3 方包的引用。我在 MSBUILD 步骤之前向我们的构建管道添加了 nuget restore 构建步骤以恢复包。

这是 nuget restore 构建任务

这是 MSBUILD 步骤

我收到的错误消息是这样的。

Failed to retrieve information about 'myPrivatePackage' from remote source 'https://nuget.myPrivatePackage.com/nuget/FindPackagesById()?id='myPrivatePackage'&semVerLevel=2.0.0'.
The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

这是构建输出日志。

更新

这是 nuget 还原步骤的详细 TFS 构建日志输出。

Task "RestoreTask"
         (in) RestoreGraphItems Count '19'
         (in) RestoreDisableParallel 'False'
         (in) RestoreNoCache 'True'
         (in) RestoreIgnoreFailedSources 'False'
         (in) RestoreRecursive 'True'
         (in) RestoreForce 'False'
         (in) HideWarningsAndErrors 'False'
         (in) RestoreForceEvaluate 'False'
         Running restore with 4 concurrent jobs.
         Reading project file E:\TfsData\Build\_work\s\OscarWeb\OscarWeb.csproj.
         Reading project file E:\TfsData\Build\_work\s\OscarWeb\OscarWeb.csproj.
         Persisting no-op dg to E:\TfsData\Build\_work\s\OscarWeb\obj\OscarWeb.csproj.nuget.dgspec.json
         Restoring packages for E:\TfsData\Build\_work\s\OscarWeb\OscarWeb.csproj...
         Restoring packages for E:\TfsData\Build\_work\s\OscarWeb\OscarWeb.csproj...
         Restoring packages for .NETCoreApp,Version=v2.2...
         Restoring packages for .NETCoreApp,Version=v3.1...
           GET https://www.nuget.org/api/v2/FindPackagesById()?id='BuildBundlerMinifier'&semVerLevel=2.0.0
           GET https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.VisualStudio.Web.CodeGeneration.Tools'&semVerLevel=2.0.0
         Retrying 'FindPackagesByIdAsyncCore' for source 'https://nuget.telerik.com/nuget/FindPackagesById()?id='BuildBundlerMinifier'&semVerLevel=2.0.0'.
         The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

知道错误的原因以及如何解决吗?

根据你的截图。我注意到的一个问题是 MSBuild 任务根本不进行恢复。它不应该。让 Nuget 任务执行 NuGet 恢复。

建议转到构建任务的高级选项并取消选中 "Restore NuGet Packages",或者如果在构建过程中有其他方式调用 NuGet 恢复,请将其关闭。

如果这不能解决问题,还可以将变量 system.debug=true 设置为 Enable Verbose Debug Mode for TFS Build vNext。这可能会提供更多详细信息以进行故障排除。

我已经设法通过使用 dotnet restore 命令而不是 nuget restore 使它工作。

dotnet restore "MyProject.csproj"  --configfile "nuget.config" --verbosity detailed --packages "rootfolder\packages" --no-cache

我的第 3 方包现在正在作为构建管道的一部分正确恢复。