从TFS 2015尝试从专用源还原包时出错

从TFS 2015尝试从专用源还原包时出错,tfs,nuget,tfs-2015,nuget-package-restore,Tfs,Nuget,Tfs 2015,Nuget Package Restore,我们有一个内部部署的TFS 2015。我们最近添加了对第三方软件包的引用。在还原包的MSBUILD步骤之前,我已将nuget restore构建步骤添加到构建管道中 下面是nuget还原build任务 以下是MSBUILD步骤 我收到的错误信息是这样的 Failed to retrieve information about 'myPrivatePackage' from remote source 'https://nuget.myPrivatePackage.com/nuget/Fin

我们有一个内部部署的TFS 2015。我们最近添加了对第三方软件包的引用。在还原包的
MSBUILD
步骤之前,我已将
nuget restore
构建步骤添加到构建管道中

下面是
nuget还原
build任务

以下是
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\4\s\OscarWeb\OscarWeb.csproj.
         Reading project file E:\TfsData\Build\_work\4\s\OscarWeb\OscarWeb.csproj.
         Persisting no-op dg to E:\TfsData\Build\_work\4\s\OscarWeb\obj\OscarWeb.csproj.nuget.dgspec.json
         Restoring packages for E:\TfsData\Build\_work\4\s\OscarWeb\OscarWeb.csproj...
         Restoring packages for E:\TfsData\Build\_work\4\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 Restore,请关闭该选项


如果不是这样,也将变量
system.debug=true
设置为。这可能会为故障排除提供更多详细信息

我通过使用
dotnet restore
命令而不是
nuget restore
实现了这一点

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

我的第三方软件包现在已作为构建管道的一部分正确恢复

当我尝试这样做时,我收到以下错误消息:“未找到资产文件‘MyProject\obj\project.Assets.json’。请运行NuGet程序包还原以生成此文件。”Hi-DomBurf,根据错误消息,您的NuGet安装任务似乎根本没有还原该程序包。如果您的构建服务帐户访问该私有提要和下载文件,则可以检查Nuget安装任务的日志。如果不是,这可能是根本原因。然后,如果您的构建服务帐户对私有提要具有足够的权限/访问权限,您可以尝试缩小范围。还要检查网络是否阻止您的构建代理到私有提要url以下载包。我已在构建步骤上禁用了“还原”,但仍然收到完全相同的错误消息。我使用“dotnet restore”而不是“nuget restore”使其正常工作@DomBurf很高兴听到这个消息,您可以在这里分享您的解决方案作为答案,然后标记你的回复,这也会帮助社区中的其他人。