【问题标题】:How does $(BuildProjectFolderPath) get set in a TFS build$(BuildProjectFolderPath) 如何在 TFS 构建中设置
【发布时间】:2011-09-14 04:19:22
【问题描述】:

我觉得我缺少一些非常基本的东西;但我花了几个小时无济于事。我正在尝试让 TFS 构建正常工作,但在我的一生中,我无法弄清楚这个属性是从哪里设置的。

我从一个目前无法帮助我的团队成员那里获得了一个 TFS 2010 项目。

我有一个构建解决方案的简单 TFS 构建。

在我的 tfproj 文件中:

<SolutionToBuild Include="$(BuildProjectFolderPath)/MySolution.sln">

这似乎可行,但对于我的生活,我无法弄清楚如何。我没有在任何地方或任何类似于 MySolution.sln 的正确路径的地方设置变量 $(BuildProjectFolderPath)。

我已经检查了构建框上的构建定义、构建脚本和环境变量,但我无法弄清楚 $(BuildProjectFolderPath) 对应的路径来自哪里。

谁能帮我解开这个黑魔法?

【问题讨论】:

    标签: tfs


    【解决方案1】:

    您的构建实际上是由 MSBuild 执行的。当 MSuild 启动时,它会初始化一些特定于项目/解决方案的环境类型的变量。例如,在构建服务器上,构建代理将在 MSBuild 中注入其 BuildProjectFolderPath 值,用于解析 tfsproj 文件中的宏。

    没有魔法,只是启动以处理您的请求的环境提供了这些值。

    【讨论】:

    • 对不起;也许我错过了一些东西。我查看了构建框上的构建代理配置,没有看到任何类似于名为 BuildProjectFolderPath 的变量或任何与构建相关的路径。
    • 很多(最多)变量是由 MSBuild 在运行时确定的,并且是不可控的。 BuildProjectFolderPath 是使用构建代理中配置的工作目录构建的。我在显示该字段的答案中包含了一个屏幕截图。只需将其与系统上的 CMD.EXE 进行比较即可。它拥有和可以使用的许多环境变量是在 CMD 启动时根据它运行的系统计算的。有些值是可覆盖的,有些则不是。
    • 谢谢。我认为这回答了这个问题。我没有在这两个目录之间建立联系。
    猜你喜欢
    • 2020-04-26
    • 2023-03-25
    • 2018-08-15
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多