【问题标题】:MSI Patch Not Working Against A Patched Version (Error 2356)MSI 补丁对补丁版本不起作用(错误 2356)
【发布时间】:2011-06-08 10:21:40
【问题描述】:

我们的软件有三个版本。 (例如 V1.0.1、V1.0.2 和 V1.0.3)。我使用 Visual Studio 2010 安装项目为这三个版本(V1.0.1.msi、V1.0.2.msi 和 V1.0.3.msi)创建了完整的 msi 安装程序。另外,我在其中创建了补丁更新(小升级)(.msp包)如下:

Patch_1.0.2.msp(在 V1.0.1 和 V1.0.2 之间创建)

Patch_1.0.3.msp(在 V1.0.2 和 V1.0.3 之间创建)

在对完整安装的 V1.0.2.msi 应用 Patch_1.0.3.msp 时,效果非常好。

但是如果先安装 V1.0.1.msi 完整包,然后再应用 Patch_1.0.2.msp(它工作正常并将当前版本号带到 V1.0.2),我无法在上面安装 Patch_1.0.3.msp Patch_1.0.2.msp 的。出现以下错误:

Error 2356: Couldn't locate cabinet in stream: _38E265F5A43AD31C46B21C2A867AD7BE. MSI (s) (C0:08) [13:12:30:089]: Product: TestApp -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2356. The arguments are: _38E265F5A43AD31C46B21C2A867AD7BE, ,

完全安装 V1.0.2(msi 安装程序)和完全安装 V1.0.1 与 Patch_1.0.2.msp 有什么区别,尽管两者的最终版本号相同(V1.0.2)

两个 msp 包都是“小升级”。

谁能帮我解决这个问题?非常感谢任何想法、想法和建议。

【问题讨论】:

    标签: visual-studio-2010 windows-installer setup-project patch


    【解决方案1】:

    Windows Installer 似乎在应用补丁之前尝试修复当前安装。这就是它试图找到 CAB 的原因。

    如果您在应用 Patch_1.0.2.msp 后从控制面板手动修复安装,Patch_1.0.3.msp 是否有效?如果是这样,您应该确定为什么您的包需要在 Patch_1.0.2.msp 之后进行修复。

    【讨论】:

    • 非常感谢您的快速回复。我在应用 Patch_1.0.2.msp 后尝试修复安装,但失败并抛出错误 2356。但是,我找到了解决问题的方法。请看下一个答案。
    • 终于找到了解决办法:制作Patch_1.0.3.msp, 1.制作“V1.0.1.msi”的管理员镜像; 2. 使用“Patch_1.0.2.msp”修补此管理映像; 3. 在步骤 2 中的这个修补图像和 V1.0.3 之间制作 Patch_1.0.3.msp。但是这个新补丁 (Patch_1.0.3.msp) 不适用于 V1.0.2.msi 完整安装。要安装补丁,请按照以下步骤操作: 1. 安装 V1.0.1.msi; 2.安装Patch_1.0.2.msp; 3.安装Patch_1.0.3.msp;您将获得V1.0.3的最终版本。
    【解决方案2】:

    创建一个从 1.0.1 到 1.0.3 的补丁,并根据当前程序版本提供补丁链接。

    【讨论】:

      猜你喜欢
      • 2015-05-21
      • 2013-04-10
      • 2012-02-02
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      • 2016-08-02
      • 2015-05-18
      • 1970-01-01
      相关资源
      最近更新 更多