Jump to content

This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.

Major Upgrade partial update/patch possible?

1 reply to this topic


  • Members
  • 1 posts

Posted 08 November 2005 - 16:51

Hello all,

I want to install a subset of files on top of a GM install. The changes require a Major Upgrade.

I have a large 768 MB installer that was built with .NET 2005 Beta 2 August CTP. This is a GM install for x64. Using Windows Installer 3.1 tools from the 2003 Server SDK.

I have a 2nd large installer that adds new files, updates registry settings, etc. This is update 1.

At first I tried to follow the patch approach which failed. Actually downloading an RTPatch eval immediately gave an error that said a Major Upgrade (ProduceCode change) was required.

After updating the ProductCode and removing the PatchSequence table and setting the disable flag, I still was not able to generate an MSP file. It failed with the error that MSI 3.0 will block installation of Major Upgrade patches with sequence info.

So, I manually made a new MSI with a subset of the changes to take an end-user to the update 1 level from the GM.

All I want to do is install this subset over the GM.

If I add a row to the Upgrade table for the OLDAPPFOUND or UPGRADEFOUND. It indeed removes the old version. I set the migrate attribute but none of the previous files wind up installed after installing the subset. Only the subset's files are present.

If I set the Remove column to "" then nothing is uninstalled and I wind up with 2 Add/remove entries.

Is there a way to accomplish this? The install needs to be a subset so it's easy to download.

Any suggestions?




  • Moderators
  • 1,447 posts

Posted 09 November 2005 - 01:59

A major upgrade effectively means that your old setup is uninstalled and then the new one is installed (it is also possible to install only new components and then unregister the old setup, and remove any obsolete components at the end of the new setup - the behavior used depends on the location of the RemoveExistingProducts standard action in the execute sequence).

A major upgrade is a totally sepeate concept from a patch, though it can be delivered as one. A patch is a distribution format that can be used to compress the size of pre-existing major or minor upgrades. Before you can create a patch you need a working major or minor upgrade.

I would recommend that you:
1: Locate the old MSI
2: Update the old MSI with the new files / registry settings (add new components, don't update old components)
3: Delete any components that are no longer needed
4: Author the upgrade table to create a proper major upgrade. Also change the product and package GUID, KEEP the Upgrade guid the same. Finally change the version number
5: Go through the major upgrade documetation in the SDK to make sure you have implemented all that is required for a major upgrade.
-Stein Åsmul