从 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 方包现在正在作为构建管道的一部分正确恢复。
我们有一个 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 方包现在正在作为构建管道的一部分正确恢复。