c# – Gecko 2.0的GeckoFX更新?

上个月我发现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开发人员,所以我真的不知道.

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

>已经构建的GeckoFX更新,与Xulrunner 2.0兼容
>另一种允许我在C#Windows应用程序中嵌入Gecko驱动的Web浏览器的解决方案.
>关于从哪里开始更新GeckoFX的建议(通过建议我的意思是握住我的手和我说话的对我一样的建议)

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

想法?建议?

最佳答案 在没有更深层次的帮助的情况下,我花时间去挖掘并自己解决问题.诀窍是理解ComImport,这是我之前没有用过的东西.

事实证明,Mozilla改变了XPCOM公开的一些API方法的GUID.最重要的是,nsIWebBrowser的GUID从69E5DF00-7B8B-11d3-AF61-00A024FFC08C更改为33e9d001-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版本.它只需要抛光.

点赞