更新:2007 年 11 月
MSBuild 属性是可用于配置生成的键值对。有关更多信息,请参见 MSBuild 属性。
Microsoft.TeamFoundation.Build.targets 文件为 Team Foundation Build 定义了多个 MSBuild 目标、任务和属性。可以在 TFSBuild.proj 文件中修改这些属性,从而:
- 将值传递给 Team Foundation Build 任务和目标 
- 重写某些生成操作 
有关 TFSBuld.proj 文件的更多信息,请参见了解 Team Foundation Build 配置文件。
本文档的内容
自定义 VC++ 生成
用于自定义任务的属性
可以重写的属性
下表列出了为 Team Foundation Build 定义的属性。您可以在 TfsBuild.proj 文件中重写这些属性来自定义生成过程。有关更多信息,请参见如何:自定义 SolutionToBuild 项组。
| 属性 | 说明 | 
|---|---|
| CustomPropertiesForClean | 当 Team Foundation Build 调用 Clean 目标时,设置此属性可为每个解决方案传递自定义值。 | 
| CustomPropertiesForBuild | 当 Team Foundation Build 调用其默认目标(通常为 Build)时,设置此属性可为每个解决方案传递自定义值。 | 
| SkipClean | 设置此属性可跳过 CoreClean 目标。 | 
| IncrementalGet | 将此属性设置为 true 可执行渐进式获取。该属性使用起来很方便,它可以将 CleanCompilationOutputOnly 设置为 true,将 SkipInitializeWorkspace 设置为 true,并将 ForceGet 设置为 false。 | 
| IncrementalBuild | 将此属性设置为 true 可执行渐进式生成。该属性使用起来很方便,它可以将 SkipClean 设置为 true,将 SkipInitializeWorkspace 设置为 true,并将 ForceGet 设置为 false。 | 
| CleanCompilationOutputOnly | 将此属性设置为 true 可以在 CoreClean 目标执行期间从源代码目录中仅删除中间程序集。如果将此属性设置为 false,则在 CoreClean 目标执行期间,整个源代码目录都会被删除。 | 
| SkipGetChangesetsUpdateWorkItems | 将此属性设置为 true 可跳过成功生成的变更集关联和工作项更新操作。 | 
| SolutionRoot | 设置此属性可指向生成计算机上的源文件夹的根目录。 | 
| BinariesRoot | 设置此属性可指向生成计算机上的二进制文件夹的根目录。 | 
| LabelComment | 设置此属性可定义 Label 任务使用的注释。 | 
| LabelName | 设置此标签名称可以定义 Label 任务使用的名称。默认情况下,标签名称在 InitializeEndToEndIteration 目标中设置为 $(BuildNumber)。 | 
| OutDir | 设置此属性可定义输出文件在生成工作目录中的位置。 | 
| UpdateAssociatedWorkItemsOnBuildBreak | 将此属性设置为 true 可更新关联的工作项(即使生成中断也是如此)。 | 
| StopOnFirstFailure | 将此属性设置为 true 可在生成执行期间第一次遇到失败时停止清理、编译和/或测试操作。 | 
| SkipGet | 设置此属性可跳过 CoreGet 目标。 | 
| SkipLabel | 设置此属性可跳过 CoreLabel 目标。 | 
| SkipInitializeWorkspace | 设置此属性可跳过 CoreInitializeWorkspace 目标。 | 
| SkipInvalidConfigurations | 如果将此属性设置为 false,则在用户遇到无效的配置时会生成错误而非警告。 | 
| SkipPostBuild | 设置此属性以跳过收集关联的变更集和工作项的操作。 | 
| SkipDropBuild | 设置此属性可跳过 CoreDropBuild 目标。 | 
| SkipWorkItemCreation | 设置此属性可跳过 CoreCreateWorkItem 目标。 | 
| CustomizableOutDir | 如果您希望阻止 Team Foundation Build 为每个解决方案设置 OutDir,请将此属性设置为 true。请注意,如果 CustomizablePublishDir 设置为 false,则可以使用 TeamBuildPublishDir 属性检索 Team Foundation Build 赋给 PublishDir 的值。 | 
| CustomizablePublishDir | 如果您希望阻止 Team Foundation Build 为每个解决方案设置 PublishDir 目录,请将此属性设置为 true。请注意,如果 CustomizablePublishDir 设置为 false,则可以使用 TeamBuildPublishDir 属性检索 Team Foundation Build 赋给 PublishDir 的值。 | 
自定义 VC++ 生成
Team Foundation Build 还支持自定义生成 Visual C++ 项目。您可以使用下列属性在 MSBuild 所使用的 VCBuild 任务上设置相应的属性,以便生成 Visual C++ 项目。有关更多信息,请参见 VCBuild 任务。
| 团队生成属性 | VCBuild 任务属性 | 说明 | 
|---|---|---|
| VCBuildAdditionalLibPaths | AdditionalLibPaths | 指定在搜索 LIB 环境变量路径之前用于搜索库的附加路径(对应于 LINK.exe 的 LIBPATH 选项)。 | 
| VCBuildAdditionalOptions | AdditionalOptions | 指定没有专用任务参数的附加命令行选项。 | 
| VCBuildToolPath | ToolPath | 指定 VCBuild 任务将从什么位置加载基础可执行文件 (VCBuild.exe)。 | 
| VCBuildUseEnvironment | UseEnvironment | 将此属性设置为 true 可对 PATH、INCLUDE、LIBS 和 LIBPATH 使用环境变量。否则,将其设置为 false。此属性对应于 VCBuild.exe 的 /useenv 选项。有关更多信息,请参见 /useenv。 | 
| AdditionalVCOverrides | 无 | 使用此属性可为由 Team Foundation Build 生成的并在 VCBuild 任务的 Override 属性中指定的 VCBuild 任务表文件指定附加选项。 | 
用于自定义任务的属性
Microsoft.TeamFoundation.Build.targets 文件中的每个默认 Team Foundation Build 任务还包括一组可用于自定义任务的属性。有关 Team Foundation Build 任务的更多信息,请参见 Team Foundation Build 任务。例如,CreateNewWorkItem 任务定义如下。
<!-- Create WorkItem for build failure -->
<CreateNewWorkItem
          TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
          BuildUri="$(BuildUri)"
          BuildNumber="$(BuildNumber)"
          Description="$(WorkItemDescription)"
          TeamProject="$(TeamProject)"
          Title="$(WorkItemTitle)"
          WorkItemFieldValues="$(WorkItemFieldValues)"
          WorkItemType="$(WorkItemType)"
          ContinueOnError="true" />
若要自定义在生成失败时所创建的工作项,请在 TFSBuild.proj 文件中设置 WorkItemFieldValues:
| .gif) 说明: | 
|---|
| 下面的示例假设还设置了 Areapath 和 IterationPath 属性。 | 
<WorkItemFieldValues>Area Path=$(AreaPath);Iteration Path=$(IterationPath);Severity=1;Priority=0;Symptom=build break;Steps To Reproduce=Start the build using Team Build;Source=Development;How Found=Build Break;Assigned To=Active</WorkItemFieldValues>