Question

Je développe une application avec des plugins. J'ai un ensemble d'API séparée avec toutes les interfaces API.

La principale application charge dynamiquement les plug-ins de DLL:

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

et puis je suis coulée au type de plug-in réelle:

IPlugin pluginInstance = (IPlugin)pi;

Tout cela fonctionne très bien quand aucune des assemblées sont signés. Dès que je les signe (application principale, API assemply et le plug-in assemply), il ne parvient pas à jeter, jeter:

  

Impossible de coulée objet de type '.MyPlugin' de type' .IPlugin'.

Toutes les suggestions?

Était-ce utile?

La solution

Je l'ai! La question était que j'avais deux exemplaires sur API.dll - un dans le dossier de l'application, et un autre dans le sous-dossier Plugins. Quand je l'ai supprimé Plugins \ API.dll il a commencé à travailler très bien.

(Il a travaillé très bien avec deux copies en mode non signé mais)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top