2012-02-10 34 views
1

我需要使用XmlFile元素的value屬性中的百分比char來配置安裝應用程序時log4net滾動文件appender的路徑。在XmlFile的值中使用百分比char

目標是這樣的

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="Log_[%processid].log" /> 
    ... 
</appender>

基礎威克斯代碼得到log4net的配置是這樣的:

<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:無效的字符串格式。

更換的結果是這樣的:

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

有沒有辦法讓[%的ProcessID]作爲強制字符串,把它插入如預期?

+1

解決方案是 '值= [LOGPATH]登錄_ [\ []%的ProcessID [\]日誌「' – tobaer 2012-02-10 11:42:25

+0

您也可以使用CDATA無處不在,你想: <![CDATA [內容]]> 其中Content可以包含你想要的每個字符(包括方括號和百分號) – Chris 2012-02-10 19:10:02

回答

2

認爲我找到了解決方案:問題與方括號!

如果打開WIX文件,並定位到「XMLFILE元素」,在「值」屬性記載:

的值寫入。請參閱Formatted主題以獲取有關如何在值中轉義方括號的信息。

所以,只是ckeck上面的鏈接和改變文本,轉義方括號和所有應該工作正常! :)

+0

已經試過了,忘了提這個吧 – tobaer 2012-02-10 11:11:45

+0

認爲問題出在%符號上,不過應該是方括號代替!對不起! – 2012-02-10 11:18:18

+0

* FACEPALM * 有時顯然是隱藏的,已經通過這種方式形成了元素路徑。 – tobaer 2012-02-10 11:39:04