Использовать процентное значение в значении 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", в свойстве "Значение" будет указано следующее:

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

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

Другие вопросы по тегам