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

升级CefSharp至111.2.20后MSI安装项目遇0x8007000B构建错误求助

解决CefSharp升级后MSI打包依赖缺失及0x8007000B错误

一、精准查看错误日志

  • 开启MSBuild详细日志:打开Visual Studio,依次进入工具→选项→项目和解决方案→生成并运行,将MSBuild项目生成输出详细程度设置为「详细」或「诊断」。重新执行MSI打包操作,从输出窗口中筛选error或warning关键字,定位具体缺失的依赖项名称及路径。
  • 检查SetupActions项目的输出日志:右键点击Test.Installer.SetupActions项目,选择「生成」,查看其输出日志,确认是否有依赖项未被正确复制到输出目录。

二、针对性修复步骤

  1. 统一项目平台目标
    CefSharp 111.x版本不再支持Any CPU平台,需确保主WinForms项目、SetupActions项目及MSI安装项目的平台目标完全一致(均设为x86或x64)。操作:右键项目→属性→生成→平台目标,选择对应架构。

  2. 修正SetupActions项目的依赖引用

    • 确认SetupActions项目已正确引用CefSharp.Common.NETCore和CefSharp.WinForms.NETCore 111.2.20版本。
    • 对于这两个引用,右键→属性,将复制本地设置为True,确保依赖dll被复制到SetupActions的输出目录。
  3. 确保MSI项目包含所有必要的CefSharp依赖

    • 主项目输出的CefSharp核心dll(如CefSharp.Core.dll、CefSharp.WinForms.dll)需被添加到MSI项目的「应用程序文件夹」中。
    • CefSharp 111.x依赖的CEF原生运行时文件(如libcef.dll、icudtl.dat、chrome_elf.dll等),会通过NuGet自动复制到主项目的输出目录,需将这些文件手动添加到MSI项目的文件列表中,确保安装时能部署到目标路径。
  4. 调整自定义动作的执行上下文

    • 如果SetupActions是安装自定义动作,进入MSI项目的「自定义动作」节点,选中对应的动作项,将工作目录设置为[TARGETDIR](应用程序安装目录),确保自定义动作执行时能找到依赖的dll。
    • 检查自定义动作的平台属性,确保与项目架构匹配(如x64项目的自定义动作需设为x64)。
  5. 验证依赖架构兼容性
    错误0x8007000B本质是「格式不正确」,通常源于32位/64位组件混合运行。可通过以下方式验证:

    • 使用dumpbin /headers命令(需安装VS的C++工具集)查看缺失dll的架构,确认与项目平台一致。
    • 确保所有依赖项的目标框架与SetupActions项目的.NET Core 3.1匹配,无跨框架引用。

内容的提问来源于stack exchange,提问作者damian17

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:42:22