2010-01-22 781 views
98

我开发了一个依赖于DLL文件的应用程序。当我调试我的应用程序中,applicationwould抱怨说:如何在Visual Studio中设置DLL文件的路径?

“此应用程序未能启动,因为xxx.dll没有被发现。”

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

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

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

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

回答

140
  1. 转到项目属性(Alt + F7)
  2. 在调试时,向右边看
  3. 有一个环境领域。
  4. 那里(相对于vcproj文件夹)添加您的相对路径即.. \一些框架\ lib中通过附加PATH=%PATH%;$(ProjectDir)\some-framework\lib或再次前面加上的路径PATH=C:\some-framework\lib;%PATH%
  5. 按F5键(调试),它应该工作。
+13

环境字段采用NAME = VALUE分号分隔的对。附加到PATH变量以使VS调试器搜索DLL的其他位置:PATH =%PATH%; $(ProjectDir)lib – 2012-12-08 04:06:53

+0

您的解决方案适用于我。谢谢 – esmitt 2017-10-04 10:07:34

+0

有没有类似的发布版本呢? – Narek 2017-11-22 09:50:38

2

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

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

+0

如果我依赖2个dll,每个人都在自己的目录中? (我简化了我的问题) – sivabudh 2010-01-22 18:46:45

+0

我不认为有可能使这个解决方案适用于多个目录。 – 2010-01-22 19:27:24

7

调用LoadLibrary()时,加载程序使用的搜索路径可以使用SetDllDirectory()函数进行更改。所以你可以调用它并在加载它之前添加到你的依赖的路径。请参阅DLL Search Order

6

去通过项目属性 - >引用路径

然后用文件夹添加DLL的

+2

请不要在多个问题上发布相同的答案。发布一个很好的答案,然后投票/标记以重复关闭其他问题。如果问题不是重复的,*定制你对这个问题的答案。* – durron597 2015-09-03 03:00:00

+1

它不起作用 – 2017-10-05 12:20:08

+0

迄今为止最好的答案:) – Rachmaninoff 2017-10-23 20:17:33

0

我知道这个问题已经在多年前回答,但对于那些像我这样谁需要改变在调试器启动应用程序,请更改“项目属性” - >“调试”下的命令属性。

相关问题