[英]Variable substitution does not work in Web.Config section
我在 Web.config 中有這個自定義部分
<serviceWorker PriorityCronExp="__serviceWorker_PriorityCronExp__" ScheduledCronExp="__serviceWorker_ScheduledCronExp__" />
我想替換我的版本中的變量,我已經配置了變量並檢查了“XML 變量替換”,但是我的版本沒有檢測到變量沒有被替換。 其他變量已正確替換(在 appSettings 中定義)。 有沒有辦法在不必修改我的 Web.Config 的情況下替換變量?
PS我的目標是.Net Framework 4.8
我沒有看到你的 Web.config 的整個結構,但我大概能看出你那邊發生了什么。
“XML 變量替換”功能僅適用於 applicationSettings、appSettings、connectionStrings 和 configSections。 只有這些會起作用。
這里清楚地說明:
此功能使您能夠修改 web 包和 XML 參數文件 (parameters.xml) 內的配置文件(*.config 文件)中的配置設置。 這樣,相同的 package 可以根據將要部署的環境進行配置。
變量替換僅對配置文件的 applicationSettings、appSettings、connectionStrings 和 configSections 元素生效。 如果您要替換這些元素之外的值,您可以使用 (parameters.xml) 文件,但是您需要使用第 3 方管道任務來處理變量替換。
它就是這樣設計的。
如果我有什么誤解,請隨時告訴我。
有沒有辦法在不必修改我的 Web.Config 的情況下替換變量?
是的。 我建議您可以將 RegEx Match & Replace 中的RegEx Match & Replace 任務添加到您的 Pipeline 以修改 web.config 文件。
此任務將使用正則表達式來匹配文件中的字段。
steps:
- task: RegExMatchReplace@2
displayName: 'RegEx Match & Replace'
inputs:
PathToFile: web.config
RegEx: 'PriorityCronExp="(?:[^\\"]|\\\\|\\")*" ScheduledCronExp="(?:[^\\"]|\\\\|\\")*"'
ValueToReplace: 'PriorityCronExp="$(variabename1)" ScheduledCronExp="$(variablename2)"'
然后值將更新。
您可以使用此站點來轉換正則表達式: Regex Generator
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.