构建前和构建后事件参数

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 构建后事件

应用程序设置和应用程序构建事件中的 ASP.NET 参数/变量

jsp中怎样获取选择栏修改前和修改后的值

卡巴斯基对我的构建前/构建后事件感到窒息

VS 构建后事件

构建后事件无法执行