![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 leon ![]()
![]() |
目前我只知道只要把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陳 ![]() |
|
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
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |