如何解决如何在部署时使用变量而不是 XML 转换来转换 Web.Config?
我们目前有以下 Web.Release.config
文件,可在部署时转换 Web.config
。
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
<elmah>
<errorLog xdt:Transform="Remove" />
<errorMail xdt:Transform="Remove" />
<errorMail xdt:Transform="Insert" from="reports@companyxyz.com" to="a23cv@companyxyzteam.slack.com" subject="Dashboard Error" async="true" smtpPort="587" smtpServer="smtp.sendgrid.net" userName="apikey" password="password123" />
</elmah>
</configuration>
如您所见,配置文件包含敏感信息,例如 password
。
管道工件包含脚本、内容、捆绑包,以及与此问题最相关的 Web.Debug.config
、Web.Release.config
和 Web.config
:
发布工件时,发布管道会触发 Azure 应用服务任务部署:
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
XML 转换不是更改 password
之类的属性,甚至是 to
电子邮件属性,而是我们希望将它们存储为变量,可能在发布管道中(可能创建一个elmah
组包含这些属性/值)并使用这些变量来转换 Web.config
文件。
当然,我们仍然希望发生其他 XML 转换设置,例如 <system.web>
,但我们希望使用变量而不是 XML 文件来转换 <elmah>
中的属性。
我们怎样才能做到这一点?
我知道如何创建变量,但我不确定如何或是否可以使用变量而不是 Web.config
或 Web.Debug.config
Web.Release.config
文件
是否有设置/任务可以做到这一点?
解决方法
我不确定如何或是否可以使用变量而不是 Web.Debug.config 或 Web.Release.config 来转换 Web.config 文件
我们可以安装扩展 Replace Tokens,添加变量并将变量设置为 secret,然后添加任务替换令牌以替换 web.configure
变量并在 Azure DevOps 管道中使用它。
更新 1
打开.csproj
文件并添加字段<CopyToOutputDirectory>Never</CopyToOutputDirectory>
,它不会复制Web.Release.config
文件。
<None Include="Web.Release.config">
<DependentUpon>Web.Release.config</DependentUpon>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。