Kal*_*evi 6 .net c# mono gecko
Gecko是Firefox的渲染引擎.使用gecko-sharp可以将其嵌入到任何Mono/GTK#程序中.有一个名为GladeSharpBrowser的示例应用程序用于执行此操作.我可以设法使用修改后的项目文件来构建它,但它正在崩溃.这可以帮助您重现问题:
我使用了SharpDevelop 3.0和一个教程来安装我的Mono 2.2.我确保它使用ProcMon调用Mono的gmcs进行编译.设置SharpDevelop后,必须修改BrowserSharp.csproj,以便与Mono一起编译.
还有一条警告信息:
发现同一依赖程序集的不同版本之间存在冲突.
这很奇怪,因为所有组件都是由Mono提供的组件.
当然,还有其他方法,如GeckoFX,但我特别感兴趣的是使用Mono以独立于平台的方式进行.
解决问题的第一步是找出崩溃的原因。根据您的指示构建 BrowserSharp 后(尽管我单独重新创建了 csproj),我运行了:
单声道——调试BrowserSharp.exe
使用 --debug 标志,mono 将打印出任何未处理的异常:
未处理的异常:System.TypeInitializationException: Gecko.WebControl 的类型初始值设定项引发异常 ---> System.DllNotFoundException:gtkembedmoz.dll 在(包装器托管到本机)Gecko.WebControl:gtk_moz_embed_get_type () ...
我在 Mono 发行版中找不到 gtkembedmoz.dll,但它似乎是单独安装的。可以在此处找到下载链接,并在此处找到一些旧的但可能有用的说明。
我下载了稳定的 GRE 包并将 gtkembedmoz.dll 复制到构建目录中。它仍然崩溃了,所以我使用depends.exe检查了依赖关系,这清楚地表明它缺少Gtk+库。安装gtk-sharp运行时并将缺少的 dll 复制到构建目录后,我设法让它使用 Microsoft .NET 运行时运行。
由于某种原因,它仍然无法使用 Mono 工作。我怀疑 Mono 搜索非托管 DLL 的方式存在一些差异,但我还没有研究过这一点。无论您是否使用 Microsoft.NET 的 Mono,您可能都不需要将这些 DLL 复制到构建目录中,只需确保它们正确安装/配置以便可以找到它们即可。
| 归档时间: |
|
| 查看次数: |
5415 次 |
| 最近记录: |