我正在使用Prism和MEF扩展,并且在导入界面时遇到项目设置问题。问题在于,接口并不与具体实现相同的组件中(因为在其他项目中还有其他具体实现以及使用相同的接口)。MEF和导入到接口?
因此,因为我只有对接口的项目的引用,并且具体的实现从未在我的主应用程序中直接引用,所以它永远不会包含在bin目录中。所以在运行时MEF组合失败了,因为它试图注入一个没有包含实现的程序集的类。
这样做的正确方法是什么?我总是可以将它复制到bin目录中,但这很糟糕......或者我可以将它复制到一个插件目录中,但也很糟糕,因为其他具体实现必须位于同一个插件目录中。
要么我完全错过了某些东西,要么这对MEF来说不是很好用,或者......?
我不希望复制东西......我希望有一种方法可以将具体的实现程序集移动到当前的项目bin目录中,方法是将其包含在解决方案中 - 我将它作为项目依赖项添加建议,并建立它只是不转储执行程序集目录的输出。应该是? – Nicros
您可以更改具体实现程序集的项目输出bin目录以指向您当前的项目bin目录。然后当它建立时,它只会输出到该目录。没有副本躺在身边。 – dthorpe
项目依赖不会影响产出位置,它只是增加了关于当食物链中较低的食物链发生变化时需要在食物链中重建的更多信息的附加信息。项目依赖性执行与添加引用相同的功能,但不会在程序集之间创建硬引用。 – dthorpe