我正在尝试在安装过程中将值写入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文件,然而如果我用一些硬编码的值替换值=&#34; [LOGVALUE]&#34; 它的工作原理:util:XmlFile部分中的值=&#34; TEST&#34; 。任何错误来自哪些想法?
答案 0 :(得分:1)
您在以下setproperty中将LOGVALUE的值设置为“”我相信通过将值设置为空来将其设置为“[LOGVALUE]”或者根本不设置它,因为UI是设置属性值
<SetProperty Id="LOGVALUE" Value="" After="AppSearch">LogValue</SetProperty>