2009-11-02 66 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时,它已经开始正常工作。

(虽然它在无符号模式下可以很好地工作两个副本)

相关问题