如何在 XL-Release 中转义变量

问题描述 投票:0回答:1

我们的 XL-Release 管道具有带有用于 NLog 配置的字符串的占位符。 NLog 配置具有支持插值的语法,使用与 XL-Release 用于变量的语法相同的语法:

${variablename}
。例如,在 NLog 中,
${basedir}
相当于基本目录,
${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 已掉落

${basedir}
):

<targets>
    <target name="logfile" xsi:type="File" fileName="/logs/ProgramName.log"

我怎样才能逃脱

${basedir}
,这样 XL-Release 就不会取代它?

continuous-integration nlog xlrelease
1个回答
0
投票

解决此问题的一种方法是定义一个名为 basedir 的文本类型的发布变量,其值为 ${basedir} 并选择 PreventVariableInterpolation 布尔值以禁用嵌套插值。

© www.soinside.com 2019 - 2024. All rights reserved.