User Guide
12
WRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
WRows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
WTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
WTables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Visual Basic Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
21 Debugger for Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . 481
About the Debugger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
The Debugger Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Running the Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Setting and Clearing Debugger Breakpoints. . . . . . . . . . . . . . . . . . . . . . . . 484
Evaluating Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Working With Temporary Tables and Columns . . . . . . . . . . . . . . . . . . . . . . 485
Searching For Text in Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
22 Using MSI Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
The MSI Script Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
About MSI Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
About Installation Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
About Installation Sequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Finding Text in MSI Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
Editing Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Types of Actions in MSI Script Sequences . . . . . . . . . . . . . . . . . . . . . . . . . 492
About the Standard and Custom Tabs. . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Adding and Editing Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Commenting Out Script Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Calling WiseScripts with Custom Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
WiseScript Editing Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Examples of WiseScripts You Run From an .MSI. . . . . . . . . . . . . . . . . . . . . 495
Guidelines for Using Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Guidelines for Custom Action Location . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Guidelines for Custom Action Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Guidelines for Nested Installation Custom Actions . . . . . . . . . . . . . . . . . . . 501
Guidelines for Calling VBScripts and JScripts . . . . . . . . . . . . . . . . . . . . . . . 502
Guidelines for Calling .DLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Launching a Custom Action from a Dialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Custom Actions That Are Added Automatically . . . . . . . . . . . . . . . . . . . . . . . . 505
Troubleshooting Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
23 Custom Action Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Call Custom DLL From Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Call Custom DLL From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Call Custom DLL From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Configuring .DLL Parameter Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Call DLL From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Call DLL From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Call JScript From Embedded Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Call JScript From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Call JScript From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Call JScript From Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514