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

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

“由于找不到 xxx.dll,此应用程序未能启动。”

因此,我必须将 DLL 文件复制到与我的. vcproj 文件相同的目录中。

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

类似于我们如何在项目设置中设置 include 和库路径的概念。

我的意思是,当我 调试我的应用程序(击中 F5)上面的错误将弹出。

235858 次浏览

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

编辑: 我想提到使用一个批处理文件来启动 Visual Studio (并在批处理文件中设置 PATH 变量)。因此,做了一点搜索,看到这完全相同的问题被问不久前 在这个职位。答案建议使用批处理文件选项以及显然可以完成这项工作的项目设置(我没有测试它)。

  1. 转到项目属性(Alt + F7)
  2. 在“调试”下,向右看
  3. 有一个环境场。
  4. 添加您的相对路径(相对于 vcproj 文件夹) ,例如. . some-frameworklib 附加到路径 PATH=%PATH%;$(ProjectDir)\some-framework\lib或预先设置到路径 PATH=C:\some-framework\lib;%PATH%
  5. 再次按 F5(调试) ,它应该工作。

可以使用 SetDllDirectory ()函数修改加载程序在调用 LoadLibrary ()时使用的搜索路径。所以你可以直接调用这个函数,并在加载之前将路径添加到依赖项中。

参见 搜索顺序

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

然后添加具有 DLL 的文件夹

我知道这个问题几年前就有答案了,但是对于像我这样需要更改调试器启动应用程序的位置的人,请更改 Project Properties-> Debug 下的命令属性。

在你的项目属性(右键点击项目,点击属性按钮)配置属性建设事件、后建设事件、命令行。

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

copy /Y "$(SolutionDir)ProjectDirs\x64\Botan\lib\botan.dll" "$(TargetDir)"

Project Properties

我也有同样的问题,我的问题与路径无关。我的一个 dll-s 是用 c + + 写的,结果发现,如果你的工作室不知道如何打开一个 dll 文件,它会说它没有找到它。我所做的就是找到它没有找到的 dll,然后在我的目录中搜索那个 dll,并在一个单独的视觉工作室窗口中打开它。当尝试通过该项目的解决方案资源管理器导航,视觉工作室说,它不能显示什么是内部,我需要一些额外的扩展,以便它可以打开这些文件。毫无疑问,在安装了推荐的扩展之后(在我的例子中是 c + + 做的一些事情)

“由于找不到 xxx.dll,此应用程序未能启动。”

错误奇迹般地消失了。