Erreur lors de typecasting une instance plugin dans un ensemble signé
-
12-09-2019 - |
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?
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)