Versioning idea

Topics: Updater Application Block
Aug 20, 2005 at 4:05 PM
originally posted by: mjmeans

Hi, I have read lots of this board and the docs and how to handle multiple versions of apps does not seem to readily apparent. I have an idea which I think might work, and I would like someone with a little more knowlege of the UAB to confirm this.

1. Create a manifest.xml file and GUID. This master-GUID will never change.

2. Create version 1.0.0 of app and set its updater.config to point to the manifest file. Create a new GUID. Put this in the updater.config file.

3. Distribute the app.

4. Create a new version 1.0.1 of app and set its updater.config to point to the manifest file. Create a new GUID and put this in the updater.config file.

5. To publish the update, create a new manifest file, for example app-1.0.0-1.0.1.xml that contains the update and set its applicationID GUID to the one specified in the version 1.0.0 apps update.config file. Add this manifest as an included manifest to the main manifest.xml file. Make sure the updater.config file from 1.0.1 gets included in the update. The 1.0.1 update must include the new updater.config file.

6. The app, hopefiully, can now be distributed as a stand alone 1.0.1 and users of 1.0.0 can get the update.

7. Now the tricky part comes in. Version 1.0.2 of the app is created. Set its update.config file with yet another new GUID. It seems that each version of the app must get a unique GUID entry in its updater.config file. This is apprently the only way to track sequential updates.

8. Create a new app-1.0.1-1.0.2.xml similar to the app-1.0.0-1.0.1.xml above, and add it to the included manifests list of the main manifest.xml file. This will allow users of 1.0.1 to update to 1.0.2.

9. Users will now be able to upgrade from 1.0.0 to 1.0.1, and from 1.0.1 to 1.0.2. User who originally installed version 1.0.1 will also be able to upgrade to 1.0.2.

10. If I want users of 1.0.0 to be able to update directly to 1.0.2, I must create a new app-1.0.0-1.0.2.xml to allow users of 1.0.0 to update to 1.0.2. This will have the applicationID set to the GUID used in the version 1.0.0 apps updater.config file. and Add it to the included files list of the main manifest.xml file and remove the old reference in manifest.xml of the 1.0.0-1.0.1 update since this will totally confuse the updater engine which might try to apply both updates in the wrong order.

IMPORTANT: Each new manifest has its own GUID separate and unique from the GUID used for the app versions. Th applicationID entry in the manifest only tells the updater which app it applies to based upon the updater.config file.

Is this basically correct?
Oct 18, 2005 at 5:06 AM
originally posted by: Frepe


Has anyone tried to implement this? mjmeans or anyone else?
It sounds like it should work, but now when I try to implement it I run into problems. It seems like the application ID in the "master" manifest and the application ID in the included "sub" manifest must be the same, or else the "sub" manifest never gets included.
Is this correct or am I doing something else wrong?

If it's not possible to have different application IDs in the master manifest and the included manifests, doesn't this idea fail?