将Property值设置为ini文件WIX

时间:2017-06-19 14:59:25

标签: wix windows-installer wix3.5

我使用Edit Control在Dialog中设置属性值。但是当我使用相同的属性在ini值内写入时,它不会写入更新的值并只写旧值。我的WIX源代码如下(仅编写重要代码,因为我的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文件< / p>

注意: 当我把自定义操作放在&lt; InstallExecuteSequence /&GT; ini文件中的值为null

1 个答案:

答案 0 :(得分:3)

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