[問題] DLL參考另外的DLL

看板C_Sharp作者 (地板別打我!>"<)時間11年前 (2012/11/14 13:52), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
各位好,小弟有個問題需要請教一下: 情況是這樣的,現在手邊有一個主程式,採用的是plug-in的架構。 所以會使用到很多的DLL,假設叫DLL-A,DLL-B,DLL-C…etc。 主程式會根據設定檔去讀入某個路徑下的所有符合架構的DLL檔, 然後開始作業。 ============================================================= 其中有個DLL,假設就是DLL-A好了,它又會去參考到另外的DLL-1, 這個DLL-1並不是符合這個plug-in架構的函式庫。 只是因為DLL-A需要藉由這個這個DLL-1去控制儀器。 這個DLL-1可能是Native dll也可能是.Net dll。 ============================================================= 那現在的問題就是我發現如果把DLL-1跟DLL-A放在同一個目錄下, DLL-A沒辦法正常的運作,因為找不到DLL-1。 除非把DLL-1放到跟主程式的執行檔同一個目錄下才可以。 所以想請問有沒有辦法解決這種狀況, 讓DLL-1不需要跟著主程式跑,而是跟著DLL-A跑。 感謝各位~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.88.200

11/14 16:45, , 1F
可以試試ILMerge 應該可以將兩個dll併在同一支dll
11/14 16:45, 1F

11/14 21:04, , 2F
dll search path的問題,試試這個api http://goo.gl/pXXVP
11/14 21:04, 2F

11/14 21:06, , 3F
抱歉,上面是c++的api 參考 http://goo.gl/MoEty
11/14 21:06, 3F

11/15 07:14, , 4F
感謝兩位~~我今天會去試看看再來報告結果。感謝~
11/15 07:14, 4F

11/16 10:00, , 5F
ILMerge這招行不通。嘗試讀進來的時候會發生exception。
11/16 10:00, 5F

11/16 10:01, , 6F
那更改dll search path的方式,也不行,還是讀不到。
11/16 10:01, 6F

11/16 10:01, , 7F
我的主程式會去讀.net dll,然後這個.net dll會在被
11/16 10:01, 7F

11/16 10:02, , 8F
instance時,去linking到native dll。目前的解法還是把
11/16 10:02, 8F

11/16 10:02, , 9F
native dll放到跟主程式同一個目錄…
11/16 10:02, 9F
文章代碼(AID): #1Gep6U2q (C_Sharp)