If the ProductCode is the same (Minor Upgrade), you can't change directories AND leave the previous installation in an old directory (there is no side-by-side installation of more than one instance of the same ProductCode).
If the ProductCode is different (Major Upgrade), you have to either have the MSI remove previous installations (without considering the paths) or you have to have your bootstrapper remove the previous installations (based on the paths). You can't have MSI remove the old version, but your removing the old version works the same way as MSI would, do it, AND you can condition the removal upon successful installation, in addition to adding properties so that the removal suppresses removal custom actions if needed. If you use a Major Upgrade on the same installation path, all components with the same GUID and KeyPath will be left alone when the previous product is removed, so Major Upgrades with the bootstrapper are the way to go to meet your requirements. I don't see how Minor Upgrades could help you (unless you either limit the number of simultaneous installations OR restrict the installation paths to a fixed number of possibilities [different twist on the same theme]). -----Original Message----- From: Jiang, Chunyan (GE Healthcare) [mailto:chunyan.ji...@ge.com] Sent: Thursday, November 12, 2009 1:06 AM To: General discussion for Windows Installer XML toolset. Cc: os...@live.com Subject: AW: [WiX-users] New Entry in Add/Remove Program when upgrade Hi Blair, Thanks a lot for your suggestion. Here I would like to summarize the workflow: Bootstraper.exe should do the following steps: * Do the UI, list all installed path, ask user to select one to upgrade * When one installation is selected, remove this installation (should not totally remove. There are some files must retain.) * Call MSI to install new version in this path MSI should do the following steps: * Upgrade the selected installation. (Minior upgrade, keep the Product ID, change the version number) * Or do the new install as demand Here I have one question. In my requirement, the selected installation should not be removed totally. There are some files must be retained. So the upgrade should not be the "major upgrade", but the "minior upgrade". The best way is to make one MSI to define which files are used to upgrade, which files are not for upgrade. Could you give me some idea how to realize it? Regards, Chunyan -----Ursprüngliche Nachricht----- Von: Blair [mailto:os...@live.com] Gesendet: Mittwoch, 11. November 2009 18:46 An: 'General discussion for Windows Installer XML toolset.' Betreff: Re: [WiX-users] New Entry in Add/Remove Program when upgrade You can do this with one MSI (I don't see how two MSIs would do anything more than confuse the issue even more) but you have to know BEFORE you start running the MSI whether you will be upgrading or not. Since that decision depends on the user's chosen installation path, which is gathered in the UI, that decision has to be made via UI BEFORE the MSI starts to run. In other words, drop Windows Installer's UI, and put the UI into your bootstrapping exe. Your bootstrapper will know your UpgradeCode and will do the same product enumeration that the Upgrade table enables, and will check the installation paths of the installed versions the same as your custom action does, and will remove the old version(s) that match the installation paths either before or after (more efficient) it installs the upgrading version. -----Original Message----- From: Jiang, Chunyan (GE Healthcare) [mailto:chunyan.ji...@ge.com] Sent: Wednesday, November 11, 2009 6:32 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] New Entry in Add/Remove Program when upgrade Hi, I would like to clarify my requirement again. I read thought the WiX Tutorial 4. And I hope I could develop one setup.msi, which could combine "Minior upgrades" and "New Install". In my scenario, if updage Version 3 to Version 1 in PathA, it should do the "Minor upgrades". It doesn't not change the ProductID. And it only changes the product version and some files, not totally remove all the last install. But if Version 3 installs to a new path, it can act as a new install. Is it possilbe to do this in one setup.msi? If it is not, I want to develop two msi, one is for new install, one is for update. And use an external executable to decide which msi is called. However, there are 90% content same in the NewInstall.msi and Update.msi. Is it possible to create a common part that these two msi can call it? Best regards, Chunyan -----Ursprüngliche Nachricht----- Von: Jiang, Chunyan (GE Healthcare) Gesendet: Mittwoch, 11. November 2009 11:24 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] New Entry in Add/Remove Program when upgrade Hi Blair, I would like to ask you if I want to realize my scenario, is it possible to write a custom action to realize removing Version 1? Here I set the main msi still as OnlyDetect="yes". But when select one install from the dialog (Version 1) to upgrade, do the removing verion 1 in the custom action. This custom action only does remove the selected version, don't do the Detect, therefore don't touch version 2. Is it possible? And how to realize it? Regards, Chunyan -----Ursprüngliche Nachricht----- Von: Jiang, Chunyan (GE Healthcare) Gesendet: Mittwoch, 11. November 2009 10:38 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] New Entry in Add/Remove Program when upgrade Hi Blair, Thank you for your explain. I still have some questions here. My requirement is to have multiple versions and also be able to upgrade some. In my last email, the Version 3 should be able to upgrade Version1. It means version 1 should be removed. And Version 2 is kept untouched. But now I set OnlyDetect="yes". When I install Version 3 to the path of Version 1, all these 3 versions stay in the system. And in the future, I want to show the installed software in the Listbox, and ask user to select which one to upgrade, there will be 3 items there, same as Add/Remove Program. It is confused. Version 2 has been upgraded (remove). It should not be shown there. Is it possible to realize my requirement? Best regards, Chunyan -----Ursprüngliche Nachricht----- Von: Blair [mailto:os...@live.com] Gesendet: Freitag, 6. November 2009 15:59 An: 'General discussion for Windows Installer XML toolset.' Betreff: Re: [WiX-users] New Entry in Add/Remove Program when upgrade You could try removing OnlyDetect="no" and adding a condition to the RemoveExistingProducts action. However, then version 3 in your scenario will remove both versions 1 and 2 (instead of just 1). Your requirement to leave multiple versions without forcing each to use a different path is the problem. It doesn't leave you with many options. -----Original Message----- From: Jiang, Chunyan (GE Healthcare) [mailto:chunyan.ji...@ge.com] Sent: Friday, November 06, 2009 1:59 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] New Entry in Add/Remove Program when upgrade Hi wix-users, I developed one setup msi. And I want it to be upgradable. The requirement is: 1. Version 1 install to PathA. (New Install) 2. Version 2 install to PathB. (New Install) 3. Version 3 install to PathA. (Upgrade) The setup meets the requairment. However, when I perform the above actions, there are 3 items in Add/Remove Program list. Version 1 and Version 3 are in the same path. Actually there are 2 installs, since version 3 just upgrades version 2. I consider the reason is that I set <UpgradeVersion OnlyDetect="yes" Property="PREVIOUSFOUND" ... Here Onlydetect = "yes". I know if I set OnlyDetect="No", then upgrade will replace the older version. And there is no old version item in Add/Remove Program list. But if I set OnlyDetect="No", when I perform second step (install Version 2 to PathB(New Install)), the system will check last install (Version 1 in PathA), and remove the files in PathA. I don't what to break install 1. Is there one way to resolve my problem? Regards Chunyan ---------------------------------------------------------------------------- -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users