首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对mailSettings文件执行XML变量替换?

如何对mailSettings文件执行XML变量替换?
EN

Stack Overflow用户
提问于 2021-05-20 05:18:46
回答 1查看 826关注 0票数 0

我们有一个Web.config文件,它具有以下system.net mailSettings属性:

代码语言:javascript
复制
<system.net>
    <mailSettings>
      <smtp configSource="mailSettings.config" />
    </mailSettings>
  </system.net>

mailSettings.config文件位于项目子根级别下,只包含以下行:

代码语言:javascript
复制
<smtp from="reports@companyxyz.com" deliveryMethod="Network">
  <network enableSsl="true" host="smtp.sendgrid.net" port="587" userName="" password="" />
</smtp>

我们希望将userName和密码属性存储为发布管道中的变量(最终在Azure密钥库中,但不在这里的范围内),在Azure应用程序部署任务(下面的yaml)中,有一个用于XML变量转换/替换的选项。

代码语言:javascript
复制
steps:
- task: AzureRmWebAppDeployment@4
  displayName: 'Deploy Azure App Service'
  inputs:
    azureSubscription: '$(Parameters.ConnectedServiceName)'
    appType: '$(Parameters.WebAppKind)'
    WebAppName: '$(Parameters.WebAppName)'
    enableCustomDeployment: true
    TakeAppOfflineFlag: false
    RenameFilesFlag: false
    enableXmlTransform: true
    enableXmlVariableSubstitution: true

我已经启用了它,但是它如何知道如何转换mailSettings.config模板文件?

这是对XmlVariableSubstitution开关的描述:

在构建或发布管道中定义的变量将与任何配置文件和appSettings的applicationSettings和connectionStrings部分中的“键”或“名称”条目相匹配。变量替换在配置转换之后运行。

注意:如果在发布管道和环境中定义了相同的变量,那么环境变量将取代发布管道变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-20 08:51:03

在您的情况下,标准替换将无法工作,因为您已经发现:

在构建或发布管道中定义的变量将与任何配置文件和appSettings的applicationSettings和connectionStrings部分中的“key”或“name”条目相匹配。变量替换在配置转换之后运行。

您仍然可以使用Extension-更换代币实现您的目标。

对于默认任务配置,需要将文件更改为将令牌定义为#{VARIABLE_NAME}#。所以在你的情况下应该是:

代码语言:javascript
复制
<smtp from="reports@companyxyz.com" deliveryMethod="Network">
  <network enableSsl="true" host="smtp.sendgrid.net" port="587" userName="#{USER_NAME}#" password="#{PASSWORD}#" />
</smtp>

还要确保放置正确的目标文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67614382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档