在您的生成过程中运行脚本

Team Foundation Build (TFBuild) 默认模板提供大多数团队生成和测试应用程序所需的核心功能。 尽管如此,大多数软件项目都足够独特,都能要求团队添加他们自己的业务逻辑。 开发和维护自定义生成过程可能很复杂并且费用很高。 但如果你只需要在系统编译或测试代码前后运行 PowerShell 脚本或批处理 (.bat) 文件,则不必这样做。

例如,在编译前要对程序集文件的版本进行设置。 或者在您编译之后,您希望控制放入您临时位置的生成输出。

在您的生成过程中运行脚本

默认模板上的脚本参数

可以在编译代码前后以及在运行测试前后,使用默认模板来运行 PowerShell 和批 (.bat) 脚本。

你必须先上载你的脚本,然后你的生成过程才能运行它:

在上载你的脚本之后,从生成过程参数中的适当位置引用它。 如有必要,你也可以为脚本提供参数。

预先生成示例:设置您的程序集的版本

虽然您可能在 MSBuild 编译您的代码前需要执行许多任务,但这些任务中最常见的一个可能是将一个版本应用于您的程序集。

ApplyVersionToAssemblies.ps1

后期生成示例:准备您的二进制文件分阶段

当您将输出位置设置为“AsConfigured”时,TFBuild 交还对放置到您那里的二进制文件的控制。 在此示例中,TFBuild 编译二进制文件并将其保留在源目录内,而其组织方式与你在开发计算机上使用 Visual Studio 对这些文件进行本地编译的方式基本相同。 以下脚本从典型位置收集一些典型的二进制文件类型,并将其复制到一个文件夹中,TFBuild 将从该文件夹中复制文件并将这些文件放置到临时位置

GatherItemsForDrop.ps1

问与答

问:我因为没有权限而被系统阻止操作。我如何获取权限?

答:Team Foundation Server 权限参考

问:哪些环境变量适用于我的脚本?

答:通过 TF_BUILD 环境变量获取数据

问:可从何处获得有关开发脚本的更多信息?

答:策划的答案:在 Team Foundation Build 过程中运行脚本

问:能否运行版本控制命令?

**答:**可以。 以下为显示如何签出签入文件的示例:

& ($env:VS120COMNTOOLS + "..\..\common7\ide\tf.exe") checkout $file

& ($env:VS120COMNTOOLS + "..\..\common7\ide\tf.exe") checkin $file /comment:" Checked in by build process script. ***NO_CI***" /noprompt

问:可从何处获取脚本?

社区 TFS 生成扩展

问:无法通过脚本获得足够的控制权。我该怎么办?

自定义生成过程模板