Re: [WiX-users] Question: Migrating Existing Installer to WindowsInstaller

2006-07-29 Thread Derek Cicerone








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

2006-07-29 Thread Joe Kaplan
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

2006-07-28 Thread Rick Glos








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