如何在Visual Studio中设置DLL文件的路径?

siv*_*udh 121 dll visual-studio visual-c++

我开发了一个依赖于DLL文件的应用程序.当我调试我的应用程序时,应用程序会抱怨:

"此应用程序无法启动,因为找不到xxx.dll."

所以我必须将DLL文件复制到与我的.vcproj文件相同的目录中.

有没有办法设置项目在(最好)一些相对路径或(不是首选)某些绝对路径中查找DLL文件?

与我们如何在项目设置中设置包含和库路径的概念类似.

我的意思是当我调试我的应用程序(点击F5)时会弹出上面的错误.

siv*_*udh 178

  1. 转到项目属性(Alt + F7)
  2. 在调试下,向右看
  3. 有一个环境领域.
  4. 在那里添加你的相对路径(相对于vcproj文件夹),即..\some-framework\lib通过追加PATH=%PATH%;$(ProjectDir)\some-framework\lib或前置路径PATH=C:\some-framework\lib;%PATH%
  5. 再次点击F5(调试)它应该工作.

  • Environment字段采用NAME = VALUE分号分隔对.附加到PATH变量以使VS调试器搜索DLL的其他位置:PATH =%PATH%; $(ProjectDir)lib (14认同)
  • 发布版本也有类似的方法吗? (3认同)
  • Alt-F7 会弹出一个临时对话框,列出活动工具窗口和活动文件(Visual Studio 2017 社区)。是否无法通过老式菜单命令访问项目属性?我好像找不到啊 (2认同)

i_a*_*orf 8

可以使用SetDllDirectory()函数更改调用LoadLibrary()时加载程序使用的搜索路径.因此,您可以在加载之前调用它并添加路径到您的依赖项.

另请参见DLL搜索顺序.


kra*_*s88 8

浏览项目属性 - >参考路径

然后添加DLL的文件夹

  • 请不要在多个问题上发布相同的答案.发布一个好的答案,然后投票/标志将其他问题作为重复项结束.如果问题不重复,*定制您对问题的答案.* (3认同)
  • 这似乎在Visual Studio 2015中的C++项目中不可用.Visual Studio版本和项目类型的哪种组合支持此选项? (2认同)
  • OP 的问题是关于 C++ 的,但这个答案是针对 C# 的。 (2认同)

Mar*_*ins 6

另一种可能性是Working Directory将调试选项下的设置为具有该 DLL 的目录。

编辑:我将提到使用批处理文件启动 Visual Studio(并在批处理文件中设置 PATH 变量)。然后进行了一些搜索,发现不久前在这篇文章中提出了这个完全相同的问题。答案建议批处理文件选项以及显然可以完成工作的项目设置(我没有测试它)。


Jom*_*oma 6

在项目属性中(右键单击项目,单击属性按钮) \xe2\x96\xb6 配置属性 \xe2\x96\xb6 构建事件 \xe2\x96\xb6 构建后事件 \xe2\x96\xb6 命令行。

\n\n

编辑并向命令行添加一条指令。\n例如,将 botan.dll 从源路径复制到正在执行程序的位置。

\n\n
copy /Y "$(SolutionDir)ProjectDirs\\x64\\Botan\\lib\\botan.dll" "$(TargetDir)"\n
Run Code Online (Sandbox Code Playgroud)\n\n

项目属性

\n