Wix-使用Property Name作为Value时无法写入XML文件

时间:2015-05-13 02:24:13

标签: wix windows-installer wix3.7

我正在尝试在安装过程中将值写入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; 。任何错误来自哪些想法?

1 个答案:

答案 0 :(得分:1)

您在以下setproperty中将LOGVALUE的值设置为“”我相信通过将值设置为空来将其设置为“[LOGVALUE]”或者根本不设置它,因为UI是设置属性值

<SetProperty Id="LOGVALUE" Value="" After="AppSearch">LogValue</SetProperty>