【发布时间】:2018-07-08 11:59:59
【问题描述】:
我正在使用 VSTS 开发 DevOps。我有两个 Web 项目,例如 webproject1 和 webproject2,每个项目都有 Web.config 文件。但是那些 Web.config 文件的 Web 项目由具有不同值的相同键组成。
示例: WebProjects1 包含具有这些键值的 Web.config 文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="DBConnectionString" connectionString="Server=XXXX;Integrated Security=SSPI;Persist Security Info=True;Database=XXXX;Connect Timeout=60;MultipleActiveResultSets=True;Min Pool Size=10;Max Pool Size=200;Application Name=XXXX" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
WebProjects2 包含具有这些键值的 Web.config 文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="DBConnectionString" connectionString="Server=XXXX;Integrated Security=SSPI;Persist Security Info=True;Database=XXXX;Connect Timeout=60;MultipleActiveResultSets=True;Min Pool Size=10;Max Pool Size=200;Application Name=XXXX" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
对于这些项目,我使用 IIS Web App Manage 和 IIS Web App Deploy Deployment 任务在 VSTS 中创建了发布定义。我想用两个 Web.config 文件中的客户端键值替换键值。但是这两个 Web.config 文件具有相同的键。因此,我无法使用 XML 变量替换 选项在 IIS web App Deploy VSTS release task using Variables 选项卡下将键替换为两个 Web.config 文件中的客户端值。
我按照link 使用 VSTS 来“正确”转换 Web.Config 文件,但本文档包含用单个 web.config 文件中的客户端值替换键。但它不包含关于多个 web.config 文件是否在多个项目中具有相同键的解释。
我知道使用多配置架构来解决上述问题,例如为 VS2015 中的每个 Web 项目创建 Web.Debug.config 和 Web.Release.config 文件。但我不想要这个过程。
在此先感谢....
【问题讨论】:
-
由于您选择 Bitbucket 存储库作为 VSTS 版本的工件,这两个 Web 应用程序的包如何存储在您的 bitbucket 存储库中?包的两个单独的 .zip 文件?
-
@MarinaLiu-MSFT,drop 包含每个 Web 应用程序的单独文件夹,但不包含 .zip 文件。
标签: iis azure-devops azure-pipelines-release-pipeline web.config-transform