Is it possible to load different versions of the same assembly using MEF?
在这种情况下,相同的程序集(比如common.dll)包含在两个不同的模块(xaps)中。对于同一个程序集,我指的是具有相同名称空间和类但具有不同类/操作实现的程序集。
现在,这两个模块都将被放置在一个shell应用程序中,并通过下载目录下载各自的xap。两个XAP都将在其中包含一个common.dll,但是实现不同。
我尝试使用不同的复合容器,每个容器对应一个模块,希望分离的容器能够隔离模块及其依赖项。不起作用。令人惊讶的是,它使用了第一个下载的common.dll实例。这与通常覆盖第一个组件并使用最新加载的组件的相同组件不同,这给了我一线希望。
复合容器具有释放导出的能力。这对我有帮助吗?
通常,我认为如果我们按顺序满足导入,然后释放,那么每个模块都应该获得正确common.dll操作的一个实例。
谢谢!
你试过给你的程序集起个好名字吗?这应该确保将依赖项解析为与编译时使用的程序集完全相同的程序集。