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

Reply via email to