【发布时间】:2020-10-20 00:56:52
【问题描述】:
我正在从事一个包含这两个文件的项目
Web.env1.config
Web.env2.config
这些文件代表了我的应用程序在其上发布的两个不同环境。
我们使用 TFS Build 2015 发布我们的应用程序,每当我必须发布应用程序时,我必须手动复制其中一个文件的内容并将其粘贴到 Web.config 文件中。
所以,我想知道是否可以自动执行此过程而无需手动执行。
【问题讨论】:
我正在从事一个包含这两个文件的项目
Web.env1.config
Web.env2.config
这些文件代表了我的应用程序在其上发布的两个不同环境。
我们使用 TFS Build 2015 发布我们的应用程序,每当我必须发布应用程序时,我必须手动复制其中一个文件的内容并将其粘贴到 Web.config 文件中。
所以,我想知道是否可以自动执行此过程而无需手动执行。
【问题讨论】:
这就是我的工作。
如果您的所有设置都位于它支持的配置部分中,您可以create transforms 并在发布管道中的网络部署任务期间使用此设置应用它们:
如果我在转换不支持的部分中有特定于环境的设置,我将与 web.config 并排维护一个 Web.config.template 文件。特定于环境的值是将在发布管道中替换的标记。例如,它可能不是连接字符串值,而是“~connstr~”。 Web.config 只是在调试时使用。
在发布管道中,我有一个replace tokens task,它提取管道变量并用值替换~tokens~。特定于环境的值是作用域管道变量:
在web.config.template 文件将其标记替换为特定于环境的值后,我有一个命令行任务将其重命名为web.config。管道从那里部署文件。
另一种选择是为每个环境创建一个Secure File ,并将其引入构建或发布管道。
管道非常强大,您可以通过解决方案发挥创意。
【讨论】: