Video Screencast Help
Symantec to Separate Into Two Focused, Industry-Leading Technology Companies. Learn more.

Patching/Upgrading

Created: 29 Sep 2010 | 3 comments

Hi,

I'm trying to create a patch/upgrade for my existing application (like example below).

Existing app:

Name: app1.msi

version: 2.1.0

in the latest version of my app, it include a few changes to the file, but no new files (that does not exist in the old app) have been added. I change the version to 2.1.1 with the product name still app1.msi. This new app is still using the same product code as the old app.

My question: What is the best way to create update? Currently, using the same product code, when I launch the installer, it will state that the product have been installed previously. So I need to uninstall existing app first before installing the new version. ( as stated in the help file). Both app was/will be shipped to customer in CD and download version.

One method that I've been using is to change the product code. In this case user can installed the new version over the existing version (the old version will be removed). It is ok for the upgrade but when I create a patch and try to install it in a system that have existing version, it does not work. the installer will prompt error 2356.

Wise Installation Express v7 sp1

Discussion Filed Under:

Comments 3 CommentsJump to latest comment

EdT's picture

This error means "Could not locate cabinet in stream" - in other words, the install cannot locate the files internally that it needs during the installation process.

This is usually a sign of a badly mangled install, and may be caused by having "quick compile" turned on (this is the default). Making several edits with compiles can cause the MSI to get messed up due to partial recompiles. Try deleting the MSI before recompiling as an alternative.

You also need to decide whether you want to make a patch or a minor upgrade. Both assume you start with the original MSI and just make the necessary changes to update the installer.

At this point, I would also recommend finding the help file MSI.CHM and looking up "patch" and "Upgrade" as this help file will cover how the Product Code, Package Code and Upgrade Code change (or stay the same) for different scenarios.

For a small upgrade, the product and upgrade codes will most likely remain the same but the package code will need to change as each non identical MSI must have a different package code.  You should also understand the function of the Upgrade table as this identifies previous releases which are valid for being upgraded by your new release.

If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.

eastwest's picture

Thanks edt for the reply.

I've untick the "quick compile" option and recompiled the .msi but the patch still does not work (error2356).

According to the help file, if any file were changed, registry update/delete, I should make it as a minor upgrade. And it can be distribute as a patch or full installer.

Can I confirm something? If v1 and v2 application have different product code, does the patch (.msp) file created from v2 app applicable to v1?

thank you.

EdT's picture

A patch is intended to update an existing installation, and not to perform a major update, which is what you would be deploying if the application changed from V1 to V2. Also, a major change would definitely require a change of product code.

If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.