在C#中放置外部DLL的位置?

时间:2012-02-20 06:11:24

标签: c# dll unmanaged

如果我通过以下方式在C#中引用外部非托管DLL:

[DLLImport("MyDLL.dll",  ...

当我想从IDE运行代码时,应该放置DLL的位置?它应该在bin\Debug文件夹中吗?

3 个答案:

答案 0 :(得分:1)

您正在使用哪种编译配置?

如果要从Visual Studio Debug / Run运行应用程序,它将位于项目文件夹

如果您想通过双击运行,它应该位于

中的exe附近

bin \ Debug

bin \ Release

文件夹中。

答案 1 :(得分:1)

可由LoadLibrary函数定位的任何地方。有关详细信息,请参阅Dynamic-Link Library Search Order

  

如果启用了SafeDllSearchMode,则搜索顺序如下:

     
      
  • 加载应用程序的目录。
  •   
  • 系统目录。使用GetSystemDirectory函数获取此目录的路径。
  •   
  • 16位系统目录。没有函数可以获取此目录的路径,但会搜索它。
  •   
  • Windows目录。使用GetWindowsDirectory函数获取此目录的路径。
  •   
  • 当前目录。
  •   
  • PATH环境变量中列出的目录。请注意,这不包括App Paths注册表项指定的每个应用程序路径。计算DLL搜索路径时不使用App Paths键。
  •   

bin\Debug满足第一点,假设您只是在Debug配置中运行应用程序。

答案 2 :(得分:0)

是的,除了编译器生成的.exe文件(最终在bin\Debug\之后),应该是完美的。

相关问题