Team Foundation Build 环境变量

你可使用 TF_BUILD 环境变量获取你的生成过程逻辑所需的数据的关键位。 例如,你可以获得源文件夹的路径或包含要放置的输出的文件夹的路径。

  • TF_BUILD 环境变量

  • 使 MSBuild 中使用环境变量

  • 在程序或脚本中使用环境变量

  • 在自定义生成过程中使用环境变量

TF_BUILD 环境变量

  • TF_BUILD 由 TFBuild 设置为 True,以便可以使你的脚本条件基于你的脚本是否由 TFBuild 运行。

  • TF_BUILD_BINARIESDIRECTORY 生成过程将输出文件复制到临时位置的目录。 此目录是生成代理工作目录的子目录。 例如:C:\Build\BuildBot3\CoolApp\CIBuild\bin。

    除非你将输出位置设置为**“AsConfigured”**,否则 TFBuild 会自动创建该目录并将此生成输出放置在此目录中。 在此情况下,可使用你的脚本复制要放置到此目录中的文件。

    备注

    此外,你的脚本应能根据需要创建或清理该目录。有关示例,请参见在您的生成过程中运行脚本

  • TF_BUILD_BUILDDEFINITIONNAME 生成定义的名称。

  • TF_BUILD_BUILDDIRECTORY 生成代理工作目录。 例如:C:\Build\BuildBot3\CoolApp\CIBuild。

  • TF_BUILD_BUILDNUMBER 生成的生成号。 例如:CIBuild_20130613.6。

  • TF_BUILD_BUILDREASON 生成的生成原因。 例如:IndividualCI。

  • TF_BUILD_BUILDURI 生成的 URI。 例如:vstfs:///Build/Build/35。

  • TF_BUILD_COLLECTIONURI 团队项目集合的 URI。 例如:http://fabrikam-2:8080/tfs/DefaultCollection(你必须已安装 Visual Studio 2012 Update 2 或后续版本,才能使用此环境变量。)

  • TF_BUILD_DROPLOCATION 放置的位置。 放置到 UNC 路径的示例:\\fabrikam-1\Drops\CIBuild\CIBuild_20130613.6。 放置到 Team Foundation Server 的示例:#/11/drop。

  • TF_BUILD_SOURCEGETVERSION 要生成的版本(TFVC 变更集Git 提交)。

  • TF_BUILD_SOURCESDIRECTORY 生成代理工作目录的源子目录。 此目录包含源代码。 例如:C:\Build\BuildBot3\CoolApp\CIBuild\src。

    有关示例,请参见在您的生成过程中运行脚本

  • TF_BUILD_TESTRESULTSDIRECTORY 生成代理工作目录的测试结果子目录。 例如:C:\Build\BuildBot3\CoolApp\CIBuild\tst。

在 MSBuild 中使用环境变量数据

在使用 MSBuild 编译代码时(通过默认模板或在使用 MSBuild 活动的自定义生成过程中),你可传入参数来控制其运行方式。 此外,某些代码项目包含特定目标,你可以使用这些参数来调用这些特定目标。 可使用 TF_BUILD 环境变量来启用这些选项,而无需在代码项目文件中编辑 XML。

例如,你正在使用默认模板来生成 ASP.Net Web 应用程序项目,并且你想仅将 Web 程序包放置到临时位置。 为此,你可以编辑生成定义并执行以下操作:

  • 将**“输出位置”过程参数设置为“AsConfigured”**。

  • 向**“MSBuild 参数”**添加与下列选项类似的选项:

    /p:DeployOnBuild=true;DeployMethod=Package /p:DefaultPackageOutputDir=”$(TF_BUILD_BINARIESDIRECTORY)”\WebPackage
    

在程序或脚本中使用环境数据

也可将 TF_BUILD 环境变量传递到不属于你的程序或脚本。 只要你的脚本可使用上述名称访问这些变量,你就不必将其传递到你的脚本中。 若要查看一些示例,请参见在您的生成过程中运行脚本

在自定义生成过程中使用环境数据

如果你需要在自定义生成过程模板中使用环境变量,则可以使用 GetEnvironmentVariable 活动获取数据。 你可以从任一 WellKnownEnvironmentVariables 中获取数据。

例如,若要获取二进制文件目录的路径,请将 GetEnvironmentVariable 活动的 Name 属性设置为 Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables.BinariesDirectory