问题
I have written my application to be a class library that is launched by a win32 MFC application. Each of my views is a separate assembly that is located with the base class library that is located in a sub-directory of the hosted MFC application.
My question is, how can I get MEF to resolve the dependencies of my exported classes using the assemblies from this sub-directory instead of the root directory?
This is what I want:
ParentFolder myapp.exe SubFolder myMvvmWindow.dll myMvvmSubWindow.dll *Microsoft.Expression.Interactions.dll*
This is what I have to have now:
ParentFolder myapp.exe *Microsoft.Expression.Interactions.dll* SubFolder myMvvmWindow.dll myMvvmSubWindow.dll
回答1:
You can also do this in your app.config file:
Is it possible to set assembly probing path w/o app.config?
This is generally how I handle it.
回答2:
MEF will not handle this scenario for you, as it uses the CLR's normal assembly loading mechanisms to find dependencies.
However, you can easily work around this for a specific subdirectory by handling AppDomain.AssebmlyResolve. If you check your sub folder for the assemblies that don't resolve in your main directory, you can load them yourself and make this function properly.
来源:https://stackoverflow.com/questions/7533233/how-can-mef-resolve-dependencies-of-assemblies-that-dont-live-at-the-root-of-th