TFS 构建服务、环境变量和多个构建代理

TFS Build Services, environment variables and multiple build agents

我有一个 MsBuild 进程,它作为使用 TFS Build Services 2013 的构建的一部分启动。我需要向该进程传递一些参数(例如内部版本号)。我之前通过修改构建模板并将这些参数添加到发送到 MSBuild 的参数列表中来完成此操作,效果很好。

但是我确实发现 TFS Build Services 为 运行 编写了 a number of environment variables(内部版本号是其中之一),因为我可以轻松更改我的 MSBuild 脚本,所以我宁愿直接使用它们变量而不是修改构建模板。

我的问题是当我有多个构建代理时这将如何工作?他们不会在环境变量中覆盖彼此的值吗?我能否在我的 MSBuild 脚本中 100% 确定我没有获得可能已并行启动的下一个构建的内部版本号?

每个 TFS 构建都是使用特定的构建号完成的。如果您有多个代理在 'parallel' 版本上工作,他们将全部使用相同的版本号。每个构建代理将在其自己的特定环境中 运行,如果其他代理并行 运行 则不会有任何问题 - 在构建期间,一个代理的构建号不会 'clobber' 另一个.