Yes, they are ;) We have a base feature "MainFeature" and subfeatures "ProgramOne", "ProgramTwo", "ProgramThree"...
The main feature only includes some general registry components (paths, global settings). Each program feature contains only components they need to run - so some shared libraries are referenced in all programs, but some are just for one special program. All the programs as part of big package and can communicate between each other, but also each programs can work on each own. (Let's say we have the programs are "Calculator" and "TableEditor". When both programs are installed you can use "Calculator" from within the "TableEditor" or you can save results from "Calculator" to tables using "TableEditor".) We are using External UI application to manage our installation process, which gathers data from the user, downloads the required CAB fiels and then calls Windows Installer API: MsiInstallProduct(MsiPath, MsiParams) The MsiParams looks like: "INSTALLDIR=C:\Program Files\Fine\Programs\ COMMONDIR=C:\Program Files\Common Files\Fine Shared\ ADDLOCAL=MainFeature,ProgramOne,ProgramTwo" The Msi uses Major Upgrade without the "MigrateFeatureStates" action, so programs not referenced in ADDLOCAL get uninstalled. When we are doing an update, the External UI application always analyzes the current installed version and tells the Windows Installer all the features to (re)install. But we would like to somehow be able to select which programs/features not to remove and reinstall during the update. The ideal solution would be: "ADDLOCAL=MainFeature,ProgramOne KEEPOLD=ProgramTwo" Generally we are not removing files from release to release, so no files would get deleted. In the special case some file will be deleted from the newer version we are OK with the Windows Installer deleting the old one so the new MSI file correctly references all the KeyPaths installed on the user's computer. I'm open to any other ideas, which would help us solve this issue. This is not supported solution for our customers, but we need them to have a way to use different versions of programs from our package. (We know of some compatibility problems when ProgramOne 1.0 doesn't properly communicate with ProgramThree 2.0 and can crash) Thank you Ondrej Zarevucky Blair wrote: > I hope your "programs" are implemented as Windows Installer Features in your > MSI package. > > -----Original Message----- > From: Ondrej Zarevucky [mailto:ondrej.zarevu...@fine.cz] > Sent: Thursday, December 03, 2009 8:25 AM > To: General discussion for Windows Installer XML toolset. > Subject: [WiX-users] Partial major upgrade? > > Hi, > we have prepared one MSI package with the whole set of our programs > (many of our customers buy more than 4 programs which share the same > libraries) and we try to persuade our customers to buy all the programs > in the same major version so it's not a problem, but there was one case... > > The customer didn't want to pay for the upgrade of the old programs > (let's say version 1.0), but wanted to buy a another new one (version > 2.0). The programs are written in a way the version 1.0 programs can use > the version 2.0 libraries. > > My question is: > - how to perform major upgrade (this is how we implemented updates), but > leave some program files in lower version? > > My ideas: > A) temporarily change the File table in MSI database to older file > version - MSI then shouldn't overwrite them nor delete them, because we > have sequenced RemoveExistingProducts action after *InstallExecute* action. > B) upgrade the package to version 2.0 and then install 1.0 as another > instance using Instance transform - we are afraid it would become hell > to service, when the user buys upgrade of programs scattered in > different instances > C) remove the automatic major upgrade step across major versions (1.0 to > 2.0) and two independent install of new version and unistall of the old > version. If the user chases not to update some programs, the uninstall > doesn't remove all the features. This is still problematic for servicing > and doesn't allow good rollback scenario if things go wrong > (Transactions are supported in Windows Installer 4.5, but we need to > target 3.1) > D) split the package to have one msi package for each program - this > allows complete independency, but has problems with Add/Remove dialog, > no good rollback support, is slower to install, and the installation > media requires to be much larger :( > > Can you help me, how to solve this issue? I'm currently inclined for the > temporary File table change, but I'm not sure, how to do it properly. > > I've looked at this post: > http://www.joyofsetup.com/2007/07/01/semi-custom-actions/ > which uses WcaAddTempRecord, which uses MsiViewModify(..., > MSIMODIFY_INSERT_TEMPORARY, ...) > Sadly, I didn't find any MSIMODIFY_UPDATE_TEMPORARY, only > MSIMODIFY_UPDATE ( > http://msdn.microsoft.com/en-us/library/aa370519(VS.85).aspx > <http://msdn.microsoft.com/en-us/library/aa370519%28VS.85%29.aspx> ) > > Thank you for any help > Ondrej Zarevucky > > ---------------------------------------------------------------------------- > -- > Join us December 9, 2009 for the Red Hat Virtual Experience, > a free event focused on virtualization and cloud computing. > Attend in-depth sessions from your desk. Your couch. Anywhere. > http://p.sf.net/sfu/redhat-sfdev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > ------------------------------------------------------------------------------ > Join us December 9, 2009 for the Red Hat Virtual Experience, > a free event focused on virtualization and cloud computing. > Attend in-depth sessions from your desk. Your couch. Anywhere. > http://p.sf.net/sfu/redhat-sfdev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users