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