1

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]を文字列として強制して、意図したとおりに挿入する方法はありますか?

4

1 に答える 1

2

私が解決策を見つけたと思います:問題は角かっこにあります!

WIXドキュメントを開き、「XmlFile Element」に移動すると、「Value」プロパティに次のように表示されます。

書き込まれる値。値の角かっこをエスケープする方法については、「フォーマット済み」トピックを参照してください。

したがって、上のリンクを確認してテキストを変更し、角かっこをエスケープすると、すべて正常に機能するはずです。:)

于 2012-02-10T11:09:32.260 に答える