我正在使用Prism和MEF擴展,並且在導入界面時遇到項目設置問題。問題在於,接口並不與具體實現相同的組件中(因爲在其他項目中還有其他具體實現以及使用相同的接口)。MEF和導入到接口?
因此,因爲我只有對接口的項目的引用,並且具體的實現從未在我的主應用程序中直接引用,所以它永遠不會包含在bin目錄中。所以在運行時MEF組合失敗了,因爲它試圖注入一個沒有包含實現的程序集的類。
這樣做的正確方法是什麼?我總是可以將它複製到bin目錄中,但這很糟糕......或者我可以將它複製到一個插件目錄中,但也很糟糕,因爲其他具體實現必須位於同一個插件目錄中。
要麼我完全錯過了某些東西,要麼這對MEF來說不是很好用,或者......?
我不希望複製東西......我希望有一種方法可以將具體的實現程序集移動到當前的項目bin目錄中,方法是將其包含在解決方案中 - 我將它作爲項目依賴項添加建議,並建立它只是不轉儲執行程序集目錄的輸出。應該是? – Nicros
您可以更改具體實現程序集的項目輸出bin目錄以指向您當前的項目bin目錄。然後當它建立時,它只會輸出到該目錄。沒有副本躺在身邊。 – dthorpe
項目依賴不會影響產出位置,它只是增加了關於當食物鏈中較低的食物鏈發生變化時需要在食物鏈中重建的更多信息的附加信息。項目依賴性執行與添加引用相同的功能,但不會在程序集之間創建硬引用。 – dthorpe