台灣最大程式設計社群網站
線上人數
731
 
會員總數:245803
討論主題:189432
歡迎您免費加入會員
討論區列表 >> C# >> Dll 參考路徑問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Dll 參考路徑問題
價值 : 100 QP  點閱數:620 回應數:2
樓主

leon
初學者
25 32
656 60
發送站內信

請問大大

目前我只知道只要把EXE 與 Dll 放在同一個目錄下EXE 會自己去參考

那如果是EXE 和DLL 沒有放在同一個目錄下
但是DLL 有固定在某處 如 C:\Dll 資料夾中

請問在EXE需怎麼設定 讓EXE 可以參考C:\Dll\*.dll
EXE 在編譯的時候 也不會自己把DLL 抓到BIN底下呢?

我不曉得這樣問大大有沒有能夠想像我的環境
需要補充再請多多指教

謝謝

搜尋相關Tags的文章: [ Dll ] ,
本篇文章發表於2019-10-07 13:40
1樓
最有價值解答

P陳
檢舉此回應
請參考這個討論串,您的想法跟這篇雷同

執行時才載入DLL
本篇文章回覆於2019-10-07 21:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

QB
檢舉此回應
一 如果開發時不需要參考 dll (你參考的是不同 dll 中的介面或基底類別, 載入的是介面實作或衍生類別), 請自行用 Assembly.Load() LaodFrom() LoadFile() 系列方法取得 Assembly, 再從 Assembly 取得 Type, 再用 Type 建立物件, 可參考上一樓

二 如果開發時要參考該 dll
1. 開發時, 專案加參考後請在參考的屬性頁面將"複製到本機"改成 false 就不會在編譯時自動複製到 bin => 但會造成 runtime 找不到 dll, 所以
2. 要處理 AppDomain.AssemblyResolve 事件, 這是在.NET 從 exe 檔所在目錄找不到參考組件時觸發, 你在這個事件中自行用 Assembly.Load() 之類的方法取得 Assembly 回傳,

進階應用 : 把 dll 集中在 web server 發行管理, exe 用 ClickOnce 部署, runtime 用 WebClient 下載檔案到 MemoryStream 再用 Assembly.Load(byte[]) 載入 dll
本篇文章回覆於2019-11-05 13:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.