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

ibo*_*con 9 msbuild jenkins nuget-package-restore

当我在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]
Run Code Online (Sandbox Code Playgroud)

我在构建日志中遇到了以上错误。

我搜索了错误并找到了解决方案

然而,

dotnet resotre <Solution Name>
Run Code Online (Sandbox Code Playgroud)

在开始构建之前清理工作区时,该解决方案无法帮助我。

因此,我在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]
Run Code Online (Sandbox Code Playgroud)

根据解决方案参考,也许升级Nuget Package Installer可以帮助我。但是我不知道如何通过命令行升级Nuget软件包安装程序 ...

cez*_*tko 7

更新:值得一提的是,在另一个答案中深入讨论了 Jenkins 中的问题

@Mat 的提示对我不起作用:正如我在此处提到的,/t:restore目前无法使用 恢复项目的 nuget 包。对我有用的是以下内容:package.config

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
Run Code Online (Sandbox Code Playgroud)

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

[1] https://www.nuget.org/downloads


Mat*_*Mat 6

我遇到了同样的问题,得到了同样的错误:

error : Package <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. [<path>]

我能够使用MSBuild /t:restore代替来解决它dotnet restore

请参阅:https : //docs.microsoft.com/zh-cn/nuget/reference/msbuild-targets#restore-target