cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
KbalzKbalz
Level 4

QuickPatch question

I have one basic project, lets say version 1.0.0. From inside Install Shield, I selected Tools -> Create QuickPatch. The wizard created a new project linked to the original, and I called it 1.0.1. Within this patch project, I again created a quickpatch, and created 1.0.2.

So on my test client, I install the original, then patch 1.0.1, then patch 1.0.2. Everything works as expected, and I see the patches listed in the Add/Remove Programs.

What is the Best Practice way of getting a new install going straight to 1.0.2, and not having to install the original, then patch, then patch ...?
Labels (1)
0 Kudos
(5) Replies
KbalzKbalz
Level 4

After more tests, I see that each patch is included with the latest patch version.. so I can Install the 1.0.0, and patch directly to 1.0.2. This is OK, but it would still be nice to go directly to 1.0.2 without forking a whole new project. Is that possible, and how?
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

As long as your second patch is created from the first patch project, it should be possible to go from 1.0.0 -> 1.0.1, 1.0.1 -> 1.0.2, or 1.0.0 -> 1.0.2. Note that the requirement of creating the second patch from the first patch project is due to how patching is implemented by Windows Installer. Since a patch is basically the difference between two MSI packages, to do anything more than jump from one version directly to another requires each possible difference that could be encountered to be in the patch (though MSI 3.1 and newer provide functionality to eliminate this requirement, Express does not expose this functionality).

More information on patching can be found in the following articles:
What's in a Patch
How Patching Works
Patch Applicability
0 Kudos
KbalzKbalz
Level 4

josh - thanks for the response. That makes sense, but let me confirm with this new example. Imagine these events in chronological order,

I have a product, I released it at version 1.0, I put the setup.exe on my website.
Customer A downloads 1.0 and installs it.
Customer B downloads 1.0 and installs it.

I create a Quickpatch to generate Update.exe, which is version 1.1
Customer A downloads 1.1 and installs it.

I create a QuickPatch (based on the first Quickpatch), to generate Update.exe, which is version 1.2. I remove Update.exe (1.1) from the website, and put 1.2 up.
Customer A downloads 1.2 and installs it, so does Customer B.


Now Customer C comes along, how does he get the latest version?

Well I know the answer, they will run the 1.0 installer, then apply the 1.2 patch.

But is there any way to have Customer C directly install 1.2, with no patch?
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

It is possible to have a full 1.2 version (this would be termed a 'minor upgrade' which can serve both as an upgrade and as first time install package). However, because authoring minor upgrades is a rather advanced scenario (due to the rules imposed by MSI), and because Express editions hide a number of MSI details needed to author minor upgrades (to make common authoring scenarios easier), it is not technically possible to author a minor upgrade with InstallShield Express.

You can author a major upgrade with Express, which can be used as a first time install or an upgrade install. Note though, that major upgrades will uninstall any existing product versions located on a target machine and then install the new version (minor upgrades install over the existing version without uninstalling). Major upgrades are created by changing the Product Code and Product Version in your project, then adding an upgrade item in the Upgrades view that points to the previous version to uninstall.
0 Kudos
KbalzKbalz
Level 4

Well put, thanks - that answers my question.
0 Kudos