构建前和构建后事件参数
Posted
技术标签:
【中文标题】构建前和构建后事件参数【英文标题】:Pre and Post Build event parameters 【发布时间】:2019-12-11 09:34:33 【问题描述】:在 Visual Studio 中,有人可以指出可用的列表吗?
例如。 $(TargetDir)
等
【问题讨论】:
【参考方案1】:此link 提供完整和更新的列表。但是,如果它坏了,这个answer 将会丢失。
目前,对于 VS 2015,我们有:
$(配置名称) 当前项目配置的名称,例如“Debug|Any CPU”。
$(OutDir) 输出文件目录的路径,相对于项目目录。这将解析为输出目录属性的值。它包括尾部反斜杠“\”。
$(DevEnvDir) Visual Studio 2005的安装目录(定义驱动器和路径);包括尾随反斜杠“\”。
$(平台名称) 当前目标平台的名称。例如,“AnyCPU”。
$(ProjectDir) 项目的目录(用驱动器和路径定义);包括尾随反斜杠“\”。
$(ProjectPath) 项目的绝对路径名(使用驱动器、路径、基本名称和文件扩展名定义)。
$(项目名称) 项目的基本名称。
$(ProjectFileName) 项目的文件名(使用基本名称和文件扩展名定义)。
$(ProjectExt) 项目的文件扩展名。它包括“。”在文件扩展名之前。
$(SolutionDir) 解决方案的目录(使用驱动器和路径定义);包括尾随反斜杠“\”。
$(SolutionPath) 解决方案的绝对路径名(使用驱动器、路径、基本名称和文件扩展名定义)。
$(解决方案名称) 解决方案的基本名称。
$(SolutionFileName) 解决方案的文件名(使用基本名称和文件扩展名定义)。
$(SolutionExt) 解决方案的文件扩展名。它包括“。”在文件扩展名之前。
$(TargetDir) 构建的主要输出文件的目录(使用驱动器和路径定义)。它包括尾部反斜杠“\”。
$(TargetPath) 构建的主输出文件的绝对路径名(使用驱动器、路径、基本名称和文件扩展名定义)。
$(TargetName) 构建的主要输出文件的基本名称。
$(TargetFileName) 构建的主要输出文件的文件名(定义为基本名称和文件扩展名)。
$(TargetExt) 构建的主要输出文件的文件扩展名。它包括“。”在文件扩展名之前。
【讨论】:
【参考方案2】:你去: http://msdn.microsoft.com/en-us/library/42x5kfw4(v=vs.80).aspx
VS 2015版本
【讨论】:
谢谢!正是我想要的。【参考方案3】:以下是 Visual Studio 2015 的 2018 年构建前和构建后事件参数(构建命令和属性的常用宏)链接的最新列表:https://msdn.microsoft.com/en-us/library/c02as0cs.aspx
$(RemoteMachine)
设置为调试属性页上远程机器属性的值。请参阅Changing Project Settings for a C/C++ Debug Configuration 了解更多信息。
$(配置)
当前项目配置的名称,例如“Debug”。
$(平台)
当前项目平台的名称,例如“Win32”。
$(父名)
(已弃用。)包含此项目项的项的名称。这将是父文件夹名称或项目名称。
$(RootNameSpace)
包含应用程序的命名空间(如果有)。
$(IntDir)
为中间文件指定的目录的路径。如果这是相对路径,则中间文件会转到附加到项目目录的此路径。此路径应该有一个尾部斜杠。这将解析为 Intermediate Directory 属性的值。不要使用 $(OutDir) 来定义此属性。
$(OutDir)
输出文件目录的路径。如果这是相对路径,则输出文件将转到附加到项目目录的此路径。此路径应该有一个尾部斜杠。这将解析为 Output Directory 属性的值。不要使用 $(IntDir) 来定义此属性。
$(DevEnvDir)
Visual Studio的安装目录(定义为驱动器+路径);包括尾部反斜杠“\”。
$(InputDir)
(已弃用;已迁移。)输入文件的目录(定义为驱动器+路径);包括尾随反斜杠“\”。如果项目是输入,那么这个宏就相当于$(ProjectDir)。
$(InputPath)
(已弃用;已迁移。)输入文件的绝对路径名(定义为驱动器 + 路径 + 基本名称 + 文件扩展名)。如果项目是输入,那么这个宏就相当于$(ProjectPath)。
$(InputName)
(已弃用;已迁移。)输入文件的基本名称。如果项目是输入,那么这个宏就相当于$(ProjectName)。
$(InputFileName)
(已弃用;已迁移。)输入文件的文件名(定义为基本名称 + 文件扩展名)。如果项目是输入,那么这个宏就相当于$(ProjectFileName)。
$(InputExt)
(已弃用;已迁移。)输入文件的文件扩展名。它包括“。”在文件扩展名之前。如果项目是输入,那么这个宏就相当于$(ProjectExt)。
$(ProjectDir)
项目的目录(定义为驱动器+路径);包括尾部反斜杠“\”。
$(ProjectPath)
项目的绝对路径名(定义为驱动器+路径+基本名称+文件扩展名)。
$(项目名称)
项目的基本名称。
$(ProjectFileName)
项目的文件名(定义为基本名称+文件扩展名)。
$(ProjectExt)
项目的文件扩展名。它包括“。”在文件扩展名之前。
$(SolutionDir)
解决方案的目录(定义为驱动器+路径);包括尾部反斜杠“\”。
$(SolutionPath)
解决方案的绝对路径名(定义为驱动器+路径+基本名称+文件扩展名)。
$(解决方案名称)
解决方案的基本名称。
$(SolutionFileName)
解决方案的文件名(定义为基本名称 + 文件扩展名)。
$(SolutionExt)
解决方案的文件扩展名。它包括“。”在文件扩展名之前。
$(TargetDir)
构建的主要输出文件的目录(定义为驱动器+路径);包括尾部反斜杠“\”。
$(TargetPath)
构建的主要输出文件的绝对路径名(定义为驱动器 + 路径 + 基本名称 + 文件扩展名)。
$(TargetName)
构建的主要输出文件的基本名称。
$(TargetFileName)
构建的主要输出文件的文件名(定义为基本名称 + 文件扩展名)。
$(TargetExt)
构建的主要输出文件的文件扩展名。它包括“。”在文件扩展名之前。
$(VSInstallDir)
安装 Visual Studio 的目录。
此属性包含目标 Visual Studio 的版本,它可能与宿主 Visual Studio 不同。例如,使用 $(PlatformToolset) = v110
构建时,$(VSInstallDir) 包含 Visual Studio 2012 安装的路径。
$(VCInstallDir)
安装 Visual C++ 的目录。
此属性包含目标 Visual C++ 的版本,它可能与宿主 Visual Studio 不同。例如,使用 $(PlatformToolset) = v140
构建时,$(VCInstallDir) 包含 Visual C++ 2015 安装的路径。
$(FrameworkDir)
.NET Framework 的安装目录。
$(FrameworkVersion)
Visual Studio 使用的 .NET Framework 版本。结合 $(FrameworkDir),Visual Studio 使用的 .NET Framework 版本的完整路径。
$(FrameworkSDKDir)
您安装 .NET Framework 的目录。 .NET Framework 可以作为 Visual Studio 的一部分安装或单独安装。
$(WebDeployPath)
从 Web 部署根目录到项目输出所属位置的相对路径。返回与RelativePath 相同的值。
$(WebDeployRoot)
位置的绝对路径。例如,c:\inetpub\wwwroot。
$(SafeParentName)
(不推荐使用。)有效名称格式的直接父级的名称。例如,表单是 .resx 文件的父级。
$(SafeInputName)
(已弃用。)作为有效类名的文件名,减去文件扩展名。
$(SafeRootNamespace)
(已弃用。)项目向导将在其中添加代码的命名空间名称。此命名空间名称将仅包含有效 C++ 标识符中允许的字符。
$(FxCopDir)
fxcop.cmd 文件的路径。并非所有 Visual C++ 版本都安装了 fxcop.cmd 文件。
【讨论】:
以上是关于构建前和构建后事件参数的主要内容,如果未能解决你的问题,请参考以下文章
如何仅为调试构建运行 Visual Studio 构建后事件