Wix-使用属性名称作为值时无法写入 XML 文件
Posted
技术标签:
【中文标题】Wix-使用属性名称作为值时无法写入 XML 文件【英文标题】:Wix- Unable to write to XML file when using Property Name as Value 【发布时间】:2015-05-13 02:24:12 【问题描述】:我试图在安装过程中将值写入 XML 文件,该值来自用户在安装阶段填写的文本字段。 在我的安装程序 GUI 文件中,我有以下 EditField:
<Control Id="LogEdit" Type="Edit" X="45" Y="155" Width="100" Height="18" Property="LOGVALUE" Text="80" />
在我的 Product.WXS 中,我添加了一个新属性,如下所示:
<Property Id="LOGVALUE" Secure="yes"/>
<SetProperty Id="LOGVALUE" Value="" After="AppSearch">LogValue</SetProperty>
然后我创建了一个新组件,如下所示:
<Component Id="LogComponent"
Guid="87F682A6-1CC0-4E2D-9882-25D765478F94" Directory='ContentDir' NeverOverwrite='yes' Permanent='yes'>
<File Id="Logconfig"
DiskId="1"
Name="log.xml"
Source="..\bin\log.xml"
Vital="yes"
KeyPath="yes" />
<util:XmlFile Id="SetKey3"
Action="setValue"
ElementPath="/log/appender[\[]@type='log4net.Appender.RollingFileAppender'[\]]/file/@value"
Value="[LOGVALUE]"
File="[#Logconfig]"
SelectionLanguage="XPath"
Sequence="1" />
</Component>
我还在 . 问题是安装后不会将任何内容写入 XML 文件,然而如果我将 Value="[LOGVALUE]" 替换为一些硬编码值,例如 Value=" TEST" 在 util:XmlFile 部分它工作。错误来自哪里的任何想法?
【问题讨论】:
【参考方案1】:您在下面的 setproperty 中将 LOGVALUE 的值设置为“”,我相信通过将该值设置为空,将其设置为“[LOGVALUE]”或根本不设置它,因为 UI 是设置属性值
<SetProperty Id="LOGVALUE" Value="" After="AppSearch">LogValue</SetProperty>
【讨论】:
谢谢 :) 令人惊讶的是,我正在写入同一个 Product.WXS 中的另一个 XML 文件,并且我将以上是关于Wix-使用属性名称作为值时无法写入 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章