4

当我上个月找到 GeckoFX 时,我真的很兴奋。我的雇主想在我们的桌面应用程序中分发一个嵌入式浏览器(以平滑从基于桌面的应用程序到基于 Web 的应用程序的过渡),并且能够使用 Gecko 而不是 IE 是一个奇迹!

我可以找到最新版本的 GeckoFX 使用 Gecko 引擎 (Xulrunner) 的 1.9.1 和 1.9.2 版本。这工作得很好,但它错过了本周 Firefox 4 (Gecko 2.0) 附带的许多好东西。

我已经有了 Xulrunner 2.0 的发行版,但 GeckoFX 不能开箱即用。一些 XPCOM API 发生了变化,我敢肯定还有很多其他小的不兼容问题。我想说这应该很容易解决,但我不是 C++ 开发人员,所以我真的不知道。

我现在正在寻找的是以下之一,按优先顺序排列:

  1. 与 Xulrunner 2.0 兼容的 GeckoFX 已构建更新
  2. 另一个允许我在 C# Windows 应用程序中嵌入 Gecko 驱动的 Web 浏览器的解决方案。
  3. 关于自己从哪里开始更新 GeckoFX 的建议(建议我的意思是握住我的手和跟我说话,我是 6 的建议)

只是深入研究代码并尝试对所有错误进行排序并没有帮助。InvalidCastException我在尝试创建一个实例时不断收到一个nsIWebBrowser(不,我不能得到比这更描述性的,因为这就是所有错误消息和堆栈跟踪显示!)。由于似乎还没有人启动嵌入式 Firefox 4,所以这一直是令人头疼和毫无意义的谷歌搜索。

想法?建议?

4

2 回答 2

2

在没有更深层次的帮助的情况下,我花时间自己去挖掘和解决问题。诀窍是理解ComImport,这是我以前没有使用过的东西。

事实证明,Mozilla 更改了 XPCOM 公开的一些 API 方法的 GUID。最重要的是,GUIDnsIWebBrowser已从 更改69E5DF00-7B8B-11d3-AF61-00A024FFC08C33e9d001-caab-4ba9-8961-54902f197202

进行这一更改nsInterfaces.cs实际上已经修复了很多。

逐行检查并协调构建错误(尽管有隐晦的错误消息)使我能够完成系统并创建一个确实运行 XULRunner 2.0 的构建。

不幸的是,能够构建和运行 Gecko 2 和公开整个 API 是两件截然不同的事情。我在 Google Code 上创建了一个项目,用于为 Gecko 2: Leapin' Lizard完全重写 GeckoFX 。它本质上是原始 Skybound.Gecko 代码的一个分支,并在相同的开源许可下分发。

所以我现在有一个与 XULRunner 2.0 兼容的 GeckoFX 版本。它只需要抛光。

于 2011-03-31T18:13:06.430 回答
0

目前没有包装 XulRunner 4.0 的预编译库。我是 MozNET 的作者,这是一个实际上正在积极开发的 Mozilla 包装器构建。我确实有一个使用 XulRunner 2.0 的半工作版本,但是它还没有完成。由于 XulRunner 2.0 中所做的更改,为了使 MozNET 与新版本完全兼容,仍有大量更改。目前我拥有完整的浏览支持、几乎完整的 DOM 对象访问和完整的拼写检查支持。该构建正在进行中,因为我仍在维护和支持 MozNET 1.9.2.17。

于 2011-04-13T01:32:26.560 回答