2009-11-02 34 views
0

我正在開發帶插件的應用程序。我有一個單獨的API程序集和所有的API接口。在簽名程序集中強制插件實例時出錯

主要應用動態加載的插件dll的:

object pi = Assembly.LoadFrom(plugin.AssemblyPath) 
       .CreateInstance(plugin.ClassName); 

然後我再把它轉到實際的插件類型:

IPlugin pluginInstance = (IPlugin)pi; 

所有這一切工作正常,當不組件被簽名。只要我簽署他們(主應用程序,API assemply和插件assemly)它無法投射,投擲:

無法投射'.MyPlugin'類型的對象鍵入'.IPlugin'。

有什麼建議嗎?

回答

0

Got it!問題是我在API.dll上有兩個副本 - 一個在應用程序文件夾中,另一個在Plugins子文件夾中。當我刪除了Plugins \ API.dll時,它已經開始正常工作。

(雖然它在無符號模式下可以很好地工作兩個副本)

相關問題