我在将C#中的Gecko与XUL集成时遇到了一些问题。
1 /我已经下载了geckofx45.45.0.34.nupkg。有了这个,我已经在' .zip'中重新命名了它的扩展名。并解压缩此文件夹。我有很多目录。
2 /然后,我在C#(.NET Framework 4.5.2)中创建了一个Windows窗体应用程序。通过'解决方案资源管理器,我添加了第2步生成的两个库(Geckofx-Core.dll和Geckofx-Winforms.dll)
3 /然后,在工具箱中,选择“所有Windows窗体”。崩溃,我做了右键点击并选择了项目'。然后,在.NET Framework组件中'选项卡,我已经添加了Geckofx-Winforms.dll。
4 /我重启了Visual Studio 2015 5 /然后,我再次打开了我的项目并添加了一个GeckoBrowser'从工具箱到我的窗口的组件。 6 /然后,我编译了我的项目。没关系。但是,当我尝试执行我的申请时,我遇到了问题:An unhandled exception of type 'System.DllNotFoundException' occurred in Geckofx-Core.dll
Additional information: Unable to load DLL 'xul': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
所以,我已经在http://ftp.mozilla.org/pub/xulrunner/releases/latest/runtimes/xulrunner-41.0.2.en-US.win32.zip上下载了xulrunner并解压缩了该文件。结果:C:\ xulrunner \ xulrunner-41.0.2.en-US.win32 \ xulrunner \
7 /然后,在我的项目的属性中,在'参考路径'中,我添加了路径C:\ xulrunner \ xulrunner-41.0.2.en-US.win32 \ xulrunner的\
8 /我再次启动了我的应用程序,并且在屏幕上始终出现相同的错误
我还试图使用' TlbImp.exe'没有成功。
你能帮帮我吗?答案 0 :(得分:0)
我使用的方法需要将xulrunner文件夹放入app文件夹,然后使用此方法:
private void InitializeGeckoEngine()
{
try
{
if (!Directory.Exists(Paths.XulRunner))
{
MessageBox.Show($"Firefox folder not found at {Paths.XulRunner}!");
}
Xpcom.EnableProfileMonitoring = false;
Xpcom.Initialize(Paths.XulRunner);
}
catch (Exception ex)
{
MessageBox.Show($"Firefox engine not detected or was not loaded correctly. Loading path: {Paths.XulRunner}. Exception details:\n" + ex + ex.InnerException, "Error",
MessageBoxButton.OK, MessageBoxImage.Error);
}
}
关键部分当然是Xpcom.Initialize()调用。