簡體   English   中英

在C#中將外部DLL放在哪里?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM