Использовать процентное значение в значении XmlFile - PullRequest
1 голос
/ 10 февраля 2012

Мне нужно использовать процентное значение в атрибуте 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"/>

Я пробовал несколько различных замен для [] и%, таких как сущности ([,] и%), удвоение, утроение, четырехкратное увеличение, но значение всегда упоминается как переменная среды или вызывает ICE03: неверный формат строки.

Результат замены выглядит так:

<file type="log4net.Util.PatternString" value="<inserted LOGPATH>Log_.log"/>

Есть ли способ получить [% processid] принудительно в виде строки, чтобы вставить его как положено?

1 Ответ

2 голосов
/ 10 февраля 2012

Думаю, я нашел решение: проблема в квадратных скобках!

Если вы откроете документацию WIX и перейдете к элементу «XmlFile», в свойстве «Значение» будет указано:

Значение для записи. См. Раздел Форматированный для получения информации о том, как экранировать квадратные скобки в значении.

Итак, просто нажмите на ссылку выше и измените текст, избегая квадратных скобок, и все должно работать нормально! :)

...