【发布时间】:2016-03-04 14:40:28
【问题描述】:
我有一个工作的 MSBuild 文件,其中包含我想在 TFS 构建中运行的某些目标。目标依赖于已定义的某些环境变量和 MSBuild 属性。我的 TFS 构建定义编辑器中有一个“变量”选项卡,我可以在其中表面上设置变量的值,以便在目标运行时确实定义它们,但似乎只允许文字值 - 如果我想定义一个变量对于另一个变量(例如%OTHER_VARIABLE%\subfolder),没有发生变量扩展。我尝试了各种指定其他变量的方法(例如 $(OTHER_VARIABLE)),但 MSBuild 始终可以看到该值。
有没有办法根据另一个变量来定义一个变量?
【问题讨论】:
-
您使用的是哪个版本的 TFS?您使用的是 XAML 构建还是 vNext 构建?能否通过变量指定你想实现的功能?
-
我们正在评估 TFS 2015。我们对 TFS 还很陌生,所以我不确定您所说的 XAML 构建或 vNext 构建是什么意思。现在,我们正在比较 TFS 与现有的 TeamCity 构建配置,其中我们定义了“构建模板”,其中包含构建的所有要求,包括环境变量,并且我们非常依赖能够根据以下方面定义变量其他变量 - 其他变量主要由 TeamCity 本身定义(例如代理工作目录)。
-
我认为我们将能够通过将新目标添加到我们的 MSBuild 文件中来实现我们所需要的,首先设置环境(只有 TFS 构建需要使用这些),但我是好奇这是否可以在构建定义本身中实现。在前世(2010 年?)对 TFS 的早期版本进行了简单的试验后,在我看来,TFS 2015 构建配置实际上已经从 TeamCity 中汲取了一些概念(例如,各种“构建步骤”可以添加到构建定义中),但 TC 似乎仍然要复杂得多。
-
嗯。新目标对我们不起作用,因为我们的构建使用
任务调用其他构建项目,并且在外部任务中设置的环境变量不会流向内部任务。烦恼。
标签: tfs msbuild environment-variables build-process