There is a very complete article regarding patching with Windows Installer called "White Paper: Patch Sequencing in Windows Installer version 3.0" from Microsoft at:
http://www.microsoft.com/downloads/deta ... laylang=en
Now I am wondering how InstallAware fits into this picture? When I generate a patch with InstallAware is it a "Small Update" or a "Minor Upgrade" in terms of this paper?
If I use the patches produced by InstallAware in combination with WebUpdates, do I always have to increase the ProductVersion property when creating a patch?
I.e. I have the following scenario:
- I release Base Version 1.0.0
- I release Patch 1.0.1
- I release Patch 1.0.2
- I release Upgrade Version 1.1.0
Questions:
- When creating Patch 1.0.2 do I have to reference a full 1.0.1 setup in addition to the base 1.0.0 setup?
- If a user installed Base version 1.0.0 and then applied Patch 1.0.1 and now downloads Patch 1.0.2 how will the source resolution work? (He only has the setup for 1.0.0 and the patch for 1.0.1 but not the full setup for 1.0.1.)
- Can a patch supersede an older patch (see the Microsoft White Paper) and how do I author that with InstallAware?
What is the best practise when creating patches with InstallAware? Is there a tutorial or white paper?
I did find bits and pieces in the forum and the documentation but I am not sure how everything applies to the lifecycle of an application when releasing multiple patches and upgrades over time...
Any help would be appreciated.
Thanks!
Peter
Patch sequencing
Another question:
- If I build a full setup and a patch for the same new version, should they have the same or different revision codes?
While I tried building a patch today using "Batch Build" and selecting "Compressed Web based" and "Patch" I received the following error:
"Error during build: Unable to create patch database [TargetImages.Target = 'TARGET1': PackageCode {65FA7169-71D7-482C-B613-357174BA605C} is not unique.]"
Any help on this? I have been evaluating InstallAware for a couple of days now and so far I have been pretty happy with the product. However, the patch and update process has been frustrating so far.
Peter
- If I build a full setup and a patch for the same new version, should they have the same or different revision codes?
While I tried building a patch today using "Batch Build" and selecting "Compressed Web based" and "Patch" I received the following error:
"Error during build: Unable to create patch database [TargetImages.Target = 'TARGET1': PackageCode {65FA7169-71D7-482C-B613-357174BA605C} is not unique.]"
Any help on this? I have been evaluating InstallAware for a couple of days now and so far I have been pretty happy with the product. However, the patch and update process has been frustrating so far.
Peter
-
- Posts: 3452
- Joined: Thu Dec 22, 2005 7:17 pm
- Contact:
OK, first the whitepaper won't be of much help. You really don't need to worry about all the complex rocket science in there, because InstallAware protects you from that. Now then, how is this actually supposed to be with InstallAware?
First, things to follow:
1) Create your setup project normally, lets say 1.0.
2) Build it, and save the output file.
3) When you make a new version say, 1.0.1, build that too, and save the output installer again.
4) Same process goes for all your new versions that you want to issue patches for - be they minor or major new versions.
As you do this, the IDE for you automatically does the following:
a) When you first create the setup, assigns it a unique upgrade code, product code, and revision code.
b) When you build any new version, assigns it a new revision code, and keeps the upgrade code and product code the same.
These settings are stored in the Project Options dialog, in case you want to double-check them (or in case you tampered with them and want to restore the defaults).
Now, when patching:
1) Do NOT create a new patch project. This is unnecessary.
2) Simply make sure your current setup project is configured to build your latest version application.
3) DO add all the old versions you want to patch against as patch references. This is done simply by showing the same setup project you have been working on so far the locations of the old installers that you saved.
4) Just build your latest setup project, after having added the patch references, as a Patch.
And magically, you will have a new patch installer, which will patch all old versions of your product that you added as references, and bring them all up to date for you.
First, things to follow:
1) Create your setup project normally, lets say 1.0.
2) Build it, and save the output file.
3) When you make a new version say, 1.0.1, build that too, and save the output installer again.
4) Same process goes for all your new versions that you want to issue patches for - be they minor or major new versions.
As you do this, the IDE for you automatically does the following:
a) When you first create the setup, assigns it a unique upgrade code, product code, and revision code.
b) When you build any new version, assigns it a new revision code, and keeps the upgrade code and product code the same.
These settings are stored in the Project Options dialog, in case you want to double-check them (or in case you tampered with them and want to restore the defaults).
Now, when patching:
1) Do NOT create a new patch project. This is unnecessary.
2) Simply make sure your current setup project is configured to build your latest version application.
3) DO add all the old versions you want to patch against as patch references. This is done simply by showing the same setup project you have been working on so far the locations of the old installers that you saved.
4) Just build your latest setup project, after having added the patch references, as a Patch.
And magically, you will have a new patch installer, which will patch all old versions of your product that you added as references, and bring them all up to date for you.
Michael Nesmith
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
I have been trying to create a patch installation the whole afternoon and it seems not to be working.
What I did:
- The option to create a new revision code on each build is set.
- I have a Setup that I created yesterday. (1.0) -> It has only WebMediaBlocks for the prerequisites. All files are stored in the Offline Media Block.
- I changed a couple of program files and a text file. The program files got a new file version.
- I changed the Product Version property to 1.0.1.
- I built a new full Setup "Compressed Web based" for version 1.0.1 (this time I did not use "Batch build" - see error message in my last post)
- I added the old Setup (1.0) to the Patch reference and created the Patch (1.0.1)
Now when I install the Patch the following happens:
- The Patch runs but no files are changed or updated.
- Uninstall does not work anymore: If I uninstall the application after applying the patch no files or shortcuts are removed from the system. However, the application disappears from the list of installed applications.
Peter
What I did:
- The option to create a new revision code on each build is set.
- I have a Setup that I created yesterday. (1.0) -> It has only WebMediaBlocks for the prerequisites. All files are stored in the Offline Media Block.
- I changed a couple of program files and a text file. The program files got a new file version.
- I changed the Product Version property to 1.0.1.
- I built a new full Setup "Compressed Web based" for version 1.0.1 (this time I did not use "Batch build" - see error message in my last post)
- I added the old Setup (1.0) to the Patch reference and created the Patch (1.0.1)
Now when I install the Patch the following happens:
- The Patch runs but no files are changed or updated.
- Uninstall does not work anymore: If I uninstall the application after applying the patch no files or shortcuts are removed from the system. However, the application disappears from the list of installed applications.
Peter
Thanks for the feedback, Michael!
Our postings crossed - It seems to me that I did what you suggested.
I only see two differences:
1. I updated the Product Version Property from "1.0" to "1.0.1"
2. The product version changed from two digits "1.0" to three digits "1.0.1". Could that be a problem?
Peter
Our postings crossed - It seems to me that I did what you suggested.
I only see two differences:
1. I updated the Product Version Property from "1.0" to "1.0.1"
2. The product version changed from two digits "1.0" to three digits "1.0.1". Could that be a problem?
Peter
-
- Posts: 3452
- Joined: Thu Dec 22, 2005 7:17 pm
- Contact:
To me it sounds like one of the GUIDs must have gotten changed somehow. The UpgradeCode should remain the same, and same for the product code. Only the revision code should change.
Unfortunately I don't think I can provide further guidance without more details. You can grab a support ticket and then an engineer can investigate your project files for you.
OR, if you are able to produce a minimum setup and patch combo that isolates this issue as a problem in InstallAware, we'll fix it right away, and no ticket is required.
Unfortunately I don't think I can provide further guidance without more details. You can grab a support ticket and then an engineer can investigate your project files for you.
OR, if you are able to produce a minimum setup and patch combo that isolates this issue as a problem in InstallAware, we'll fix it right away, and no ticket is required.
Michael Nesmith
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
I spent an hour checking various combinations of settings and I can reproduce the problem now:
- Create a new Default Setup
Using the Visual Designer:
- Remove the subfeature "[Project name]" that was automatically created so that there is only "All Features" left
- Add a feature independent file to the setup
Switch to MSIcode:
- The file is added right before "Apply Install" but the Visual Designer should have added it right behind "OFFLINE CONTENT".
That is the reason why it was not included in the Patch that I created.
Peter
- Create a new Default Setup
Using the Visual Designer:
- Remove the subfeature "[Project name]" that was automatically created so that there is only "All Features" left
- Add a feature independent file to the setup
Switch to MSIcode:
- The file is added right before "Apply Install" but the Visual Designer should have added it right behind "OFFLINE CONTENT".
That is the reason why it was not included in the Patch that I created.
Peter
While I tried building a patch today using "Batch Build" and selecting "Compressed Web based" and "Patch" I received the following error:
"Error during build: Unable to create patch database [TargetImages.Target = 'TARGET1': PackageCode {65FA7169-71D7-482C-B613-357174BA605C} is not unique.]"
Here are the steps to reproduce this problem:
- Open an existing project
- Set new Product Version
- Add new Patch reference
- Click on "Batch build" and select "Web based" AND "Patch"
Workaround:
- Do a "Web based" build first and then a "Patch" build in two separate steps
Michael, will you put this bug and the one mentioned above with the designer in your bug tracking system or should I contact support or something?
Thanks for your help!
Peter
-
- Posts: 3452
- Joined: Thu Dec 22, 2005 7:17 pm
- Contact:
Hi Peter,
Are you saying the batch build system fails to create patches - is this the issue?
Thanks for the research!
Are you saying the batch build system fails to create patches - is this the issue?
Thanks for the research!
Michael Nesmith
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
Yes, two issues from this thread:
1. When using "Batch build" with both "Web based" and "Patch" selected (as described above) the build system of InstallAware issues an error and stops.
2. When I remove all subfeatures and then add files in from the Visual view in InstallAware the InstallFile command it placed at the wrong position in the script. (This causes the files not to be included in patches.)
Peter
1. When using "Batch build" with both "Web based" and "Patch" selected (as described above) the build system of InstallAware issues an error and stops.
2. When I remove all subfeatures and then add files in from the Visual view in InstallAware the InstallFile command it placed at the wrong position in the script. (This causes the files not to be included in patches.)
Peter
-
- Posts: 3452
- Joined: Thu Dec 22, 2005 7:17 pm
- Contact:
Two updates for you regarding this, Peter:
1) This occurs because Batch Builds do not change revision codes. Since you do two subsequent builds (one web and one patch), they will share the same, existing revision code. R&D agrees that its counter-intuitive to have it this way, so they will make sure patches always use new revision codes when doing Batch Builds, to prevent this from happening.
2) This issue has been confirmed to be by design by R&D. When adding feature independent files, the code generator finds the first "Get Component State" command, and inserts the new file above it (which generally corresponds to after [OFFLINE CONTENT]). When you remove all features from your setup, the code generator decides to play it safe, and adds the files right before Apply Install. According to R&D, using other commands to identify the insertion point might lead to more broken setups/patches than the current situation. However, if you have any feedback on how to improve code generation logic, please let us know and we'll carefully consider your ideas.
Thanks for reporting!
1) This occurs because Batch Builds do not change revision codes. Since you do two subsequent builds (one web and one patch), they will share the same, existing revision code. R&D agrees that its counter-intuitive to have it this way, so they will make sure patches always use new revision codes when doing Batch Builds, to prevent this from happening.
2) This issue has been confirmed to be by design by R&D. When adding feature independent files, the code generator finds the first "Get Component State" command, and inserts the new file above it (which generally corresponds to after [OFFLINE CONTENT]). When you remove all features from your setup, the code generator decides to play it safe, and adds the files right before Apply Install. According to R&D, using other commands to identify the insertion point might lead to more broken setups/patches than the current situation. However, if you have any feedback on how to improve code generation logic, please let us know and we'll carefully consider your ideas.
Thanks for reporting!
Michael Nesmith
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
Who is online
Users browsing this forum: Bing [Bot] and 83 guests