2011-02-10 46 views
1

我有两个不同的模块(Xaps)中包含相同的程序集(说Common.dll)的情况。通过相同的程序集,我的意思是一个程序集具有相同的名称空间和类,但类/操作的不同实现。是否可以使用MEF加载相同装配的不同版本?

现在这两个模块将被放置在一个shell应用程序中,并且它们各自的xaps通过downloadcatalog下载。这两个xaps都会在其中包含一个Common.dll,但具有不同的实现。

我试过使用不同的CompositionContainers,每个模块都希望单独的容器可以隔离模块及其依赖关系。没有工作。 虽然虽然令人叹服,但它所做的却是使用第一个下载的Common.dll实例。这与典型的同一个程序集重写第一个程序并使用最新加载的程序集不同,这给我带来了一丝希望。

组合容器有能力释放出口。这会帮助我吗?

我认为,如果我们顺序满足导入然后释放,每个模块应该得到正确的Common.dll操作的实例。

谢谢!

回答

1

你有没有试过给你的配件strong name?这应该确保将依赖关系解析为与编译时相同的程序集。

相关问题