Based on the information provided below, you’ll likely want to look into using the WixIIsExtension, WixSQLExtension, and WixUtilExtension (for some additional service configuration and xml manipulation custom actions).

You’ll need to decide to use either WiX 2.0 or 3.0.  We’re currently only encouraging adoption of 3.0 for groups shipping in 2007 or later.  This is because 3.0 is under active development and you’ll avoid the intermediate bugs and schema changes associated with that if you stick with 2.0.

If you use WiX 3.0, you’ll 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 – it’s 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 you’ll 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:

  1. I’ve been told we usually release on a quarterly cycle although that isn’t 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 there’s got to be a better way than this spaghetti, procedural code.)  Our next release is targeted for end of November ‘06.
  2. 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.
  3. I’ve 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 doesn’t use installer classes yet although I’m thinking that perhaps it should but I’m 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 they’ve 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 they’d 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 I’m 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!

There’s some information that can help guide our answers for you:

  1. When does your product ship?
  2. What is your product (just curious)?  More specifically, what does it interact with (COM, services, MSMQ, IIS, SQL, etc…)?
  3. 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:

I’m not sure how the upgrade story would work – it all depends on how you currently handle uninstall and upgrade scenarios.  Is there something you’d 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,

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.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to