使用转换后的发布配置部署内部Web应用程序

时间:2017-11-29 00:26:13

标签: c# azure-devops azure-pipelines azure-pipelines-release-pipeline xdt-transform

我们正在设置我们的发布定义,最终完成VSTS中最后一段CD / CI设置,并且遇到了我们无法转换配置的问题。

目前我们正在遵循Scott Hanselman's方法通过secrets.config保持连接字符串和秘密不在我们的web.config中,因为我们不希望任何提交给源代码控制的信息。如果这种情况有更好的实践,我们可以转换,但目前不确定这将如何与VSTS CD / CI集成。

我们已尝试使用XDT Transform Extension将我们的web.base.config转换为web.config以删除文件和configsource引用,但它似乎没有转换。

enter image description here

我们还使用IIS Web App Deploy任务进行XML转换和XML变量替换,但转换不起作用,因为工件中不存在web.base.config。我不确定为什么不会在构建时加入。

enter image description here

我们想知道这些不同步骤的最佳实践是什么,以及如何在不将配置设置提交到源代码管理的情况下成功完成内部部署。我们也想知道如何为控制台应用程序执行此方法。

1 个答案:

答案 0 :(得分:1)

由于web.base.config文件未上传到源代码控制而构建代理机器上没有,因此您无法使用XDT转换或XML转换任务/功能。

您可以将数据存储在secret variable或Azure Key Vault中,并将其链接到发布定义。

例如:

  1. 在发布定义中添加新变量(单击锁定图标)或链接Azure密钥保险库(例如connectionStrings)
  2. 方式1:检查XML变量替换选项(构建或发布定义中定义的变量将与appSettings,applicationSettings中的' key'或' name'条目匹配connectionStrings任何配置文件和parameters.xml的部分。变量替换在配置转换后运行。),然后变量值将被替换为配置文件
  3. 方式2:如果Web应用程序作为Web部署包发布:通过在发布任务中的覆盖参数输入中指定值来覆盖Web部署参数( SetParameters.xml )。 (您可以将parameters.xml文件添加到项目中,然后在生成Web部署包时将相关参数添加到SetParameters.xml文件中)Configuring Parameters for Web Package Deployment
  4. 方式3:使用Replace Token task将文件中的令牌(例如#{mypassword}#)替换为变量值(mypassword