如何在Visual Studio中设置路径?

94

如何在Visual Studio中为特定项目设置搜索DLL文件的路径?

目前,我是在环境变量 path 中进行设置,但我希望更好地控制这个过程。


你的意思是说你正在尝试在调试器中运行某些内容,但由于DLL不在PATH中,它找不到它们? - Roger Lipscombe
你是在谈论调试器还是从Windows shell运行应用程序? - Jordan Parmer
另外,您说的是您编写的 DLL 还是您正在使用的第三方 DLL? - Jordan Parmer
我在询问如何运行在 Debug 或 Release 文件夹中创建的 exe。 - yesraaj
5个回答

119

在 MSDN 中搜索 "如何为项目设置环境变量"。(对于那些匆忙的人来说,它是 项目 > 属性 > 配置属性 > 调试中的“环境”和“合并环境”属性。)

语法为NAME=VALUE,可以使用宏(例如,$(OutDir))。

例如,要在 PATH 前面添加 C:\Windows\Temp:

PATH=C:\WINDOWS\Temp;%PATH%

类似地,要将$(TargetDir)\DLLS附加到PATH环境变量中:

PATH=%PATH%;$(TargetDir)\DLLS

7
做得很好,但你知道如何在C#中实现相同的功能吗? - parsley72
1
请确保在“=”符号周围不要添加空格。 - durasm
3
我在 Visual Studio 2017 中没有找到这个,有谁能告诉我在哪里可以找到吗? - RandomEli
我该如何在Premake中实现这个? - Ak01
当我在IDE中运行代码时,它是有效的。但是当我手动运行exe时,它无法正常工作并且找不到dll(除非我将dll放在与exe相同的目录中)。我该如何解决这个问题?另外,我该如何在premake中指定这个问题? - Ak01
显示剩余4条评论

55
您有几个选项:
  • 您可以在“工具”>“选项”>“项目和解决方案”>“VC ++目录”下的“可执行文件设置”中添加DLLs的路径(但仅适用于构建,执行或调试请参考此处)。
  • 您可以将它们添加到全局PATH环境变量中。
  • 您可以像我在这里所描述的那样使用批处理文件启动Visual Studio并在其中操纵路径。
  • 您可以将DLLs复制到可执行文件的目录中 :-)

7
使用 Visual Studio 2010,您可以进入项目的属性页面,在“配置属性 -> VC++ 目录”下找到它。 - Kevin Doyon
3
@Kevin 这是用于建造,而非运行或调试。 - user362515
在VS Community 2015中,项目的Bullet 1已被弃用。"现在它作为用户属性表可用,并默认添加到所有项目中。" - Richard Jessop
2
在 VS 2019 中,您可以在“项目属性->常规属性->VC++目录->可执行文件目录”中设置此项,您还可以添加项目属性表并在其中设置它,并将属性表添加到所有新项目中。 - metablaster
或者如果它不起作用,那么:项目属性->常规属性->调试->环境添加这个PATH=%PATH%; MY_DLL_DIR,将MY_DLL_DIR替换为DLL目录,注意分号! - metablaster

11

如果您每个配置(debug/release)只需要添加一条路径,您可以设置调试命令的工作目录:

项目 | 属性 | 选择配置 | 配置属性 | 调试 | 工作目录

对于每个项目配置都要重复此操作。


2

像你现在所做的那样设置PATH变量。如果你是从IDE运行程序,可以通过调整项目属性中的调试选项来修改环境变量。

如果DLLs的命名方式不需要为不同的配置类型使用不同的路径,你可以将路径添加到系统PATH变量或Visual Studio的全局变量中,在“工具”|“选项”中进行设置。


1

没有一个答案能够完全解决我的问题(运行的解决方案文件试图在生成后找到xcopy来复制dll文件)。

对我有用的是进入菜单“项目->属性”

然后在打开的窗口中,在左侧窗格中选择:“配置属性->VC++目录”

在右窗格下方选择“常规”,然后添加:

$(SystemRoot)\system32;$(SystemRoot);$(SystemRoot)\System32\Wbem;$(SystemRoot)\System32\WindowsPowerShell\v1.0\;$(ExecutablePath)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接