Re: [WiX-users] Question: Migrating Existing Installer to WindowsInstaller
Based on the information provided below, youll likely want to look into using the WixIIsExtension, WixSQLExtension, and WixUtilExtension (for some additional service configuration and xml manipulation custom actions). Youll need to decide to use either WiX 2.0 or 3.0. Were currently only encouraging adoption of 3.0 for groups shipping in 2007 or later. This is because 3.0 is under active development and youll avoid the intermediate bugs and schema changes associated with that if you stick with 2.0. If you use WiX 3.0, youll get some help with creating the initial installation by using a tool called heat.exe. It can create WiX authoring from type libraries, self-reg dlls, directories, web sites (partial support no app pools yet), and assembly RegistrationServices. A tool in WiX 2.0 performs similar functions its called tallow.exe. It does not support type libraries or web sites (it was the predecessor to heat). There has been a bit of a debate raging here lately about the Installer classes. WiX and MSI actually have no formal interaction with the installer classes and the WiX team advises against using them because they do not provide a complete rollback experience in the case of installation failures. Full disclosure however: there are some people that prefer them because they are easy, but youll often find that going the easy route in setup is a bit more dangerous (as is the case here). Ideally we need to add some additional logic to heat.exe to convert Installer operations into simple Registry and File operations since that is the most robust and declarative installation method possible with MSI. Your plan for the upgrade sounds good. You would likely need some sort of executable bootstrapper to save off the config settings, perform the uninstall, and install the new MSI file. Derek From: Rick Glos [mailto:[EMAIL PROTECTED] Sent: Friday, July 28, 2006 10:41 AM To: [EMAIL PROTECTED]; wix-users@lists.sourceforge.net; [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: RE: [WiX-users] Question: Migrating Existing Installer to WindowsInstaller First off. Thanks for the warm welcome. Second. Thanks for the quick response and ideas by all three of you (Derek, Richard, and Bob). Answers to your questions Derek: Ive been told we usually release on a quarterly cycle although that isnt set in stone (I just started working here in Feb 06 and assisted with the release in Mar 06. Then rolled the Jul 06 release myself the complexity and difficulty is what led me to WiX, knowing that theres got to be a better way than this spaghetti, procedural code.) Our next release is targeted for end of November 06. Our product is a help desk/support, task, and issue tracking solution. The Visual Studio solution file actually consists of 14 projects (any code is C# fyi). We install 2 services, 4 libraries, 3 websites and 4 sql server databases (as well as a couple unit test and database projects). We interact with SQL, IIS, and Services. Ive done some investigation into the System.Configuration.Installer classes and it looked promising. Not sure how that integrates with WiX though (?). Our current installer is basically a custom rolled C# Windows Application that looks like an installer. Using a wizard like interface, it prompts the user for a series of configuration values (virtual directory names, user name, password, sql server name, etc) and then runs an install or upgrade method to do the work. It has to do things like create/upgrade SQL databases, install aspx files, configure IIS (create an app pool, create 3 virtual directories), it also creates a user account (to run the app pool under), joins it to a group, modifies the permissions on some files and folders, installs and starts 2 services, modifies the web.config to store and encrypt connection strings and so on... J [I know you mentioned in your article that you are interested in this stuff]. It doesnt use installer classes yet although Im thinking that perhaps it should but Im not sure I understand how that integrates with the Windows Installer. Sorry this paragraph is so long. Based on what the 3 of you have said, it sounds like perhaps what I should consider for the upgrade is save off the current settings/data (web.config, sql databases, and any custom files theyve added to the web sites) then perform an uninstall. Then let the windows installer do an install and then restore those settings/data and then theyd be go to go for future upgrades using the windows installer. Does this sound reasonable? Would I be able to do this within the context of the windows installer (msi)? Or would I have our customers run a Setting Saver app. Run the uninstall app. Then run the new windows installer (msi) and then run a Setting Restorer app. That seems like a lot of steps but Im thinking aloud
Re: [WiX-users] Question: Migrating Existing Installer to WindowsInstaller
I used a similar approach to deal with migration of an app that was originally built with non-MSI WISE and then did the same basic thing again when my first MSI version was (mistakenly) installed per-user instead of per-machine. AppSearch for traces of the old stuff and LaunchCondition that prevents install until the old stuff is gone. Sad (especially the per-user goof!), but basically functional. Joe K. - Original Message - From: Rob Hamflett [EMAIL PROTECTED] To: wix-users@lists.sourceforge.net Sent: Friday, July 28, 2006 3:24 AM Subject: Re: [WiX-users] Question: Migrating Existing Installer to WindowsInstaller When we moved over to MSI we had to deal with existing InstallShield installs. I got round the problem by looking in the registry for the key InstallShield writes under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall using a RegistrySearch. I then used the set property as the condition for a custom error telling the user to uninstall the existing version. This might seem crude, but it does the job and each customer only has to do it once. Rob Rick Glos wrote: Hello, I’ve spent the last two days getting familiar with WiX, the windows installer, and going through the great tutorial on WiX (http://www.tramontana.co.hu/wix/). I especially liked the article posted a year ago (http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en-us/dnwingen/html/wixsetup.asp) that talks about doing the installer during the development cycle and not at the end of it. We are badly in need of doing this. I have a question however. How do we migrate from our current installer to the Windows Installer for existing customers? We just released version 5.0 of our product. Spending 6 weeks updating our installer (we have a custom C# installer). I can see our *new* customers instead using a new .msi for later versions (5.5, 6.0, etc). What do I do about our existing customers when they wish to upgrade? They’ve never installed originally with a Windows Installer. How do I get them on the same track? Thanks for any advice, Rick Glos - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Question: Migrating Existing Installer to WindowsInstaller
First off. Thanks for the warm welcome. Second. Thanks for the quick response and ideas by all three of you (Derek, Richard, and Bob). Answers to your questions Derek: Ive been told we usually release on a quarterly cycle although that isnt set in stone (I just started working here in Feb 06 and assisted with the release in Mar 06. Then rolled the Jul 06 release myself the complexity and difficulty is what led me to WiX, knowing that theres got to be a better way than this spaghetti, procedural code.) Our next release is targeted for end of November 06. Our product is a help desk/support, task, and issue tracking solution. The Visual Studio solution file actually consists of 14 projects (any code is C# fyi). We install 2 services, 4 libraries, 3 websites and 4 sql server databases (as well as a couple unit test and database projects). We interact with SQL, IIS, and Services. Ive done some investigation into the System.Configuration.Installer classes and it looked promising. Not sure how that integrates with WiX though (?). Our current installer is basically a custom rolled C# Windows Application that looks like an installer. Using a wizard like interface, it prompts the user for a series of configuration values (virtual directory names, user name, password, sql server name, etc) and then runs an install or upgrade method to do the work. It has to do things like create/upgrade SQL databases, install aspx files, configure IIS (create an app pool, create 3 virtual directories), it also creates a user account (to run the app pool under), joins it to a group, modifies the permissions on some files and folders, installs and starts 2 services, modifies the web.config to store and encrypt connection strings and so on... J [I know you mentioned in your article that you are interested in this stuff]. It doesnt use installer classes yet although Im thinking that perhaps it should but Im not sure I understand how that integrates with the Windows Installer. Sorry this paragraph is so long. Based on what the 3 of you have said, it sounds like perhaps what I should consider for the upgrade is save off the current settings/data (web.config, sql databases, and any custom files theyve added to the web sites) then perform an uninstall. Then let the windows installer do an install and then restore those settings/data and then theyd be go to go for future upgrades using the windows installer. Does this sound reasonable? Would I be able to do this within the context of the windows installer (msi)? Or would I have our customers run a Setting Saver app. Run the uninstall app. Then run the new windows installer (msi) and then run a Setting Restorer app. That seems like a lot of steps but Im thinking aloud here. Perhaps this could all be handled within the context of the msi. Anyway. Thanks for reading this far if you made it and thanks for the advice. Hope to keep the discussion going. Rick From: Derek Cicerone [mailto:[EMAIL PROTECTED] Sent: Thursday, July 27, 2006 11:52 PM To: Rick Glos; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] Question: Migrating Existing Installer to WindowsInstaller First off, welcome! Theres some information that can help guide our answers for you: When does your product ship? What is your product (just curious)? More specifically, what does it interact with (COM, services, MSMQ, IIS, SQL, etc)? How does the C# installer install things? Does it use the Installer classes or manually set registry keys and copy files? To answer some of your questions: Im not sure how the upgrade story would work it all depends on how you currently handle uninstall and upgrade scenarios. Is there something youd need to run to perform an uninstall on the previous version (would it be managed code)? Once you get all customers on an MSI deployed setup it should be easy to have them all use the same technology after that point. Thanks, Derek From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rick Glos Sent: Thursday, July 27, 2006 12:09 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Question: Migrating Existing Installer to WindowsInstaller Hello, Ive spent the last two days getting familiar with WiX, the windows installer, and going through the great tutorial on WiX (http://www.tramontana.co.hu/wix/). I especially liked the article posted a year ago (http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en-us/dnwingen/html/wixsetup.asp) that talks about doing the installer during the development cycle and not at the end of it. We are badly in need of doing this. I have a question however. How do we migrate from our current installer to the Windows Installer for existing customers? We just released version 5.0 of our product. Spending 6 weeks