InstallShield LE, like the Setup Project before it, allows for installation of a new version of product which will replace the previously installed version. As to whether it is technically an uninstall of the old product, or an in-place upgrade seems of little importance.
The key is in the difference between Product Code and Upgrade Code:
Product Code: Since this code uniquely identifies your product, changing the product code after you have already distributed your release is not recommended.
Upgrade Code: The upgrade code, stored in the UpgradeCode property, should remain the same for all versions of a product.
(This text is directly from the InstallShield LE help library.)
It isn't exactly straightforward how to use these codes to deploy products and version updates of the same product.
The help text makes it sound like you should never change the product code. This is not the case. It should probably be written more clearly to say "Since this code uniquely identifies your product version, changing the product code after you have already distributed a particular release is not recommended." ... or something like that.
Basically you should change the Product Code when creating a new version to release. Leave the Upgrade Code alone! To change the Product Code, click the {..}
button to the right of the code. InstallShield LE will generate a new code.
My standard procedure is to change the versions for my projects, generate a new product code, and build the InstallShield setup project.
When installing the product on a machine with an earlier version already installed, the setup project will update it and leave only one version (the latest) of the program installed on the target machine.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…