與MEF用戶的常見問題相反,我並不想弄清楚爲什麼我用MEF 加載的程序集的依賴關係不是已解決。我正在解決相反的問題 - 試圖找出爲什麼加載依賴項是。爲什麼使用MEF時會成功加載程序集引用?
這種情況是,我有一個ASP.NET應用程序,它使用MEF來動態加載位於應用程序目錄之外的擴展程序集。在我用MEF探測的不同目錄中可能存在多個版本的相同擴展程序集,每個目錄都有其自己的一組依賴關係,並且這些依賴關係可能是單個程序集的多個版本(即擴展A.dll,1.0.0.0已依賴關係D.dll,1.0.0.0和擴展B.dll,2.0.0.0具有依賴關係D.dll,2.0.0.0)。
它的工作原理是,所有的擴展及其所有依賴都被正確加載。我不知道爲什麼。我在我的web.config
文件中沒有特殊設置。它在official documentation on assembly resolving它說它應該工作?它沒有說任何關於查看請求程序集所在的同一個目錄的信息。
我希望Fusion Log Viewer能告訴我運行時如何查找依賴關係,但即使它顯示了給定依賴關係的所有不同版本的綁定請求,當我點擊它查看完整日誌時,我只看到失敗的綁定(是的,I have it set to log all binding requests,不只是失敗的)。
任何人都可以指出我的正式文件的部分解釋爲什麼這種情況下工作?
他們不在GAC中。當我在'Debug' - >'Windows' - >'Modules'中看到加載的模塊時,我可以看到它們是從MEF加載的程序集駐留在相同的目錄中加載的。 – twoflower