1) This isn't a limitation of Visual Studio or WiX. This is a limitation with 
Windows Installer. You'll need to have two MSI packages. A bootstrapper might 
help you consolidate them so that it appears like one installer.

2) These sound like Features in Windows Installer parlance. As you organize 
Components and ComponentGroups you'll want to ultimately have only two root 
Features that aggregate the components correctly.

3) Windows Installer (and thus WiX) has shortcut support.

4) Windows Installer (and thus Wix) supports this too.

5) You should be able to author a CustomAction to do this, but it sounds like 
you want to restart Explorer.exe and that seems dangerous to me.

6) The Restart Manager should help here but I don't know much about how it 
works.

7) You should have per-user configuration files stored in the users profile. 
You can then do what all other installers do and leave them there. If the user 
reinstalls they'll have all their old configuration files available and ready 
to use. The %ProgramFiles% filesystem is supposed to be readonly so you don't 
want user-modifiable configuration files there.

8) Make sure to author any CustomActions that need to modify the system between 
InstallInitialize and InstallFinalize in the InstallExecuteSequence with the 
appropriate impersonation requirements.

9) WiX has Visual Studio integration. Automating some of the bits that it 
doesn't do automatically is not difficult if you learn/understand MSBuild.

10) Author your installer as a MajorUpgrade and include the previous 
UpgradeCode as one of the UpgradeCodes to upgrade. You might consider to 
continue using the old UpgradeCode in the new installer.

In summary, you should be able to do most of everything you want to do. Some of 
your requirements are just not supported by Windows Installer so you'll need to 
change the requirement.

Edwin G. Castro
Software Developer - Staff
Electronic Banking Services
Fiserv
Office: 503-746-0643
Fax: 503-617-0291
www.fiserv.com
Please consider the environment before printing this e-mail


> -----Original Message-----
> From: Ivo Beltchev [mailto:i...@roadrunner.com]
> Sent: Friday, June 18, 2010 9:46 AM
> To: wix-users@lists.sourceforge.net
> Subject: [WiX-users] Can this be done with WiX?
> 
> Hi
> 
> My name is Ivo Beltchev. I am working on the open source project Classic
> Shell: http://classicshell.sourceforge.net/
> Currently I use a Visual Studio setup project to create my installer,
> but I'm hitting some of its limitations and I'm looking for a better
> solution.
> 
> Here's what I need, please tell me which are possible with WiX:
> 
> 1) I need a single EXE that can be installed on both 32-bit and 64-bit
> platforms (Vista and Windows 7). Most of the files (art assets, help
> files) are common between platforms. There are 32-bit and 64-bit
> executables, which need to register themselves in the registry
> (self-registered COM). There are some registry keys, which need to be
> set correctly (bypass the 32-bit redirection on 64-bit systems). I am
> told that (at least with Visual Studio) it is not possible to have a
> single MSI file that targets 32-bit and 64-bit platforms. I think the
> problem was that you can't run the 64-bit MSI on 32-bit OS, but a 32-bit
> MSI can't contain 64-bit modules. Can WiX do this in a single package?
> 
> 2) I have 2 components. With few exceptions, every installed file
> belongs to one component or the other. I want to provide UI options for
> selecting the components to install, as well as command line options for
> silent install. I also want an option to specify the install folder,
> ideally with a command line option support too.
> 
> 3) I want to create a shortcut in Program Files to one of the installed
> EXEs and set its command line arguments. The shortcut needs to be
> created by the installer dynamically because it depends on the install
> folder.
> 
> 4) When the installer runs a second time I want to give the user the
> options to: Remove All, Add/Remove Components, and Repair.
> 
> 5) As the last step of the install process I want to launch an
> executable, but I want to launch it as the currently logged-in user, not
> as SYSTEM. (Looks like msiexec runs as SYSTEM, so any child process is
> SYSTEM by default).
> 
> 6) Since some components are shell extensions, it would be nice if the
> Explorer processes are killed and restarted during uninstall. Again,
> Explorer must be restarted as the current user, not as SYSTEM. Some
> other applications that use the shell can also load my DLLs, so it will
> be nice if the uninstaller at least shows a list of affected processes
> to the user and lets him close those apps.
> 
> 7) There are some ini files, which the user can modify. During uninstall
> or upgrade I want to present the option to rename the files to ini.bak
> so the user modifications are not lost. Ideally the uninstaller can
> recognize which files are modified (by comparing the timestamp with the
> original). Less ideally the uninstaller renames all ini files. Least
> ideal, the uninstaller runs a separate executable that does the work.
> The uninstaller should provide the EXE with the installation path (like
> C:\Program Files\Classic Shell).
> 
> 8) Of course the installer must work correctly with different levels of UAC.
> 
> 9) Ideally the build process will be integrated into Visual Studio.
> 
> 10) Ideally the installer will recognize the previously installed
> version (done with the older Visual Studio setup project) and will
> uninstall it first.
> 
> 
> Before I start going deeper into WiX, can somebody please tell me which
> of my requirements are possible? If there are some things that WiX can't
> do, but another free installer can, please point me to that other tool.
> 
> Thanks
> Ivo Beltchev
> Classic Shell
> 
> 
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit.  See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to