我们有三个版本的软件。 (例如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)< / p>
两个msp软件包都是“次要升级”。
有人可以帮我这个吗?非常感谢任何想法,想法和建议。
答案 0 :(得分:0)
似乎Windows Installer在应用修补程序之前尝试修复当前安装。这就是它试图找到CAB的原因。
如果在应用Patch_1.0.2.msp后从控制面板手动修复安装,Patch_1.0.3.msp是否有效?如果是这样,您应该在Patch_1.0.2.msp之后确定您的包需要修复的原因。
答案 1 :(得分:0)
创建从1.0.1到1.0.3的补丁,并根据当前程序版本提供补丁的链接。