如何:在生成中使用环境变量

更新:2007 年 11 月

生成项目时,经常需要使用不在项目文件或组成项目的文件中的信息来设置生成选项。此信息通常存储在环境变量中。

引用环境变量

所有环境变量都可作为属性在 Microsoft Build Engine (MSBuild) 项目文件中使用。

说明:

如果项目文件包含某个与环境变量同名的属性的显式定义,则该属性在项目文件中重写环境变量的值。

在 MSBuild 项目中使用环境变量

  • 引用环境变量的方法与引用项目文件中声明的变量的方法相同。例如,下面的代码引用 BIN_PATH 环境变量:

    <FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
    

如果未设置环境变量,可以使用 Condition 属性提供属性的默认值。

提供属性的默认值

  • 仅当属性 (Property) 不具有值时,才使用属性 (Property) 的 Condition 属性 (Attribute) 来设置值。例如,下面的代码仅在未设置 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>

请参见

任务

如何:使用不同选项生成相同的源文件

概念

MSBuild

MSBuild 属性