2009-12-22 29 views
1

我正在研究.NET WinForms应用程序,它在运行时从单独的程序集中加载表单和其他UI元素。这很好。如何在带有动态加载程序集的.NET WinForms应用程序中使用WebKit.NET或GeckoFX?

但是,我正在加载的程序集中有一个使用GeckoFX或WebKit.NET来嵌入Web浏览器控件。当我尝试用Assembly.CreateInstance()加载该程序集时,我收到一个异常,说它无法找到正在尝试加载的程序集,即使它在那里。一切都很好,一个单独的测试应用程序与正常的构建/链接可以很好地与这些控件配合使用。

这里的任何想法?

感谢,

马特

回答

0

确保所有的相关性是可定位,以及组装你要加载。

如果你这样做,你应该可以使用任何一个组件就好。

+0

谢谢里德。当你说“可定位”时,这到底意味着什么?与其他二进制文件位置相同?对于GeckoFX和WebKit.NET,有许多二进制文件,因为它们依赖于这些浏览器的运行时引擎。 –

+0

Windows有一个明确的方式来搜索DLL。它需要找到程序集(GeckoFX.dll或WebKit.NET.dll)以及所有运行时二进制文件。请参阅:http://msdn.microsoft.com/en-us/library/7d83bc18(VS.80).aspx –

2

您可以尝试使用Fusion Log Viewer来查找哪个依赖关系未加载。这假定依赖项是一个未被加载的.NET程序集。如果它是一个通过P/Invoke缺少的程序集,它将变得更加复杂。

0

这可以在2个条件

  1. 对于geckofx发生,你没有的XULRunner在你的系统,你需要在你的代码 加入这行来加载XULRunner的 - Skybound.Gecko.Xpcom.Initialize( @“通往xulrunner的路径”);

  2. 如果你在一台64位的机器上,那么你会得到一个异常,你需要建立它的32位版本。

相关问题