加载项中的 CEFSharp - "Cannot pass a GCHandle across AppDomains"

CEFSharp within AddIn - "Cannot pass a GCHandle across AppDomains"

我正在使用 SolidEdge 社区插件 为 Solid Edge 编写插件。使用此插件,应显示包含网站的 EdgeBar。

因为我不想使用标准的Windows Forms WebBrowser控件(它只使用IE渲染引擎),所以我尝试使用Chromium Embedded Framework 及其 .NET 绑定 CEFSharp (https://github.com/cefsharp/CefSharp).

创建新的 Windows Forms 应用程序时,嵌入 CEFSharp 控件工作得很好。但是当我将它嵌入到我的插件代码中时,在启动 Solid Edge 并激活插件并且程序崩溃后,我收到以下错误:

An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll

Additional information: Cannot pass a GCHandle across AppDomains.

我发现了一个处理 AppDomain 问题的类似 CEFSharp 问题 (https://github.com/cefsharp/CefSharp/issues/351),但我并没有真正找到解决我的问题的方法。

(注意:目标框架是 .NET Framework 4.5,输出类型 Class 库 。我正在使用 Visual Studio 2013年,编程语言是C#)。

这个拉取请求 (https://github.com/cefsharp/CefSharp/pull/1556) 完全解决了我的问题。因为它还没有进入 CefSharp 的母版,所以我自己构建了它并且一切正常:-)

希望这会很快在发布分支中,这样就没有人需要再处理这个问题了。

已为 Excel 工作以防万一,有人想知道 https://github.com/cefsharp/CefSharp/issues/1191#issuecomment-215503558