在生成中使用环境变量

生成项目时,通常必须使用项目文件或构成项目的文件中的信息来设置生成选项。 此信息通常存储在环境变量中。

引用环境变量

所有作为有效 MSBuild 属性名称的环境变量都可以作为属性提供给 MSBuild 项目文件。 MSBuild 属性中描述了有效的属性名称。 例如,以数字开头的环境变量在 MSBuild 中不可用。

注释

如果项目文件包含与环境变量同名的属性的显式定义,则项目文件中的属性将替代环境变量的值。

在 MSBuild 项目中使用环境变量

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

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

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

为属性提供默认值

  • Condition仅当属性没有值时,才使用属性上的属性设置值。 例如,以下代码仅在未设置环境变量时将ToolsPathToolsPath属性设置为 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>