1

我需要在安装应用程序时使用 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] 强制作为字符串使其按预期插入?

4

1 回答 1

2

认为我找到了解决方案:问题出在方括号上!

如果您打开 WIX 文档并导航到“XmlFile 元素”,则在“值”属性上显示:

要写入的值。有关如何转义值中的方括号的信息,请参阅格式化主题。

因此,只需检查上面的链接并更改文本,转义方括号,一切都应该可以正常工作!:)

于 2012-02-10T11:09:32.260 回答