【问题标题】:ADDLOCAL property getting set during a PATCH在 PATCH 期间设置 ADDLOCAL 属性
【发布时间】:2012-09-11 20:13:30
【问题描述】:

我有一个 MSI 软件包,它安装了许多用户可以选择在他的计算机中安装的功能。我还有一个 MSP 补丁包,它更新了一些组件并修复了应用程序中的一些错误。我注意到在 Patch 安装期间,属性 ADDLOCAL 会自动设置为包含所有功能的列表(在 CostFinalize 操作期间)。

我想知道为什么“CostFinalize”操作设置了 ADDLOCAL 属性,以及为什么它设置了所有“不存在”的特性。

我的问题是补丁正在安装一切。 我真的找不到对此的解释,因此我们将不胜感激。

编辑: 指向同一问题的链接:here

【问题讨论】:

    标签: windows wix windows-installer installation wix3.5


    【解决方案1】:

    您已经尝试解决this problem。那个时候,你发现REINSTALL属性保存了用户安装的功能。

    然后将这个值分配给ADDLOCAL 的简单技巧应该会有所帮助:

    <CustomAction Id="CopyReinstallToADDLOCAL"
           Property="ADDLOCAL" Value="[REINSTALL]"
    />
    <InstallExecuteSequence>
        <Custom Action="RCopyReinstallToADDLOCAL" Before="CostFinalize">
            <![CDATA[PATCH]]>
        </Custom>
    </InstallExecuteSequence>
    

    【讨论】:

    • 问题类似但不一样。这次该修复不起作用,因为 CostFinalize 操作正在通过他自己的方式设置 ADDLOCAL 属性。我无法在此处更改 ADDLOCAL 属性,因为无论我做什么,CostFinalize 操作始终将其设置为所需的值。必须解释为什么补丁试图安装所有东西,但我似乎找不到它。我添加了一个与有同样问题的人的链接。
    • linked example:补丁添加了一个新组件,它既是已安装功能的一部分,也是未安装功能的一部分。这可能是CostFinalize 认为必须同时安装这两个功能的原因。
    • 在看到 Alexey 的回答之前,我打算使用 Type 1 自定义操作。他的方法效果很好。它适用于后续补丁。
    猜你喜欢
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2019-06-18
    • 2017-09-17
    • 1970-01-01
    • 2020-03-24
    相关资源
    最近更新 更多