我需要在安装应用程序时使用 XmlFile 元素的 value 属性中的百分比字符来配置 log4net 滚动文件附加程序的路径。
目标是让 log4net 像这样配置
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Log_[%processid].log" />
...
</appender>
基本的 wix 代码如下所示:
<util:XmlFile
Id="RollingFileAppenderLogPath"
File="[INSTALLLOCATION]log4net.config" Action="setValue" Permanent="yes"
ElementPath="/log4net/appender[\[]@name='RollingFileAppender'[\]]/file" Name="value"
Value="[LOGPATH]Log_[%processid].log"/>
我已经尝试了 [ ] 和 % 等实体([、] 和 %)的各种替换,加倍、三倍、四倍,但该值始终被称为环境变量或导致 ICE03:无效字符串格式。
替换结果如下所示:
<file type="log4net.Util.PatternString" value="<inserted LOGPATH>Log_.log"/>
有没有办法让 [%processid] 强制作为字符串使其按预期插入?