如何使用 TFS 和变量功能替换 .config 文件中的值?

Posted

技术标签:

【中文标题】如何使用 TFS 和变量功能替换 .config 文件中的值?【英文标题】:How can i replace value in .config file using TFS and Variables Functionality? 【发布时间】:2018-05-14 14:18:00 【问题描述】:

我需要一种通过 MS TFS 替换 .config 文件中的值的方法。

例如,如果通过 tfs 中的 variables 选项将 'browser' 类型设置为 'firefox',则该新值应使用已更改的现有 .config 文件填充。

我的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Properties Example</comment>
<entry key="browser">#chrome#</entry>
<entry key="url">#https://www.example.com#</entry>
<entry key="username">#joeblogs@example.com#</entry>
</properties>

我需要使用类似以下设置的方式替换 tfs 中所有具有 # replace me # 的值:link

【问题讨论】:

看来您有解决方案。是什么阻止您实施它? @Daniel Mann 设置似乎需要练习中所示的值语法,因此 #chrome# 将变为 #chrome# 但是我需要一种仅使用以下语法来更改值的方法: #chrome# 【参考方案1】:

您应该在 TFS 变量设置中使用 变量名称 的 chrome 而不是浏览器。

因为替换标记将替换具有#替换我#的值,在你的情况下它应该是chrome而不是浏览器。

除了你使用的是xml,你也可以用*.xml代替**/*.config

【讨论】:

非常感谢您的帮助!!成功了,希望你有一个美好的一天 我还需要替换 webconfig 文件中的值,并为此使用了替换的令牌任务,但我仍然有些困惑,然后在开发人员也使用的实际主 web.Config 文件上实现了令牌化并且还添加了令牌,如果我添加 test = '#token#',那么开发人员将无法运行应用程序,因为使用 ## 更改的值是他们可以在没有“替换令牌”的情况下替换值的任何方式跨度>

以上是关于如何使用 TFS 和变量功能替换 .config 文件中的值?的主要内容,如果未能解决你的问题,请参考以下文章

在 TFS 中进行模式比较后替换跨数据库引用

使用 TFS Build Server 2015 转换 web.config

如何在 TFS 2017u2 构建和发布任务中使用变量指定安全文件输入值

构建变量在 TFS 中的发布中不起作用

如何在 TFS 2018 的其他现有发布定义中重用发布和环境变量?

TFS online build change web.config