【问题标题】:Outlook Cannot load file or assembly CefSharp.Core.dllOutlook 无法加载文件或程序集 CefSharp.Core.dll
【发布时间】:2016-12-13 15:45:57
【问题描述】:

我正在尝试使用 VS2015 在 VSTO Outlook 插件中托管 CefSharp.Winform(Winform 的 Chromium Web 浏览器控件),但没有成功。

我遵循的步骤是:

  1. 创建一个 Outlook 2013 插件项目。
  2. 将解决方案设置从任何 CPU 更改为 x86
  3. 使用 nugget 安装 CefSharp.Winform。
  4. 访问Cef,如代码中的cef.initialize()。
  5. 编译项目没有错误。

但是当运行插件时,它会给出“无法加载文件或程序集 CefSharp.Core.dll 或依赖项之一..”的错误。

我已经编译了示例 winform 项目并运行它没有问题。另外,我尝试将所有依赖项从 winform 项目复制到 Outlook,但仍然存在同样的问题。

知道如何让 CefSharp.WinForm 在插件环境中工作吗?

【问题讨论】:

  • outlook 版本是否运行 64 位?
  • Windows 7 32 位,Outlook 2013 32 位
  • 尝试将目标平台设置为 AnyCPU。
  • 我将 AnyCPU 设置为默认设置,但有一个非常熟悉的问题,指向将其更改为 x86 或 x64

标签: c# outlook chromium-embedded cefsharp


【解决方案1】:

首先,我建议将目标平台设置为 AnyCPU。

其次,您可以启用 Fusion 日志来检测缺失的依赖项。 要启用 Fusion 日志,您可以使用“Assembly Binding Log Viewer” (fuslogvw) .NET 框架工具或创建注册表项以启用日志记录。

以下是需要填写的注册表项:

a) 打开 regedit 并浏览到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion”

b) 创建一个名为“EnableLog”的 DWORD 值并将其值设置为 1。

c) 创建一个名为“ForceLog”的 DWORD 值并将其值设置为 1。

d) 创建一个名为“LogFailures”的 DWORD 值并将其值设置为 1。

e) 通过名称“LogPath”创建一个字符串值并将其值设置为“c:\Fusion”

f) 创建文件夹“c:\Fusion”

重现问题后,查看在“C:\Fusion\ Default \\”文件夹下创建的每个文件。修复任何故障并重试。想了解更多关于Assembly Binding Log Viewer (fuslogvw),请参考Assembly Binding Log Viewer (Fuslogvw.exe)

【讨论】:

  • 我非常感谢如此广泛的回应。不幸的是,我不能把它留给 AnyCPU,因为它根本无法编译。另外,我怀疑我是否缺少 dll,因为我只是将具有所有依赖项的整个文件夹从 winform 项目复制到 bin 文件夹。在那篇帖子github.com/cefsharp/CefSharp/issues/1191 之后,我开始认为 CefSharp 根本不适合办公插件。
  • 您是否尝试改用 Awesomium?
  • 我已经设法让它与 CefGlue 一起使用。 Awesomium 有奇怪的许可计划。
猜你喜欢
  • 1970-01-01
  • 2017-07-10
  • 2020-08-17
相关资源
最近更新 更多