XmlFile要素のvalue属性内でpercentagecharを使用して、アプリケーションのインストール中に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;)のような[]と%のさまざまな置換、2倍、3倍、4倍を試しましたが、値は常に環境変数として言及されているか、ICE03を引き起こします:無効文字列形式。
置換結果は次のようになります。
<file type="log4net.Util.PatternString" value="<inserted LOGPATH>Log_.log"/>
[%processid]を文字列として強制して、意図したとおりに挿入する方法はありますか?