Visual studio的路径宏

本文详细介绍了MSBuild中常用的宏变量,如项目、解决方案路径及名称等,并解释了这些宏如何帮助管理和构建项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$(RemoteMachine)

设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。

$(References)

以分号分隔的引用列表被添加到项目中。

$(ConfigurationName)

当前项目配置的名称(例如:“Debug”)。

$(PlatformName)

当前项目平台的名称(例如:“win32”)

$(Inherit)

指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。

$(NoInherit)

使任何将被继承的属性不被继承。若还要避免同级级别的计算,请使用 $(StopEvaluating)。使用 $(NoInherit)会导致对于同一属性忽略任何出现的 $(Inherit)。 

$(StopEvaluating)

立即停止计算链中宏的计算。出现在 $(StopEvaluating) 之后的任何值将不出现在宏的计算值中。如果$(StopEvaluating)在 $(Inherit) 之前,计算链中当前位置的继承值将不会连接到宏值。$(StopEvaluating)是 $(NoInherit) 的功能超集。

$(ParentName)

包含此项目项的项的名称。该名称将是父文件夹名称或项目名称。

$(RootNameSpace)

包含应用程序的命名空间(如果有)。

$(IntDir)

中间文件指定的相对于项目目录的目录路径。它解析为“中间目录”属性的值。 

$(OutDir)

输出文件目录的路径,相对于项目目录。这解析为“输出目录”属性的值。

$(DevEnvDir)

VisualStudio .NET 的安装目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。 

$(InputDir)

输入文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。如果该项目是输入,则此宏等效于 $(ProjectDir)。 

$(InputPath)

输入文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectPath)。 

$(InputName)

输入文件的基本名称。如果该项目是输入,则此宏等效于 $(ProjectName)。 

$(InputFileName)

输入文件的文件名(定义为基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectFileName)。 

$(InputExt)

输入文件的文件扩展名。它在文件扩展名的前面包括“.”。如果该项目是输入,则此宏等效于 $(ProjectExt)。 

$(ProjectDir)

项目的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(ProjectPath)

项目的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(ProjectName)

项目的基本名称。

$(ProjectFileName)

项目的文件名(定义为基本名称 + 文件扩展名)。

$(ProjectExt)

项目的文件扩展名。它在文件扩展名的前面包括“.”。

$(SolutionDir)

解决方案的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。 

$(SolutionPath)

解决方案的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(SolutionName)

解决方案的基本名称。 

$(SolutionFileName)

解决方案的文件名(定义为基本名称 + 文件扩展名)。 

$(SolutionExt)

解决方案的文件扩展名。它在文件扩展名的前面包括“.”。 

$(TargetDir)

生成的主输出文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。 

$(TargetPath)

生成的主输出文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。 

$(TargetName)

生成的主输出文件的基本名称。 

$(TargetFileName)

生成的主输出文件的文件名(定义为基本名称 + 文件扩展名)。 

$(TargetExt)

生成的主输出文件的文件扩展名。它在文件扩展名的前面包括“.”。 

$(VSInstallDir)

安装 VisualStudio .NET 的目录。 

$(VCInstallDir)

安装 VisualC++ .NET 的目录。 

$(FrameworkDir)

安装 .NETFramework 的目录。 

$(FrameworkVersion)

VisualStudio 使用的 .NET Framework 版本。与 $(FrameworkDir) 相结合,就是 Visual Studio 使用的 .NET Framework 版本的完整路径。 

$(FrameworkSDKDir)

安装 .NETFramework SDK 的目录。.NET Framework SDK 可作为 Visual Studio .NET 的一部分安装,也可单独安装。 

$(WebDeployPath)

从 Web 部署根到项目输出所属于的位置的相对路径。返回与 RelativePath 相同的值。 

$(WebDeployRoot)

指向<localhost> 位置的绝对路径。例如,c:\inetpub\wwwroot。 

$(SafeParentName)

有效名称格式的直接父级的名称。例如,窗体是 .resx 文件的父级。 

$(SafeInputName)

作为有效类名的文件的名称,但不包括文件扩展名。 

$(SafeRootNamespace)

项目向导将在其中添加代码的命名空间名称。此命名空间名称将只包含在有效的 C++ 标识符中允许的字符。 

$(FxCopDir)

fxcop.cmd文件的路径。fxcop.cmd 文件不和所有的 Visual C++ 版本一起安装。

### 设置和使用相对路径Visual Studio 中,为了确保项目的可移植性和不同开发环境中的一致性,推荐使用相对路径而非绝对路径来配置项目属性。这可以通过特定的变量实现。 对于 `Additional Library Directories` 或其他类似的属性,可以采用如下方式设置: #### 宏定义路径 利用预定义的如 `$(ProjectDir)` 和 `$(SolutionDir)` 来指定从当前解决方案或项目所在位置开始计算的目标文件夹的位置[^1]。这些代表了具体的物理地址,在不同的机器上能够自动调整到对应的正确位置。 例如,假设有一个外部库位于与项目同一级别的 `libs` 文件夹内,则可以在 **项目属性 -> 配置属性 -> C/C++ -> 常规 -> 附加包含目录** 中填入: ```plaintext $(ProjectDir)..\libs; ``` 同样地,当涉及到链接器选项时(即 **项目属性 -> 配置属性 -> 链接器 -> 常规 -> 附加库目录**) ,也可以按照相同的方式操作: ```plaintext $(ProjectDir)..\libs\libname; ``` 这里需要注意的是,每条记录之间应该用分号(`;`)隔开,并且不需要额外添加双引号[^4]。 另外一种方法是基于上级目录进行定位,比如使用 `"...\folder"` 的形式,这里的三个点表示返回上一级目录,此法是从Visual Studio安装根目录出发寻找目标文件夹。不过这种方法不如前者的灵活性高,通常建议优先考虑使用 `$(ProjectDir)` 或者 `$(SolutionDir)`。 最后关于调试期间加载 DLL 路径的问题,可以通过修改环境变量 PATH 实现,具体做法是在启动应用程序之前临时追加所需的动态链接库所在的文件夹至系统的 PATH 变量中[^3]: ```batchfile set PATH=C:\path\to\dlls;%PATH% ``` 以上就是在 Visual Studio 中合理运用相对路径的方法概述。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值