InstallShield DevStudio
A Minor Upgrade is an update to a product in which the changes made to the setup do not warrant a change in the Product Code. From this statement alone, it is difficult to determine what a Minor Upgrade will actually do for you. The information in this help topic is intended to give you a better understanding of Minor Upgrades.
If the latest version of your setup has the same Product Code as the previous version of your setup, you can apply a minor upgrade to update your application. By simply building a release that includes setup.exe, your latest setup will be Minor Upgrade enabled. Setup.exe can detect when a previous version of your application exists on the target machine. When it detects this, it runs the rest of your setup in Minor Upgrade mode.

At run time, the end user will first see a message box announcing that an upgrade will occur. This message specifies the name of the previous product, alerting the user as to which existing application will be updated. At this point, the user can stop the setup process if desired. This prompt is followed by a Welcome dialog, and when the user clicks next on the Welcome dialog, the setup will install its new resources. While installing its resources, the setup will update the progress bar on the Setup Progress dialog so that users will be able to track the upgrade process.
A Minor Upgrade installs its new resources over the application that currently exists on the target machine. If you want to completely uninstall and then reinstall your application, you should consider a Major Upgrade.

The Upgrades view in the IDE will allow you to disable or hide the initial upgrade prompt.

This update process follows all file overwrite rules. Therefore, only files with newer versions will be updated. The upgrade also follows componentization rules. Therefore, a file will only be updated if the key file to the component containing that file is also updated.
If you intend to distribute your setup without wrapping it in setup.exe, then there is a manual process your users will have follow to start the setup. For this reason you should consider using setup.exe, although you can achieve similar results without it.
The Installer properties REINSTALL and REINSTALLEMODE must be set from the command line to start a setup in upgrade mode. In all but the most advanced scenarios, the property REINSTALLMODE should be set to 'vomus' and the property REINSTALL should be set to 'ALL'. A typical command line can look like the following:
msiexec.exe /i\MySetup.msi REINSTALLMODE=vomus REINSTALL=ALL
A critical point to note is that you do not want to set these properties on the command line unless a previous version of your setup already exists on the target machine. If you do, the setup will appear to run in Minor Upgrade mode, and your application files may not get installed. Be sure that your users will be able to discern when command line should be used and when it should not.

The REINSTALLMODE attribute 'v' is very important when performing a Minor Upgrade. This parameter tells the Installer to refresh its internal setup cache for your product with the new setup package. Without this parameter, your setup will have no knowledge of any of the changes you have made to the latest and greatest setup package.
Small and minor upgrades are very similar, but differ in some respects. Technically, a Minor Upgrade has a change in Product Version while a Small Update does not. Differences in product version can be useful when trying to create patches that only target specific previous versions of your setup.

The Product Version for your setup can be modified in the Product Properties grid of the General Information view in the IDE.
See Also