Ошибка при приведении типа экземпляра плагина в подписанной сборке

Asked
Viewd84

0

Я разрабатываю приложение с плагинами.У меня есть отдельная сборка API со всеми интерфейсами API.

Основное приложение динамически загружает плагины из dll:

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

, а затем преобразовываю его к фактическому типу плагина:

 IPlugin pluginInstance = (IPlugin)pi;
 

Все это работает нормально, когда ни одна из сборок не подписана.Как только я их подписываю (основное приложение, сборка API и сборка подключаемого модуля), преобразование не выполняется, бросая:

Невозможно преобразовать объект типа '.MyPlugin' к типу '.IPlugin'.

Есть предложения?

1 ответов

0

Понятно!Проблема заключалась в том, что у меня было две копии API.dll - одна в папке приложения, а другая в подпапке Plugins.Когда я удалил Plugins \ API.dll, он начал работать нормально.

(Хотя он отлично работал с двумя копиями в неподписанном режиме)