Windows 在修补程序期间设置ADDLOCAL属性
我有一个MSI软件包,它安装了许多用户可以选择安装在计算机中的功能。我还有一个MSP补丁包,可以更新一些组件并修复应用程序中的一些错误。我注意到在补丁安装期间,属性ADDLOCAL会自动设置为包含所有功能的列表(在CostFinalize操作期间) 我想知道为什么“CostFinalize”操作要设置ADDLOCAL属性,为什么要设置所有“缺席”特性 我的问题是,补丁正在安装所有东西。 我真的找不到解释,所以任何帮助都将不胜感激 编辑:Windows 在修补程序期间设置ADDLOCAL属性,windows,wix,windows-installer,installation,wix3.5,Windows,Wix,Windows Installer,Installation,Wix3.5,我有一个MSI软件包,它安装了许多用户可以选择安装在计算机中的功能。我还有一个MSP补丁包,可以更新一些组件并修复应用程序中的一些错误。我注意到在补丁安装期间,属性ADDLOCAL会自动设置为包含所有功能的列表(在CostFinalize操作期间) 我想知道为什么“CostFinalize”操作要设置ADDLOCAL属性,为什么要设置所有“缺席”特性 我的问题是,补丁正在安装所有东西。 我真的找不到解释,所以任何帮助都将不胜感激 编辑: 链接到同一问题:您已尝试解决。当时,您发现重新安装属性包含
链接到同一问题:您已尝试解决。当时,您发现
重新安装
属性包含用户安装的功能
然后,将此值分配给ADDLOCAL
的简单技巧应该会有所帮助:
<CustomAction Id="CopyReinstallToADDLOCAL"
Property="ADDLOCAL" Value="[REINSTALL]"
/>
<InstallExecuteSequence>
<Custom Action="RCopyReinstallToADDLOCAL" Before="CostFinalize">
<![CDATA[PATCH]]>
</Custom>
</InstallExecuteSequence>
问题类似,但不同。由于CostFinalize操作正在通过自己的方式设置ADDLOCAL属性,因此该修复程序这次不起作用。我无法在此处更改ADDLOCAL属性,因为无论我做什么,CostFinalize操作都会将其设置为所需的值。必须有一个解释为什么补丁试图安装所有东西,但我似乎找不到它。我添加了一个与具有相同问题的人的链接。在中:补丁添加了一个新组件,它是已安装功能和未安装功能的一部分。这可能就是CostFinalize
认为必须同时安装这两个功能的原因。在我看到Alexey的答案之前,我打算使用Type 1自定义操作。他的方法很有效。它适用于后续补丁。