Dong Fang Xie (Excell Data Corporation)
2007-09-25 19:03:31 UTC
I'm working on a small and simple installer using WiX toolset (the latest stable version 2.0.3719.0). To my surprise, it is really very very tough !! It almost drove me crazy. I really don't understand why there are so many stupid limitations:
LIMIT 1:
Since FileSearch, DirectorySearch, RegistrySearch are WiX elements, Why there is no ProcessSearch or TaskSearch ?! I need to know whether a specific process is running before installation/uninstallation.
LIMIT 2:
If all files in a msi package are from different small projects, I can build a module for each small project, and create a main wxs file to merge all modules. It should be a good idea, but how can I use the files from different modules ? There is no way for now. I must control all custom actions in the main wxs file, and some custom actions need a FileKey to a file in a module. I cannot distribute all cutom actions in different modules, if I do so, how can I control the InstallSequence ? Using stupid numbers?
LIMIT 3:
I defined a dialog which must be shown not only during installation but also during uninstallation. But how to make it shown during uninstallation ? the UILevel will be set to basic UI or no UI automatically by msiexec.exe. How can I beg Windows NOT do that for me? I can use command "msiexec /qf /x msifile", but how can I know my customer can do that each time they want to uninstall the msi file ? Is there any way I can define UILevel of uninstallation inside msi file ?
WiX is a very good toolset, but far from perfect ! I bet the developers of WiX toolset have never built a powerful installer for customers. I will never know the limit if I wasn't assigned the job to build a small and simple installer.
I noticed that there are some extensions in WiX 3.0, but it is still far from enough.
For LIMIT 1, I've built my own dll to detect running processes. But how to break LIMIT 2 and LIMIT 3 ? Can you guys give me some ideas ?
Thanks in advance
LIMIT 1:
Since FileSearch, DirectorySearch, RegistrySearch are WiX elements, Why there is no ProcessSearch or TaskSearch ?! I need to know whether a specific process is running before installation/uninstallation.
LIMIT 2:
If all files in a msi package are from different small projects, I can build a module for each small project, and create a main wxs file to merge all modules. It should be a good idea, but how can I use the files from different modules ? There is no way for now. I must control all custom actions in the main wxs file, and some custom actions need a FileKey to a file in a module. I cannot distribute all cutom actions in different modules, if I do so, how can I control the InstallSequence ? Using stupid numbers?
LIMIT 3:
I defined a dialog which must be shown not only during installation but also during uninstallation. But how to make it shown during uninstallation ? the UILevel will be set to basic UI or no UI automatically by msiexec.exe. How can I beg Windows NOT do that for me? I can use command "msiexec /qf /x msifile", but how can I know my customer can do that each time they want to uninstall the msi file ? Is there any way I can define UILevel of uninstallation inside msi file ?
WiX is a very good toolset, but far from perfect ! I bet the developers of WiX toolset have never built a powerful installer for customers. I will never know the limit if I wasn't assigned the job to build a small and simple installer.
I noticed that there are some extensions in WiX 3.0, but it is still far from enough.
For LIMIT 1, I've built my own dll to detect running processes. But how to break LIMIT 2 and LIMIT 3 ? Can you guys give me some ideas ?
Thanks in advance