Windows Installer Editor Reference
14
Spacing Dialog Controls Evenly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Setting Dialog Tab Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
About Billboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Adding Billboards to a Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Obtaining Logon Information From a Dialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Adding the Logon Information Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
About the SQL Connection Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Adding the SQL Connection Dialog to an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Editing Additional SQL Connection Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Adding the Custom Property Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Chapter 18: Macro Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
About the Macro Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
About Macro Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Creating, Editing, and Running a Macro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Events That Can Trigger a Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
About the Macro Editor Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Chapter 19: Debugger for Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
About the Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
The Debugger Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Running the Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Setting Properties and Applying Transforms in the Debugger . . . . . . . . . . . . . . . . . . . . . . . . 438
Setting and Clearing Debugger Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Evaluating Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Working With Temporary Tables and Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Searching For Text in Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Chapter 20: Using MSI Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
About MSI Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
The MSI Script Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
About Installation Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Adding a Custom Action Outside a Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Adding a Custom Action to Multiple Sequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
About Installation Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Finding Text in MSI Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Editing Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Types of Actions in MSI Script Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
About the Standard and Custom Tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Adding and Editing Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Commenting Out Script Lines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Calling WiseScripts with Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Examples of WiseScripts You Run From an .MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Using a WiseScript to Parse a Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Using a WiseScript to Install a License File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Uninstalling Changes Made by a WiseScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Troubleshooting: When WiseScript Custom Actions Fail on Windows Vista or later . . . . . . . . . 452
Guidelines for Using Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Guidelines for Custom Action Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Guidelines for Custom Action Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Guidelines for Nested Installation Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Guidelines for Calling VBScripts and JScripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Guidelines for Calling .DLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Launching a Custom Action from a Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458