我有一个MSI软件包,它安装了许多用户可以选择在他的计算机上安装的功能。我还有一个MSP补丁包,它可以更新一些组件并修复应用程序中的一些错误。我注意到在修补程序安装期间,属性ADDLOCAL会自动设置为包含所有功能的列表(在CostFinalize操作期间)。
我想知道为什么“CostFinalize”操作正在设置ADDLOCAL属性,为什么要用所有“缺席”功能设置它。
我的问题是修补程序正在安装所有内容。 我真的无法找到解释,所以任何帮助将不胜感激。
编辑: 链接到同一问题:here
答案 0 :(得分:1)
您已尝试解决this problem。那时,您发现REINSTALL
属性包含用户安装的功能。
然后,将此值分配给ADDLOCAL
的简单技巧应该会有所帮助:
<CustomAction Id="CopyReinstallToADDLOCAL"
Property="ADDLOCAL" Value="[REINSTALL]"
/>
<InstallExecuteSequence>
<Custom Action="RCopyReinstallToADDLOCAL" Before="CostFinalize">
<![CDATA[PATCH]]>
</Custom>
</InstallExecuteSequence>