каталог управляемой инфраструктуры расширяемости не может видеть части DLL - PullRequest
0 голосов
/ 09 октября 2019

В этом проекте на C #, над которым я работаю, он использует MEF для загрузки подключаемых библиотек DLL в основное приложение. Мой собственный проект плагина имеет много поддерживающих проектов, на которые он ссылается, я настроил эти проекты поддержки на copy-local = true, чтобы они все были скомпилированы в одну папку, которую менеджер приложений основного приложения может «увидеть» и попытаться загрузить DLL внутрикаждая папка. Центральный код загрузки приведен ниже:

if (!DirectoryCatalogExists(catalog, dir)) TryLoadingCatalog(catalog, new DirectoryCatalog(dir));

В моем случае у 'dir' есть правильный путь, например: C:\dev\Source\bin\Debug\Plugins\. DirectoryCatalog должен найти и загрузить все библиотеки DLL в этой папке. Он действительно находит все файлы DLL, но ему не удалось загрузить основную библиотеку DLL (которая ссылается на другие библиотеки поддержки DLL), поэтому впоследствии тест Parts.Any() всегда будет неудачным, поэтому в общий каталог ничего не добавляется. Почему он загружает некоторые сборки, а не другие? Есть ли способ напрямую загрузить эти библиотеки DLL и создать ComposablePartCatalog объект, чьи Parts не пусты?

...