2009-12-22 27 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位版本。

相關問題