You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins使用devenv.com构建时PackageReference程序集引用缺失问题

解决方案

  • 执行MSBuild还原时明确指定解决方案路径,MSBuild会自动扫描解决方案内所有项目(包括测试项目)的包依赖完成还原,修改后的命令如下:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe" "%WORKSPACE%\solution.sln" /t:Restore /p:RestoreConfigFile="C:\NuGet\NuGet.config" /p:Configuration=ci

你之前的命令没有传入解决方案路径,MSBuild仅会还原当前工作目录下的首个项目依赖,自然不会处理测试项目的包。

  • 如果执行上述命令后测试项目的包仍未还原,打开Visual Studio的「配置管理器」,找到你使用的ci配置,确认测试项目对应的「生成」复选框已勾选,保存解决方案后再提交到代码仓库即可。
  • 要是你还有未迁移到PackageReference、仍使用packages.config的项目,单独给这类项目执行nuget还原即可:
C:\NuGet\nuget.exe restore "%WORKSPACE%\testproject.test\testproject.test.csproj" -ConfigFile C:\NuGet\NuGet.config

相关问题补充

  • 不需要通过devenv.com执行包还原,MSBuild、nuget.exe的还原结果完全可以被devenv构建识别。你本地手动执行命令可以构建成功,大概率是本地环境已经缓存了对应的依赖包,干净的CI环境没有缓存才会触发引用缺失错误。
  • PackageReference的核心优势之一就是全局统一缓存包文件,不需要每个解决方案单独维护packages目录,依赖管理效率更高,冲突概率更低。

内容的提问来源于stack exchange,提问作者M. Jud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 17:36:01