Использовать процентное значение в значении XmlFile
Мне нужно использовать процентную цифру в атрибуте value элемента XmlFile, чтобы настроить путь для приложения-аппликатора 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"/>
Я пробовал несколько различных замен для [ ] и% подобных сущностей (& # 91;, & # 93; и & # 37;), удвоение, утроение, четырехкратное увеличение, но значение всегда упоминается как переменная среды или вызывает ICE03: Invalid формат строки
Результат замены выглядит так:
<file type="log4net.Util.PatternString" value="<inserted LOGPATH>Log_.log"/>
Есть ли способ получить [%processid] принудительно в виде строки, чтобы вставить его как положено?
1 ответ
Думаю, я нашел решение: проблема в квадратных скобках!
Если вы откроете документацию WIX и перейдете к элементу "XmlFile", в свойстве "Значение" будет указано следующее:
Значение для записи. См. Раздел Форматированный для получения информации о том, как избежать квадратных скобок в значении.
Так что, просто нажмите на ссылку выше и измените текст, избегая квадратных скобок, и все должно работать нормально!:)