如何将TFS变量传递给项目的MSBuild任务

13
我有一个建立在TFS服务器上的解决方案。该解决方案包括几个项目,这些项目有自定义的MSBuild任务。这些任务实际上会创建一些zip归档文件。
我需要从TFS构建中提取$(Rev)宏并将其传递给任务。我尝试在构建定义的进程选项卡中使用MSBuildArguments,当我设置一个简单的字符串值时,例如:
/p:Version="5"
它可以工作,但是当我使用宏时,它就无法正常运行:
/p:Version="$(Rev:r)"

enter image description here

你有什么想法吗?

编辑:实际上我需要的是BuildDetail.BuildNumber。


请问您是基于什么理由认为那些是宏吗? - John Saunders
嗯,我刚才以为它叫做宏。检查一下构建号的格式 - 它是用这些宏构建的。我错了吗?我在TFS方面还是个新手。 - Andrey Selitsky
是的,它们不是通用的。构建编号格式的事情是针对构建编号特定的。 - John Saunders
其实我只需要在归档名称中添加当前版本的一些唯一数字。你有什么建议吗? - Andrey Selitsky
1个回答

14
你可以稍微修改您的构建流程模板来实现这一点。
默认情况下与 MSBuild 相关的部分如下所示:
enter image description here
这可以扩展为以下内容:
enter image description here

如果您现在在构建定义的 "MSBuild 参数" 中(类似于您的图片)输入像 /p:Version=RePlAcE 这样的东西,您应该会得到所需的结果。

在另一个不需要这个的构建定义中,只需将条目留空即可。 如果不是所有使用它的构建定义都明确需要这种版本插入,则应选择此方法作为找到的替代方案

是的,谢谢。我已经完全做了相同的事情。 - Andrey Selitsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接