MSBuild 属性
更新:2007 年 11 月
属性是可用于配置生成的键/值对。属性可用于将值传递给任务、按条件进行计算以及存储将在整个项目文件中引用的值。
在项目文件中定义和引用属性
通过创建元素并将属性的名称作为 PropertyGroup 元素的子元素来声明属性。例如,下面的 XML 使用一个 Build 值创建一个名为 BuildDir 的属性。
<PropertyGroup>
<BuildDir>Build</BuildDir>
</PropertyGroup>
使用语法 $(PropertyName) 在整个项目文件中引用属性。例如,在前面的示例中,使用 $(BuildDir) 引用属性。
从命令行设置属性
MSBuild 允许使用 /property 或 /p 命令行开关从命令行设置属性。从命令行接收的属性值重写在属性文件中设置的属性值以及从环境变量继承的属性值。
下面的示例将 Configuration 属性设置为 DEBUG。
MSBuild.exe MyProj.proj /p:Configuration=DEBUG
保留属性
MSBuild 保留了一些属性名来存储有关项目文件和 MSBuild 二进制文件的信息。与任何其他属性一样,使用 $ 表示法引用这些属性。有关更多信息,请参见如何:引用项目文件的名称或位置和 MSBuild 保留属性。
环境变量
可以像处理保留属性那样,在项目文件中引用环境变量。例如,若要在项目文件中使用 PATH 环境变量,请使用 $(Path)。如果项目包含一个与环境变量同名的属性定义,则此属性在项目中重写环境变量的值。有关更多信息,请参见如何:在生成中使用环境变量。
在属性中存储 XML
属性可以包含任意 XML,这有助于将值传递给任务或显示日志记录信息。下面的示例显示了 ConfigTemplate 属性,它具有一个包含 XML 和其他属性引用的值。MSBuild 用属性引用各自的属性值替换属性引用。从上到下解释属性值,因此在此示例中,应该已经定义了 $(MySupportedVersion)、$(MyRequiredVersion) 和 $(MySafeMode)。
<PropertyGroup>
<ConfigTemplate>
<Configuration>
<Startup>
<SupportedRuntime
ImageVersion="$(MySupportedVersion)"
Version="$(MySupportedVersion)"/>
<RequiredRuntime
ImageVersion="$(MyRequiredVersion)
Version="$(MyRequiredVersion)"
SafeMode="$(MySafeMode)"/>
</Startup>
</Configuration>
</ConfigTemplate>
</PropertyGroup>