生成项目时,通常必须使用项目文件或构成项目的文件中的信息来设置生成选项。 此信息通常存储在环境变量中。
引用环境变量
所有作为有效 MSBuild 属性名称的环境变量都可以作为属性提供给 MSBuild 项目文件。 MSBuild 属性中描述了有效的属性名称。 例如,以数字开头的环境变量在 MSBuild 中不可用。
注释
如果项目文件包含与环境变量同名的属性的显式定义,则项目文件中的属性将替代环境变量的值。
在 MSBuild 项目中使用环境变量
引用环境变量的方式与在项目文件中声明的变量的方式相同。 例如,以下代码引用BIN_PATH环境变量:
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
如果未设置环境变量,则可以使用
Condition
特性为属性提供默认值。
为属性提供默认值
Condition
仅当属性没有值时,才使用属性上的属性设置值。 例如,以下代码仅在未设置环境变量时将ToolsPath
ToolsPath
属性设置为 c:\tools:<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
注释
属性名称不区分大小写,因此同时
$(ToolsPath)
$(TOOLSPATH)
引用相同的属性或环境变量。
示例:
以下项目文件使用环境变量来指定目录的位置。
<Project DefaultTargets="FakeBuild">
<PropertyGroup>
<FinalOutput>$(BIN_PATH)\myassembly.dll</FinalOutput>
<ToolsPath Condition=" '$(ToolsPath)' == '' ">
C:\Tools
</ToolsPath>
</PropertyGroup>
<Target Name="FakeBuild">
<Message Text="Building $(FinalOutput) using the tools at $(ToolsPath)..."/>
</Target>
</Project>