Wix- 使用 属性 名称作为值时无法写入 XML 文件
Wix- Unable to write to XML file when using Property Name as Value
我试图在安装期间将一个值写入 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 文件,However 如果我将 Value="[LOGVALUE]" 替换为Value="TEST" 等一些硬编码值在 util:XmlFile 部分有效。有什么想法是错误的来源吗?
您在下面的集合中将 LOGVALUE 的值设置为“”属性我认为将值设置为空会破坏它,将其设置为“[LOGVALUE]”或不设置因为 UI 正在设置 属性 值
<SetProperty Id="LOGVALUE" Value="" After="AppSearch">LogValue</SetProperty>
我试图在安装期间将一个值写入 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 文件,However 如果我将 Value="[LOGVALUE]" 替换为Value="TEST" 等一些硬编码值在 util:XmlFile 部分有效。有什么想法是错误的来源吗?
您在下面的集合中将 LOGVALUE 的值设置为“”属性我认为将值设置为空会破坏它,将其设置为“[LOGVALUE]”或不设置因为 UI 正在设置 属性 值
<SetProperty Id="LOGVALUE" Value="" After="AppSearch">LogValue</SetProperty>