繁体   English   中英

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

[英]Jenkins - Run a NuGet package restore to generate this file

当我在 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 软件包安装程序...

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

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/en-us/nuget/reference/msbuild-targets#restore-target

更新:值得一提的是,在另一个答案中深入讨论了 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

请看一下这个解决方案,它对我有用:

“dotnet build”命令找不到 NuGet 包(它们存在)

所以你只需要调用这个构建命令来定义 jenkinsfile 中的 nuget 路径:

sh 'dotnet build --packages ./.nuget/packages'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM