Как MEF может разрешить зависимости сборок, которые не находятся в корне приложения? - PullRequest
2 голосов
/ 23 сентября 2011

Я написал свое приложение как библиотеку классов, которая запускается приложением win32 MFC.Каждое из моих представлений - это отдельная сборка, расположенная с библиотекой базовых классов, которая находится в подкаталоге размещенного приложения MFC.

Мой вопрос заключается в том, как получить MEF для разрешения зависимостеймои экспортированные классы, использующие сборки из этого подкаталога вместо корневого каталога?

Это то, что я хочу:

ParentFolder
 myapp.exe
 SubFolder
     myMvvmWindow.dll
     myMvvmSubWindow.dll
     *Microsoft.Expression.Interactions.dll*

Вот что мне нужно сейчас:

  ParentFolder
     myapp.exe
     *Microsoft.Expression.Interactions.dll*
     SubFolder
         myMvvmWindow.dll
         myMvvmSubWindow.dll

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Вы также можете сделать это в файле app.config:

Можно ли задать путь проверки сборки без app.config?

Обычно я так поступаю.

0 голосов
/ 23 сентября 2011

MEF не будет обрабатывать этот сценарий для вас, поскольку он использует обычные механизмы загрузки сборок CLR для поиска зависимостей.

Однако вы можете легко обойти это для определенного подкаталога, обработав AppDomain.AssebmlyResolve . Если вы проверите в своей подпапке сборки, которые не разрешаются в вашем основном каталоге, вы можете загрузить их самостоятельно и правильно выполнить эту функцию.

...