如何在 MSBuild 中使用团队构建属性?

发布于 2024-12-02 10:50:14 字数 389 浏览 0 评论 0原文

我有一个使用默认流程模板的简单 tfs-2010 构建定义。在其中,我使用 $(BuildID) 定义了内部版本号格式来定义部分计算字段。这有效,我可以看到 BuildID 的值是什么。

现在,我尝试将 BuildID 属性作为参数传递给 MSBuild:

/p:SomeProperty=$(BuildID)

但是,当我查看构建日志时,我看到 SomeProperty 实际上等于 $(BuildID),而不是 BuildID 的值。

我缺少什么?

为了清楚起见更新:我要问的是如何在构建定义中引用为构建过程参数。例如,内部版本号格式的默认表达式为 $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)

I have a simple tfs-2010 build definition using the default process template. In it I defined the Build Number Format using $(BuildID) to define part of the computed field. This works and I can see what BuildID's value is.

Now I try to pass the BuildID property to MSBuild as an argument:

/p:SomeProperty=$(BuildID)

However when I look at the build log I see SomeProperty literally equals $(BuildID) rather then the value of BuildID.

What am I missing?

Update for clarity: What I'm asking is how to reference as a Build Process Parameter in the Build Definition. For example Build Number Format has a default expression of $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

或十年 2024-12-09 10:50:14

您需要使用 VB.NET 表达式。例如:

String.Format("/p:SomeProperty={0}", BuildDetail.BuildNumber)

内部版本号标记,例如 $(BuildDefinitionName),特定于内部版本号格式过程参数。它们不是您可以在构建过程中的其他任何地方使用的令牌。大多数都可以在 BuildDetail 对象中或从环境中获得。然而,Build Id 是一个特殊情况。它来自构建表的标识列,并不直接在我们的公共 API 中公开。您可以从 BuildNumber 中提取它,如下所示:

BuildDetail.BuildNumber.Substring(BuildDetail.BuildNumber.LastIndexOf('/') + 1)

请注意,您需要直接在 XAML 中执行此操作,而不是将 VB 表达式放入构建过程参数编辑器 GUI 中。这是因为这些值只是作为文字字符串传递。

You need to use a VB.NET expression. For example:

String.Format("/p:SomeProperty={0}", BuildDetail.BuildNumber)

The Build Number tokens, e.g. $(BuildDefinitionName), are specific to the Build Number Format process parameter. They aren't tokens that you can use anywhere else in the build process. Most are available in the BuildDetail object or from the environment. The Build Id is a bit of a special case, however. It comes from the identity column of the builds table and isn't directly exposed in our public API. You could extract it from the BuildNumber, like this:

BuildDetail.BuildNumber.Substring(BuildDetail.BuildNumber.LastIndexOf('/') + 1)

Note that you would need to do this in the XAML directly rather than putting a VB expression into the build process parameter editor GUI. That's because those values just get passed through as literal strings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文