[英]Where to place external DLL in C#?
如果我通過以下方式在C#中引用了外部非托管DLL:
[DLLImport("MyDLL.dll", ...
當我想從IDE中運行代碼時,DLL應該放在哪里? 它應該在bin\\Debug
文件夾中嗎?
您正在使用哪種編譯配置?
如果要從Visual Studio調試/運行中運行應用程序,它將位於項目文件夾中
如果您想通過雙擊運行,它應該在您的exe文件附近
bin \\ Debug
要么
bin \\發布
夾。
LoadLibrary
函數可定位的任何位置。 有關更多信息,請參見動態鏈接庫搜索順序 :
如果啟用了
SafeDllSearchMode
,則搜索順序如下:
- 從中加載應用程序的目錄。
- 系統目錄。 使用
GetSystemDirectory
函數獲取此目錄的路徑。- 16位系統目錄。 沒有獲取該目錄路徑的函數,但會對其進行搜索。
- Windows目錄。 使用
GetWindowsDirectory
函數獲取此目錄的路徑。- 當前目錄。
PATH
環境變量中列出的目錄。 請注意,這不包括“應用程序路徑”注冊表項指定的每個應用程序路徑。 計算DLL搜索路徑時不使用“應用程序路徑”鍵。
bin\\Debug
滿足了第一點,假設您只在Debug
配置中運行該應用程序。
是的,除了編譯器生成的.exe
文件(如您所說的以bin\\Debug\\
結尾)應該是完美的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.