开发者

MSI Patch Not Working Against A Patched Version (Error 2356)

We have three versions of our software. (e.g. V1.0.1, V1.0.2 and V1.0.3). I created full msi installers for these three versions(V1.0.1.msi, V1.0.2.msi and V1.0.3.msi) with Visual Studio 2010 Setup Project. In addition, I created patch updates (minor upgrades)(.msp package) among them as follows:

Patch_1.0.2.msp (created between V1.0.1 and V1.0.2)

Patch_1.0.3.msp (created between V1.0.2 and V1.0.3)

When applying Patch_1.0.3.msp against a full installation of V1.0.2.msi, it works very well.

But if installing V1.0.1.msi full package first, then applying Patch_1.0.2.msp (which works fine and brings the current version number to V1.0.2), I couldn't install Patch_1.0.3.msp on top of Patch_1.0.2.msp. The following error occurs:

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, ,

What's the difference between the full installation of V1.0.2 (msi installer) and the full installation of V1.0.1 with Patch_1.0.2.msp on top, although the final version number of both are same (V1.0.2)

Both msp packages are "minor upgrades".

Can anybody help me with this? Any ideas, thoughts, advice are very much appreciated.


It seems like Windows Installer tries to repair the current installation before applying the patch. This is why it tries to find the CAB.

Does Patch_1.0.3.msp work if you manually repair the installation from Control Panel after applying Patch_1.0.2.msp? If it does, you should determine why your package needs a repair after Patch_1.0.2.msp.


Create a patch from 1.0.1 to 1.0.3 and provide a link to the patch depending on the current program version.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜