我想引用一個.net DLL(稱之爲B.DLL),這基本上是一個淨第三方包裝(稱之爲C.dll),進入C++ MFC項目。我確實爲B.dll創建了tlb文件,並且能夠在MFC應用程序中實例化並調用它。MFC託管代碼引用
此刻,所有依賴關係,B.tlb,B.dll和C.dll都需要位於MFC應用程序的文件夾 中。我想要的,並且努力做到的是將這三個文件放在MFC執行文件夾的子文件夾中。
我試圖將B.dll配置文件的「privatePath」設置爲一個子文件夾,但據我瞭解,它不是需要設置但需要設置的.dll「privatepath」,但MFC應用程序(顯然hasn 「T有什麼,據我所知,因爲它不是一個.NET應用程序)
任何幫助表示讚賞。
你肯定是在這種情況下最大化DLL地獄解決方案,從來就沒有多大意義了這一點。 CLR在與somename.exe相同的目錄中查找somename.exe.config文件。所以你可以添加一個''元素來幫助它找到C.dll文件。 B.dll只能通過使用Regasm.exe命令中的/ codebase選項來找到,您需要使用該選項來註冊程序集,或者通過向mfc應用程序提供一個帶有「」元素的清單。在用戶的機器上使用GAC來獲得COM依賴關係絕不是一個壞主意。 –
爲什麼這個場景被認爲是DLL地獄?你能解釋一下嗎?因爲我無法想象如果沒有製作.net dll包裝並將其註冊爲COM組件。 – ali