Jenkins - 运行 NuGet 包还原以生成此文件

17

当我在Jenkins构建服务器上构建.NET Standard 2.0库时

C:\Program Files\dotnet\sdk\2.1.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error : Assets file 'C:\Jenkins\workspace\<Project>\Sources\Library\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. [C:\Jenkins\workspace\<Project>\Sources\Library\Library.csproj]

在构建日志中我遇到了一个错误。

我搜索了关于这个错误的资料,找到了解决方案

然而,在运行时:

dotnet restore <Solution Name>

清理工作区后开始构建时,这个解决方案对我没有帮助。

因此,在 MSBuild 命令之前插入命令,但是失败了:

C:\Program Files\dotnet\sdk\2.1.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error : Package Microsoft.CodeAnalysis.CSharp.Workspaces, version 2.8.0 was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions. [C:\Jenkins\workspace\<Project>\Sources\Web\Web.csproj]

根据解决方案参考,也许升级Nuget Package Installer可以帮助我解决问题。但是我不知道如何通过命令行升级Nuget Package Installer...

2个回答

25
我遇到了同样的问题,得到了相同的错误信息:
``` error : Package was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions. [

9
更新:值得一提的是,Jenkins的问题在这个答案中有详细讨论。
@Mat提供的提示对我没有用:当前的/t:restore无法为使用package.config的项目恢复nuget包,就像我在这里所提到的那样。对我有用的是以下内容:
call "%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
nuget restore CodeBinder.sln
MSBuild Solution.sln /p:Configuration=Release /p:Platform="Any CPU" /t:build /restore
pause

它基本上需要从官方网站[1]的Windows x86命令行部分下载nuget CLI。如此处所指出的,开关/restore可以修复部分完成的Nuget还原错误,类似于MSBuild /t:restore,但它可以与/t:build一起使用。
[1] https://www.nuget.org/downloads

这个解决方案对我有效。我的解决方案有一些带有package.config的项目,只有一个带有package references。 - nnunes10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接