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

Reply via email to