I work on WiX-based installer for large product, we need to install 16 drivers (of 3 different types, so there is 3 installation patterns). Difx library is not flexible enough, so we have our own tool to install drivers. For each driver necessary to run this tool about 3 times (for example: remove phantom devices, install disk driver, remove root device), and some of these actions required rollback. So there are about 5 types of custom actions (install, uninstall, remove, reinstall, repair) with different parameters. Write ~50 custom actions for all drivers isn't a good decision, because it's very hard to support this code. What is the best solution to describe a complicated installation process?
I already tried the following decisions: - preprocessor cycles. Code becomes compact but very hard to understand. - compiler extension (to describe each type of custom actions). This is useful but still I can't write an installation pattern with it. - preprocessor extension. This seems to be the best solution (also using compiler extension). I wrote preprocessor functions like "InstallDriver(Inf=[#mpio.inf], RootDevice=MPIO, Execute=onInstall, Condition=$(var.InstallCondition))" and define the installation sequence in a variable: <?define Actions=InstallDriver(...);RemoveDevice(...);ReinstallDevice(...)?> then include a .wxi file with default parameters and required custom actions' definitions. But in these approach there is a problem with custom actions' names (where to define them? in function parameters isn't very clear, randomly like " CA_InstallDriver.mpio.9fdcd3f3e45e45e8944194884abf2708" also isn't good, because in every build custom actions will have different names...). - custom table and immediate custom action to add deferred custom actions for all drivers. It also seems good but it's hard to debug. Will be grateful for any suggestions. Thanks, Maks. ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users