Ошибка при типизации экземпляра плагина в подписанной сборке - PullRequest
0 голосов
/ 03 ноября 2009

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

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

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

и затем я приведу его к фактическому типу плагина:

IPlugin pluginInstance = (IPlugin)pi;

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

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

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

1 Ответ

0 голосов
/ 03 ноября 2009

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

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

...