2010-03-05 25 views
3

我有一個C#.Net 2.0CF應用程序,我想在運行時加載.NET的「插件」DLL。Late Loading a .net plugin dll

據我所知,我應該能夠使用System.Reflection.Assembly.LoadFrom()將DLL加載到程序集。然後使用Assembly.GetTypes()獲取插件中的類型列表,以將它們與我期望的接口相匹配。

問題是,當我打電話給GetTypes()時,我得到一個System.TypeLoadException()。基於異常消息,我認爲這是因爲這個特定的插件引用了一些其他程序集,該程序一無所知。但是,這是插件的一部分!我不希望我的應用程序必須知道關於這些其他程序集的任何信息。

我該如何加載這個插件DLL而沒有我的應用程序引用插件中使用的每個程序集?

感謝, PaulH

+0

您不必在插件中使用您的應用程序*參考*每個程序集,但您可能需要將它加載它 – Rob 2010-03-05 22:21:17

回答

2

的情況是不是你的應用程序應該引用一個插件使用的每個組件。插件引用另一個DLL,而不是你的應用程序,插件應該「安裝」(也許只是放在一個目錄中)以及它需要的所有東西。這是不可避免的。

+0

就是這樣。缺少一個插件DLL的依賴關係。 謝謝! – PaulH 2010-03-05 22:40:33