Как экранировать переменную в XL-Release
В нашем конвейере XL-Release есть заполнители со строками, предназначенными для конфигурации NLog. Конфигурации NLog имеют синтаксис, который поддерживает интерполированные значения с использованием того же синтаксиса, который XL-Release использует для переменных:
${variablename}
. Например, в NLog соответствует базовому каталогу и
${shortdate}
дает текущую строку временной метки.
К сожалению, XL-Release выполняет поиск переменных по этим значениям, ничего не находит и ничем не заменяет предполагаемый текст конфигурации NLog.
Есть ли способ избежать значений NLog, чтобы XL-Release оставил их в покое? Возможно, обратная косая черта?:
\${variablename}
.
Например, в нашем словаре поиска есть такая запись:
"App": {
"ProgramName": {
"ArchiveFilename": "${basedir}/logs/archive/ProgramName-${shortdate}.log",
"Filename": "${basedir}/logs/ProgramName.log"
},
etc...
Шаблон выглядит так:
<targets>
<target name="logfile" xsi:type="File" fileName="{{ App.ProgramName.Filename }}"
И вместо того, чтобы получить это:
<targets>
<target name="logfile" xsi:type="File" fileName="${basedir}/logs/ProgramName.log"
Я получаю это (выпуск XL-Release упал):
<targets>
<target name="logfile" xsi:type="File" fileName="/logs/ProgramName.log"
Как я могу сбежать
${basedir}
так что XL-Release не заменяет его?