2017-06-19 142 views
0

我正在使用编辑控件在对话框内设置属性值。但是,当我使用相同的属性写入ini值时,它不写入更新后的值并只写入旧值。下面(只写代码的重要作为我的WiX代码太大)将属性值设置为ini文件WIX

<Property Id="testNumber" Value="1122" /> 
<CustomAction Id="SettestNumber" Property="ModifiedtestNumber" Value="[testNumber]" /> 

<ComponentGroup Id="INIFileGroup"> 
    <Component Id="IniFile" Guid="{0ded271b-9268-49e7-8c13-60c7538acc25}" KeyPath="yes" Directory="DirCfg" > 
    <IniFile Id="IniPath" Action="addLine" Directory="Dirtest" Key="testkey" Name="test.ini" Section="test" Value="[ModifiedtestNumber]" /> 
    </Component> 
</ComponentGroup> 

<InstallUISequence> 
<Custom Action="SettestNumber" Sequence="1299"/> 
</InstallUISequence> 

      <Dialog Id="testNumberUI" X="50" Y="50" Width="375" Height="270" Title="[ProductName]" CustomPalette="yes"> 
      <Control Type="Edit" Id="test_Number" Width="50" Height="15" X="258" Y="53" Property="testNumber" Text="{50}" TabSkip="yes"/> 
     </Dialog> 

我给价值1212在控制编辑框和安装,但test.ini文件里面是不是我的维克斯源代码给出得到更新和价值是1122可能有人请提供一种方式让我更新Modifedtestnumber INI文件

注: 当我把自定义操作中< InstallExecuteSequence />值ini文件里面是空

回答

3

你的财产需要公开(全部大写TESTNUMBER)和标记为Secure属性,以便它在SecureCustomPublicProperties属性中列出。另外请注意,属性不会持久。您需要使用类似WiX记忆属性模式的内容,以便在后续事务(例如修复和升级)期间从INI文件加载该值。

+0

这里有一个提到的记得我模式的链接http://robmensching.com/blog/posts/2010/5/2/the-wix-toolsets-remember-property-pattern/ –