> My problem is still getting my head > around various MSI issues at any level (eg, bdist_msi needs some tweaking to > allow for different releases of the same "package" to be recognized as such, > but I'm not sure what MSI concept I'm dealing with yet...)
Don't hesitate to ask here. Not sure what problem you are talking to specifically, but I guess you are asking for "upgrade codes"; there is also upgrade codes and package codes. Each package file should have its own unique *packageÜ code, mere rebuilding should generate a new one. msilib does that correctly. A package code code can be installed at most once on a system. Related packages for the same software should share a *product* code. Rebuilding should not change the package code (but might in msilib; I'd have to check). Again, installer enforces that a specific package code can only be installed once on a system. Python assigns a separate product code for each bug fix release. Product codes are most useful for uninstallation, e.g. to uninstall Python 2.5.1, do msiexec /x {31800004-6386-4999-a519-518f2d78d8f0} Use separate product codes if you want to allow for simultaneous versions. Subsequent versions of the same product should share an *upgrade* code. MSI will check the Upgrade table, to see whether a package with the same upgrade code (but a different product code) is already installed, and if so, whether the version range matches. If the installed product is newer, it will refuse to install the older one. If the installed product is older, it will perform an "upgrade installation", which involves uninstalling the older version (possibly on a file-by-file basis), and possibly migrating the feature selections. Python uses a single upgrade code (until 2.5.2, which introduces a separate upgrade code for Win64). It then uses version ranges to make 2.5.2 an upgrade of 2.5.1 and 2.5.0, but not of 2.4.2 (say), essentially causing only one bug fix release per 2.5.x to be installed on the system, but allowing simultaneous installation of 2.5 and 2.4 (say). With 2.5.2, simultaneous installation of Win64 and Win32 releases on a single system becomes possible - which also requires to assign separate product codes to Win64, namely 2.5.2, Win32: 6b976adf-8ae8-434e-b282-a06c7f624d2f 2.5.2, Win64: 6b976adf-8ae8-434e-b282-a06c7f624d20 > WiX is an excellent inspiration though - if a WiX example can be found for > something, it should be a significant help in implementing it via msilib. The current challenge is merge modules: How can I merge the VC msm into the Python MSI (including support for SxS). Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com