【问题标题】:c# Winforms application with CefSharp Could not load file or assembly CefSharp.Corec#带有CefSharp的Winforms应用程序无法加载文件或程序集CefSharp.Core
【发布时间】:2020-06-29 06:29:32
【问题描述】:

在构建 Winform 应用程序时遇到问题。在构建运行时不断收到无法加载文件或程序集 CefSharp.Core 错误消息。我在调试模式下没有遇到同样的问题。

CefSharp 版本是 79.1.360。

项目的基本结构是:

  • 启动项目
  • 组件项目(自定义 Chromium 浏览器用户控件所在的位置)
  • UI 项目

平台目标是 AnyCPU。

我已经按照本网站的instructions 安装了 Cefsharp:

对于项目设置,我在 Startup 项目和 Component 项目中都将 CefSharpAnyCpuSupport 标记设置为 true。

在启动项目中勾选了首选 32 位。对于其他项目,它是只读的。

组件和启动项目的 App.config 已按照说明进行了修改。

我注意到出现在 UI 项目包文件夹中的 nuget 包。

组件项目中的所有引用都将“复制到输出”设置为“始终复制”。有 3 个参考(CefSharp、CefSharp.Core、CefSharp.Winforms)

并尝试通过执行以下操作来解决此问题:

  • 卸载并重新安装 CefSharp
  • 尝试使用cefsharp github faq解决。
  • 经过测试,UI 项目具有所有相同的应用设置和引用,其他项目也是如此。

所需的 dll 都出现在 bin 文件夹中,用于调试和发布。每台机器(在其中创建构建和测试实际程序)都在 2013/2015 年为 x64 和 x86 安装了正确的 Visual Studio c++ 可再发行组件。

有没有其他人遇到过类似的问题并解决了这个问题?我已经搜索了有关此问题的所有以前的 Stackoverflow 查询,并且没有一个具有适用于该应用程序的解决方案。不确定是否存在问题,因为我们使用 InstallShield 进行构建/发布,我没有注意到其他人在使用。

如果您需要任何进一步的信息来提供帮助,请告诉我。谢谢,

更新:构建后的 Bin 文件夹内容

Contents

【问题讨论】:

  • 您不应该将引用属性更改为始终复制,这会破坏 AnyCpu。 install shield 与该问题究竟有什么关系?您在开发机器上看到问题了吗?确保您可以将部署绑定到目标机器。
  • 我已经完成了有和没有副本的构建,始终设置为 true。这是其他门票的解决方案。两种选择都不起作用。不确定绑定部署是什么意思。基本上在创建补丁时使用 install shield 我们切换到发布模式并重新构建,它会创建一个 .msi 文件以安装在其他机器上。
  • 不要总是修改副本,它只会增加你看到的问题。 CefSharp 依赖项只会被复制到直接引用它们的项目的 bin 文件夹中,并且它适用于直接引用引用 CefSharp 的项目的项目,这是 msbuild 限制。确保 libcef.dll 以及所有 bin 和 pak 文件都存在,我无法链接到 GitHub 上列出它们的参考,因为 GitHub 似乎已关闭。
  • 我已更新问题以包含 bin 文件夹内容的屏幕截图。它包含在底部。我已经检查了 Github FAQ 以检查所需的文件是否存在。相同的文件在 Release\bin\x86 和 x64 文件夹中
  • 请回答我的其他问题。您在开发机器上看到问题了吗?确保可以将 deploy 绑定到目标机器

标签: c# winforms runtime-error cefsharp


【解决方案1】:

我将 CefSharp 所需的所有文件和文件夹从 Debug 文件夹替换到了 Release 文件夹中,并保留了发布版本的其余部分,我的问题得到了解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 2019-08-01
    • 1970-01-01
    • 2010-10-01
    相关资源
    最近更新 更多