Symantec WINDOWS INSTALLER EDITOR 8.0, WINDOWS INSTALLER EDITOR 8.0 - REFERENCE FOR WISE PACKAGE STUDIO V1.0 Reference

Windows Installer Editor Reference
Windows Installer Editor
The software described in this book is furnished under a license agreement and may be used only in accordance with the terms of the agreement.
Documentation version 8.0
Copyright © 2009 Symantec Corporation. All rights reserved. Symantec, the Symantec Logo, and Altiris are trademarks or registered trademarks of Symantec Corporation or its affiliates in the U.S. and
other countries. Other names may be trademarks of t heir respective owners. The product described in this document is distributed under licenses restricting its use, copying, distribution, and decompilation/reverse
engineering. No part of this document may be reproduced in any form by any means without prior written authorization of Symantec Corporation and its licensors, if any.
THE DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE E XTENT THAT SUCH DISCLAIMERS ARE HELD T O BE LEGALLY INV ALID . SYMANTE C CORPORATION SHALL NOT BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS DOCUMENTATION. THE INFORMATION CONTAINED IN THIS DOCUMENTATION IS SUBJECT TO CHANGE WITHOUT NOTICE.
The Licensed Software and Documentation are deemed to be commercial computer software as defined in FAR 12.212 and subject to restricted rights as defined in FAR Section 52.227-19 “Commercial Computer Software - Restricted Rights” and DFARS 227.7202, “Rights in Commercial Computer Software or Commercial Computer Software Documentation”, as applicable, and any successor regulations. Any use, modification, reproduction release, performance, display or disclosure of the Licensed Software and Documentation by the U.S. Government shall be solely in accordance with the terms of this Agreement.
Symantec Corporation 350 Ellis Street Mountain View, CA 94043
http://www.symantec.com
Windows Installer Editor Reference 2
Technical Support
Symantec Technical Support maintains support centers globally. Technical Support’s primary role is to respond to specific queries about product features and functionality. The Technical Support group also creates content for our online Knowledge Base. The Technical Support group works collaboratively with the other functional areas within Symantec to answer your questions in a timely fashion. For example, the Technical Support group works with Product Engineering and Symantec Security Response to provide alerting services and virus definition updates.
Symantec’s maintenance offerings include the following:
z A range of support options that give you the flexibility to select the right amount of
service for any size organization
z Telephone and Web-based support that provides rapid response and up-to-the-
minute information
z Upgrade assurance that delivers automatic software upgrade protection z Advanced features, including Account Management Services
For information about Symantec’s Maintenance Programs, you can visit our Web site at the following URL:
www.symantec.com/techsupp/
Contacting Technical Support
Customers with a current maintenance agreement may access Technical Support information at the following URL:
www.symantec.com/techsupp/
Before contacting Technical Support, make sure you have satisfied the system requirements that are listed in your product documentation. Also, you should be at the computer on which the problem occurred, in case it is necessary to replicate the problem.
When you contact Technical Support, please have the following information available:
z Product release level z Hardware information z Available memory, disk space, and NIC information z Operating system z Version and patch level z Network topology z Router, gateway, and IP address informa tion z Problem description:
Error messages and log files Troubleshooting that was performed before contacting Symantec Recent software configuration changes and network changes
Windows Installer Editor Reference 3
Licensing and registration
If your Symantec product requires registration or a license key, access our technical support Web page at the following URL:
www.symantec.com/techsupp/
Customer service
Customer service information is available at the following URL:
www.symantec.com/techsupp/
Customer Service is available to assist with the following types of issues:
z Questions regarding product licensing or serialization z Product registration updates, such as address or name changes z General product information (features, language availability, local dealers) z Latest information about product updates and upgrades z Information about upgrade assurance and maintenance contracts z Information about the Symantec Buying Programs z Advice about Symantec’s technical support options z Nontechnical presales questions z Issues that are related to CD-ROMs or manuals
Maintenance agreement resources
If you want to contact Symantec regarding an existing maintenance agreement, please contact the maintenance agreement administration team for your region as follows:
Asia-Pacific and Japan customercare_apac@symantec.com Europe, Middle-East, and Africa semea@symantec.com North America and Latin America supportsolutions@symantec.com
Additional enterprise services
Symantec offers a comprehensive set of services that allow you to maximize your investment in Symantec products and to develop your knowledge, expertise, and global insight, which enable you to manage your business risks proactively.
Enterprise services that are available include the following:
Symantec Early Warning Solutions
Managed Security Services
These solutions provide early warning of cyber attacks, comprehensive threat analysis, and countermeasures to prevent attacks before they occur.
These services remove the burden of managing and monitoring security devices and events, ensuring rapid response to real threats.
Windows Installer Editor Reference 4
Consulting Services
Educational Services
To access more information about Enterprise services, please visit our Web site at the following URL:
www.symantec.com
Select your country or language from the site index.
Symantec Consulting Services provide on-site technical expertise from Symantec and its trusted partners. Symantec Consulting Services offer a variety of prepackaged and customizable options that include assessment, design, implementation, monitoring, and management capabilities. Each is focused on establishing and maintaining the integrity and availability of your IT resources.
Educational Services provide a full array of technical training, security education, security certification, and awareness communication programs.
Windows Installer Editor Reference 5
Contents
Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Chapter 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
About Windows Installer Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Starting the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
The Product Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Using Installation Expert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
About Page Views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Customizing Page Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Using the Current Feature Drop-Down List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Using the Current Release Drop-Down List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Using the Task List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Filtering the Task List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Finding Table Errors From the Task List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Adding User-Defined Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Generating Shared Resource Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Installation Resources and Their Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Generating Package Contents Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Downloading Redistributable Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Downloading Redistributables From the Wise Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Downloading Redistributables From Other Vendors’ Web Sites. . . . . . . . . . . . . . . . . . . . . . . . 31
Product Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Chapter 2: Setting Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
How you can set up Windows Installer Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Setting Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Setting General Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Setting .NET Assembly Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Setting Advertising Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Setting Digital Signature Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
About ExpressBuild. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Setting ExpressBuild Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
How ExpressBuild Groups Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Requirements for Using ExpressBuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Setting Installation Expert Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Setting Merge Module Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Activating Suppressed Prompts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Setting Repository Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Setting Source Control Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Setting Wildcard Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Creating and Editing Installation Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Component Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
About Component Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Selecting a Component Rule Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Using Component Rules to Align GUIDs in an Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Customizing Component Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Adding and Editing Component Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Microsoft Best Practices Component Rule Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Windows Installer Editor Reference 6
One File Per Component Rule Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Chapter 3: Working With Wise Installation Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Before You Create an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
File Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Project Files and Database Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Target Platforms: 32-bit and 64-bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
How to Specify the Target Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
What’s Different in a 64-bit Installation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
32-bit Applications on 64-bit Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Guidelines for Creating Platform-Specific Installations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Creating Multiple, Platform-Specific Installations from One Project File . . . . . . . . . . . . . . . . . . 67
Defining the INSTALLDIR Property in a Mixed-Platform Installation. . . . . . . . . . . . . . . . . . 69
Starting a New Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
About Standard User Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Creating an Installation for Standard Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Creating a Device Driver Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Options for New Installations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Opening an Installation Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Comparing Windows Installer Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Saving an Installation as XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Working With Installations in the Software Manager Database. . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Compiling An Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Testing and Running An Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Testing An Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Running An Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Chapter 4: Defining an Installation Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Project Summary Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Product Details Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Adding Meta Data to the Software Manager Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Incrementing the Product Version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Setting the Default Installation Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
General Information Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Add/Remove Programs Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Features Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Strategies for Organizing Files Into Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Adding a New Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Configuring a Feature Using Its Drop-Down List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Configuring a Feature Using the Feature Details Dialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Using Conditions With Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Adding and Deleting Feature Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Managing Binary Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Adding Binary Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Refreshing Binary Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Chapter 5: Assembling an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Files or Web Files Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
When to Use the File-Related Installation Expert Pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Installation Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Files or Web Files Page Icons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Adding Files to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Adding Merge Modules Instead of Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Adding Files From the Wise Software Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Windows Installer Editor Reference 7
Adding Contents of Directories to the Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Adding .NET Assemblies to the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
How Assembly Dependencies are Added to an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . 116
Assembly Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
About Dependency Scan Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
About the Global Dependency Exclusion List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Editing Settings for Automatic Updating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Removing a File From the Destination Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Copying and Moving Files on the Destination Computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Editing File Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Editing General File Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Setting Permissions for Files and Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Editing Self-Registration Settings for Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Editing Assembly Settings for Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Creating a Win32 Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Viewing Shared File Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Editing XML Files During Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Editing DIFxApp Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
How Self-Registration Information is Captured. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Using WiseComCapture.exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Resolving File Conflicts Within Windows Installer Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Resolving Conflicts With Rules in Windows Installer Editor. . . . . . . . . . . . . . . . . . . . . . . . . . 135
Resolving Conflicts Individually in Windows Installer Editor . . . . . . . . . . . . . . . . . . . . . . . . . 136
Registry Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Adding Registry Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Removing Registry Entries From the Destination Computer . . . . . . . . . . . . . . . . . . . . . . . . . 142
Importing and Exporting Registry Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Configuring General Registry Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Setting Permissions for Registry Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Viewing Shared Registry Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Special Registry Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
INI Files Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Creating and Editing .INI Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Shortcuts Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Adding a Shortcut to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Editing a Shortcut Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Adding an Environment Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Adding File Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Determining Extension Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Adding Command Verbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Selecting MIME Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Services Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Adding a Service to the Destination Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Controlling Services on the Destination Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Adding an ODBC Item. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Setting ODBC Data Source Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Setting ODBC Driver Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Setting ODBC Translator Details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Adding to the Windows Firewall Exception List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Chapter 6: Your Installation on the Destination Computer . . . . . . . . . . . . . . . . . . . . . 165
About System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Setting a Requirement on the System Requirements Page. . . . . . . . . . . . . . . . . . . . . . . . . . 165
Setting a System Requirement for Server Roles and Services . . . . . . . . . . . . . . . . . . . . . . . 167
Windows Installer Editor Reference 8
Adding Roles and Services to the Server Roles and Services Dialog Box . . . . . . . . . . . . . . . . 168
Setting a Requirement by Creating a Launch Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Performing a System Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Searching For Files or Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Searching For Items in .INI Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Searching For a Registry Value. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Searching For a Previously-Installed Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Setting Version-Specific Windows Installer Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
About UAC Elevation of Windows Installer Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
About UAC Elevation of an Entire Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Setting Features for Installation Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Chapter 7: Organizing Your Installation Into Releases . . . . . . . . . . . . . . . . . . . . . . . . 184
About Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Creating a New Release. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Outputting a Multiple-Language Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Customizing a Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Customizing Properties for a Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Customizing Summary Items for a Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Defining a Feature and Component Set for a Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Sharing Settings Between Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Example: Creating an Evaluation Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Setting Build Options for a Release. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
About the Installation of an .MSI into an SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
About the Exclusion of Files on the Build Options Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
About Maintenance of an .MSI Installed into an SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . 197
Adding Prerequisites to a Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Adding a Windows Installer or .NET Framework Runtime. . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Adding a Prerequisite File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Adding a Runtime Prerequisite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Editing the WiseScript That Creates the Installation .EXE . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Creating Web-Based Installations With WebDeploy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
The WebDeploy Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Tips for Creating an Efficient WebDeploy Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Creating a WebDeploy Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Uploading a WebDeploy Installation to the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Setting Up Media for Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Adding a Media Item. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Adding a Media Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Including Features and Components in Media Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Sharing Media Settings Between Releases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Example: Spanning an Installation Across Media and Sharing Media Size Information. . . . . . . 215
Chapter 8: Advanced Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
About the Mobile Devices Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Process for Adding Mobile Device Support to an Installation . . . . . . . . . . . . . . . . . . . . . . . . 219
About Windows Mobile Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Adding Windows Mobile Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
About Palm OS Installations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Adding Palm OS Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Setting Administrator Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Specifying Search Locations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Setting Options for an Administrative Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
About Command Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Windows Installer Editor Reference 9
Creating a Command Line To Apply to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Applying UI Options to an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Applying Logging Options to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Applying an Advertising Option to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Applying a Repair Option to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Changing Public Properties in an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Applying Transforms to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Applying or Removing Patches With a Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Command Line Options For WFWI.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
WFWI.EXE Command Line Option Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Automating the Build Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Adding a Digital Signature to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Creating an Installation for Microsoft SMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Creating a .NET Installation When You Have the .NET Framework . . . . . . . . . . . . . . . . . . . . . . . 242
Creating a .NET Installation Without the .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
About Web Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Features That Support Web Installations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Creating a Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Creating a Virtual Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Creating a New Web Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Setting Installation Options for a Web Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Setting Installation Options for a Child Virtual Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
About the Web Site Details Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Installing Web Settings From a File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Configuring a Microsoft SQL Server During Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Tips for Using the SQL Server Scripts Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Setting SQL Connection Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Specifying SQL Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Specifying Replacements in SQL Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Importing .NET Framework Security Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
MTS/COM+ Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Adding an MTS or COM+ Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Chapter 9: Translating an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
About the Languages Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Creating a Translated .MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Creating a Language Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Sharing Language Settings Between Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Removing a Language from an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Defining and Translating Into Additional Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
About the New Language Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Defining a New Language and Exporting All Text for Translation . . . . . . . . . . . . . . . . . . . . . 274
Importing All Text Strings After Translation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Importing All Text Strings With the New Language Wizard . . . . . . . . . . . . . . . . . . . . . . . . . 276
Translating Text Strings You Have Added or Changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Translating Text Strings by Exporting to a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Exporting Selected Text Strings to a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Importing Selected Text Strings From a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Translating Text Directly Without Exporting It . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Translating Text on the Language Strings Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Changing Text in Installation Expert and Setup Editor. . . . . . . . . . . . . . . . . . . . . . . . . . 282
Resizing Dialog Controls After Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
About the Language Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Changing the Default Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Windows Installer Editor Reference 10
About the Default Release Language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
About the Language Strings Dialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Keeping Track of Changed Text Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
What Pre-Translated Languages Are Available?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Language IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Chapter 10: Distributing an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Package Distribution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
WiseUpdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
The WiseUpdate Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Using WiseUpdate in an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Configuring the WiseUpdate Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
About the WiseUpdate Update File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Customizing the WiseUpdate Dialog Boxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Uploading WiseUpdate Files With an FTP Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Testing WiseUpdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Options for Running WiseUpdate Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
WiseUpdate Tips. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Troubleshooting WiseUpdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Chapter 11: Upgrading Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
About Upgrading Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Preparing for Software Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Archive the Shipping Version of the .MSI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Determine the Form of the Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Determine the Product Code and Product Version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Check the Installation With UpgradeSync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
UpgradeSync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Patch Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Upgrades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Creating an Upgrade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Chapter 12: Working With Source Paths. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
About source paths. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Using Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Adding an Installation to Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Adding Files to an Installation in Source Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Checking Files Into Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Checking Files Out from Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Getting Latest Version of Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Removing Files from Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Undoing the Check Out of Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Showing History of the Installation File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Showing the Differences Between Installation Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Comparing the Current Installation to the Latest in Source Control. . . . . . . . . . . . . . . . . . . . 314
About Path Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Turning Path Variable Substitution On and Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Creating a User-Defined Path Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Creating a Path Variable Based on an Environment Variable . . . . . . . . . . . . . . . . . . . . . . . . 317
Creating a Path Variable Based on a Registry Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Source Paths in an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Changing Source Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Converting to Relative Source File Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Converting to UNC-Based Source File Paths. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Windows Installer Editor Reference 11
Changing the Source Directory Dynamically During Compile . . . . . . . . . . . . . . . . . . . . . . . . 321
Chapter 13: Merge Modules and Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
About Merge Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Available Tabs and Pages in Merge Modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Setting Merge Module Details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Setting Dependencies for a Merge Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Setting Exclusions for a Merge Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Creating a Merge Module As a New Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Creating a Merge Module From Existing Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Creating a Configurable Merge Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Setting Configuration Item Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Specifying Drop-Down List Values for Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Specifying a Bitfield for Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Specifying a Key for Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Example: Configuring an Item for a Merge Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
About the Merge Modules Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Adding a Merge Module to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Editing Merge Module Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
About Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Creating a Transform Based on an Existing .MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Setting Transform Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Creating a Universal Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Applying a Transform to an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Multiple Instance Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Installing Multiple Instances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Chapter 14: Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 9
About Windows Installer Editor tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
ApplicationWatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Convert SMS Installer or WiseScript Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Converting an SMS Installer or WiseScript Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Import Visual Studio Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Importing an Installation From a Visual Studio Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Removing Dependencies from the Project Dependency Exclusion List . . . . . . . . . . . . . . . . . . . . . 355
Manage Assembly Exclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
MSI to WSI Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Converting an .MSI to a .WSI File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Specifying Merge Module Source Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Specifying File Source Directories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Package Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Removing Files With Missing or Invalid Source Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Chapter 15: Setup Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
About Setup Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Product Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Specifying Summary Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Features Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Assigning a Component to a Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Modules Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Advertising Icon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Creating a Folder in Setup Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Creating Duplicate File Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Components Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Windows Installer Editor Reference 12
Component Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Adding and Editing a Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Moving Items Between Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
About the Key Path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Isolating a .DLL With an .EXE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Adding Published Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Tables Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Creating a New Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Creating a New Row in a Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Editing Existing Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Searching for Table Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Finding Validation Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Editing Binary Data in the Icon Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Chapter 16: Using Conditions and Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Where Can You Use Conditions?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Condition Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Examples of Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
WiseFixConditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Creating Conditions With Condition Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Checking the Value of a Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Checking the Value of an Environment Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Checking If and How a Feature or Component is Currently Installed . . . . . . . . . . . . . . . . 394
Checking If and How a Feature or Component Will Be Installed by This Installation . . . . . 394
Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
How Do You Use Properties? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Creating a New Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Chapter 17: Working With Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
About Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
About the Wizard Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Using the Dialogs Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Changing the Theme of Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Adding and Editing Dialog Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Importing Text into License and Readme Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Changing the Order of Web Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Using the Dialogs Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Adding Controls to Dialogs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Editing Dialog Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Creating a New Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
About Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Types of Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Editing Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Basic Control Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Setting an Event on a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Assigning Help to a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Assigning Conditions to a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Setting the Graphic for a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Setting the Items in a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Organizing and Aligning Controls on Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Aligning Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
Centering Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Making Dialog Controls the Same Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Windows Installer Editor Reference 13
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
Windows Installer Editor Reference 14
Troubleshooting Custom Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Chapter 21: Custom Action Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
About Custom Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Call Custom DLL From Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Call Custom DLL From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Call Custom DLL From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Configuring .DLL Parameter Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Call DLL From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Call DLL From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Call JScript From Embedded Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
Call JScript From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
Call JScript From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Call JScript From Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Call VBScript From Embedded Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Call VBScript From Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Call VBScript From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Call VBScript From Property. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Display Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Download File From Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
End Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Execute Program From Destination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Execute Program From Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Execute Program From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Execute Program From Path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
If Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Install MSI From Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Install MSI From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Install MSI From Relative Path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Launch Web Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Open Document From Installed Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Pause Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Post Data to HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Remark. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Run WiseScript From Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Run WiseScript From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Run WiseScript From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Set Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Set Feature State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Set Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Terminate Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Using the Custom Action Location Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Using the Custom Action Location Tab for Merge Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Using the Custom Action Properties Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Using the Custom Action Description Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Chapter 22: Windows Installer and .NET Technologies . . . . . . . . . . . . . . . . . . . . . . . . 494
About Microsoft Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Frequently Asked Questions About Microsoft Windows Installer . . . . . . . . . . . . . . . . . . . . . . 495
Working With Components and Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
About GUIDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
About Microsoft .NET Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Frequently Asked Questions About Microsoft .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Requirements for Creating a .NET Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Windows Installer Editor Reference 15
Appendix A: Wise Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Appendix B: Wise Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Appendix C: Property Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Build Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
INI File Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Run Time Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Windows Installer Editor Reference 16
Chapter 1
Introduction
This chapter includes the following topics:
z About Windows Installer Editor on page 17 z Starting the Software on page 17 z The Product Interface on page 18 z Using Installation Expert on page 19 z Using the Task List on page 25 z Installation Resources and Their Locations on page 28 z Generating Package Contents Reports on page 29 z Downloading Redistributable Files on page 30 z Downloading Redistributable Files on page 30 z Product Documentation on page 32
About Windows Installer Editor
Windows Installer Editor is an installation development tool for creating and editing Windows® Installer (.MSI) installation packages. It is a complete and user-friendly front end for generating Windows Installer database files, which are executed by the Windows Installer engine.
With Windows Installer Editor, you can:
z Create installations that are compliant with the Microsoft Windows 2000, XP, and
Vista logo program.
z Edit and refine installations that you have converted from other formats. z Import development projects.
Microsoft® Windows® Installer is a Microsoft technology that provides a standard installation engine that can be used for the installation of any 32-bit Windows application. It resides on the destination computer and performs the installation of applications. Windows Installer technology provides features that are not available in traditional installation-building products (examples: self-healing and install-on­demand).
Windows Installer Editor is a tool in Wise Package Studio®.
Starting the Software
To start the software
1. In Wise Package Studio, do one of the following:
Windows Installer Editor Reference 17
Introduction
On the Projects tab, click the Run link to the right of the task or tool associated
with Windows Installer Editor. The installation associated with the current project might be opened by default. This tool might open to a different view based on command-line options defined in Process Templates Setup.
On the Tools tab, double-click Windows Installer Editor.
2. Select File menu > New. The New Installation File dialog box appears.
3. Complete the dialog box: a. In the Categories list, click Predefined Templates. b. In the Templates/Tools list, click the Windows Application icon.
The Windows Application icon lets you create a standard installation. You can create other types of installations.
See Starting a New Installation on page 70 and Options for New Installations on
page 73. c. In the File type section, specify the type of file to create. d. In Target Platform, specify whether this installation is enabled for 32-bit, 64-
bit (x64), or 64-bit (Itanium) platforms. This sets the initial target platform for
the Default release. e. If the application has been written to be installed and run by standard users
without elevation, mark Create a Vista Standard User Installation. This
clears the Enable User Account Control (UAC) check box in Installation
Expert > Windows Installer Options page.
See Creating an Installation for Standard Users on page 71. f. Click OK.
The new installation opens.
The Product Interface
Windows Installer Editor has the following views, each of which provides you with a different development environment.
Installation Expert Installation Expert lets you create basic Windows Installer
installations and provides an easy-to-use, task-oriented user interface to perform the most common installation tasks. Each page of Installation Expert lets you configure a specific aspect of your installation.
See Using Installation Expert on page 19.
Windows Installer Editor Reference 18
Introduction
MSI Script MSI Script provides a powerful yet easy-to-use environment
for editing Windows Installer installation sequences. A sequence is a set of actions that are performed during a particular type of installation.
MSI Script is easy to work with even if you are not familiar with the underlying Windows Installer technology. Just double-click the custom action to add to your sequence or start typing the action name, then fill out options for the action. A new line based on the action and the options you entered appears in the sequence at the location of the last selected action. The resulting sequence is displayed in clear, readable statements.
See About MSI Script on page 440
Setup Editor Setup Editor is a powerful view of the installation, and using
its advanced features requires proficiency in the Windows Installer development environment or in software development. Set up Editor lets you create fully customized interactive installations. Certain advanced tasks can be performed only in Setup Editor.
See About Setup Editor on page 363.
To navigate between views, click the navigation tabs at the lower left of the main window.
Additional Interfaces
z The Tools menu contains powerful tools that perform specialized functions.
See About Windows Installer Editor tools on page 349.
z The Compile, Test, Debug, and Run buttons let you test and compile the installation.
See Compiling An Installation on page 78, Testing and Running An Installation on page 80, and About the Debugger on page 436.
Using Installation Expert
To access Installation Expert, click Installation Expert at the lower left of the Windows Installer Editor main window.
Windows Installer Editor Reference 19
Page Views
Page Groups
Introduction
Installation Expert window in Windows Installer Editor
Page Area
View Navigation
Compile and Test
Page Views
Use the Page Views drop-down list to select a page view, which is a set of Installation Expert page groups and pages.
See About Page Views on page 21 and Customizing Page Views on page 22.
Page Groups
When you select a page view, its pages are organized into page groups. Click the group name to expand or collapse its pages. Click a page name to display that
page.
Page Area
When you click a page name in a page group, this area displays the page’ s options. Each page lets you define a specific aspect of the installation. (Examples: On the Files page, you define what files are included in the installation. On the Registry page, you define what registry keys and values are created on the destination computer.) Complete only the pages that are pertinent to your particular installation, in any order. If required information is missing, an error message appears during compile.
z Use on the toolbar to navigate from page to page, or click the page name in
the list of pages.
z To display help for the current page, press F1. z To return a page to its last saved state, select Edit menu > Reset Page.
View Navigation
Click these tabs to change views.
Windows Installer Editor Reference 20
Compiling and Testing
Compile, Test, Debug, and Run buttons test and compile the installation.
See also:
Using the Current Release Drop-Down List on page 24 Using the Current Feature Drop-Down List on page 23
About Page Views
A page view is a set of Installation Expert page groups and pages that you select from the Page Views drop-down list. Select a page view to display only specific page groups and pages.
Types of Page Views
z Predefined page views that display the groups and pages most frequently used for a
z Custom page views that you create to meet your specific needs.
Introduction
particular type of installation. The All page view displays all page groups and pages. The Merge Module page view appears for all merge modules. You cannot edit or delete predefined page views.
See Customizing Page Views on page 22.
z Page views that are created when you create an installation template. You cannot
delete these page views. See Creating and Editing Installation Templates on page 48.
The page views are arranged alphabetically in the Page Views drop-down list with the exception of the All page view, which is always first. The list also includes <New View...> and <Customize Page Views...>, which are at the end of the list and are used to create or customize page views.
Predefined Templates and Page Views
Most predefined installation templates have an associated page view. When you create a new installation by using one of these templates, the page view that is associated with that template becomes the default page view of the installation. When you open the installation, this page view appears in the Page Views drop-down list.
You can select a different page view from the list at any time, except when you are working in a merge module or universal transform. Merge module and universal transform projects cannot use other page views, and their page views cannot be used with other types of projects.
When you select a different page view, it changes the pages displayed in Installation Expert but does not change the installation type. If you change the page view and save the installation, this new page view displays the next time you open the installation, unless you clear the Display the page view associated with a project when a
project is opened check box in Wise Options.
Custom Templates and Page Views
When you create a custom installation template, a page view is created with the same name and is listed in the Page Views drop-down list.
See Creating and Editing Installation Templates on page 48.
Windows Installer Editor Reference 21
Introduction
When you use a template to create an installation, the default page view is the page view that was displayed when the template was created. If the template’s default page view is a custom page view, you can customize it.
See Customizing Page Views on page 22. You can share page views that are associated with an installation template because the
page view is stored in the template, which is located in the share point directory.
Which Page View Appears?
z The Display the page view associated with a project when a project is
opened check box in Wise Options determines what page view appears. If you clear
this check box, the page view in Installation Expert does not change when you open a project regardless of its associated page view.
See Setting Installation Expert Options on page 42.
z The All page view is used when you open an installation file that does not have an
associated page view. An .MSI does not have an associated page view.
See also:
Using Installation Expert on page 19
Customizing Page Views
You can create customized Installation Expert page views that display only the page groups and pages that you use most often. You can customize the page view of custom installation templates or create customized page views that are not associated with a template. Y ou cannot customiz e the p redefined page views, but y ou can mak e a copy of a predefined page view and then customize it.
When you customize a page view, you can specify how many page groups appear, what the group names are, and what pages appear under each group.
Customized Page Views dialog box
Buttons to edit page groups and pages are unavailable when a predefined page view is selected in Page View Name.
These pages appear under the group selected in Page Groups.
The page groups appear on the left side of Installation Expert.
Windows Installer Editor Reference 22
Introduction
To create a page view
1. From the Page Views drop-down list in Installation Expert, select <New View...>. The Enter Name dialog box appears.
2. Enter a name for the page view. To create an access key for the name, type & (ampersand) before a letter in the
name. The page view access keys appear only in the page group’s right-click menu, which you access from the context menu key (the key next to the right Ctrl key).
3. Click OK. On the Customized Page Views dialog box, the new page view is selected in Page
View Name, but it has no page groups or page names.
4. To copy the page groups and pages of an existing page view: a. Click Copy View. The Copy View dialog box appears. b. Select the page view to copy and click OK.
The Merge Module and Universal T ran sform page views do not appear on the list because they cannot be copied.
You can now customize the page view by changing its page groups and pages.
To customize a page view
1. From the Page Views drop-down list in Installation Expert, select <Customize Page Views...>.
The Customize Page Views dialog box appears.
2. Select the page view from Page View Name, and do any of the following:
To add a new page group, click the Page Groups Add button and enter a name. To rename a page group, select the page group and click Rename. To add a page to a page group, select the page group and click the Add button
to the right of Page Names. On the Select Pages to Add dialog box, select one or more pages and click OK.
To delete a page group or a page name, sele ct it and click its Delete button.
3. Click OK on the Customize Page Views dialog box.
To delete a page view, select it from Page View Name and click the top Delete button.
See also:
Using Installation Expert on page 19
Using the Current Feature Drop-Down List
The Current Feature drop-down list appears on pages in the Feature Details page group. When it appears, you can set options on a per-feature or per-condition basis. You add features and conditions on the Features page, then select a feature from Current Feature before setting options on other pages.
Windows Installer Editor Reference 23
Introduction
Current Feature drop-down list
Example: Suppose you have three features, an d each feature requires different registry entries. On the Registry page, you select the first feature from Current Feature, create its registry entries, select the second feature in the list, create its registry entries, and so on.
During installation, files, registry entries, and other system changes are installed only if the feature they belong to is installed.
The same applies to conditions; add files, registry entries, and other changes to a condition, and during installation, those files and registry entries are installed only if the condition is true and the feature is installed.
The All Features (Modify/Delete only) option in Current Feature displays information for all features at once. (Example: On the Files page this option displays all folders and files for all features.) Add and New buttons are unavailable while all features are displayed; you must select a single feature to add items.
On some pages, Current Feature also contains numbers in parentheses, which represents the number of that page’s items (files or registry keys) that are assigned to each feature or condition.
See also:
Using the Current Release Drop-Down List on page 24 Using Installation Expert on page 19
Using the Current Release Drop-Down List
The Current Release drop-down list appears on pages in the Release Definition page group. When it appears, you can set options on a per-release basis by selecting a feature from Current Release and then setting options on that page.
Current Release drop-down list
A release is a special version of your application. Example: a 30-day evaluation release for evaluators. Use Current Release to configure separate settings, media, and language options for each release.
See also:
Windows Installer Editor Reference 24
Using Installation Expert on page 19 Using the Current Feature Drop-Down List on page 23
Using the Task List
When Windows Installer Editor encounters installation issues that could cause problems, it displays them in the Task List. You can manually display or hide the Task List from the View menu.
The Task List gathers all installation issues into one place, and makes it easy to analyze their causes. If the issue is caused by an error in a table, you can quickly jump from the Task List to the row in the table that caused the error.
See Finding Table Errors From the Task List on page 27. When you resolve the issue that corresponds to a task, the task is del eted the next time
you run the procedure that generated the task. Example: If a task was added to the Task List because of a compile error and you resolve that error, the next time you compile the installation that task is deleted.
How Tasks are Added to the Task List
z Save or Compile
If errors occur when you save or compile an installation, the errors are displayed in the Task List.
Introduction
z Package Validation
When you run Package Validation, validation issues appear on the View / Correct dialog box. If you mark the Add to Task List check box on the View / Correct dialog box, each issue becomes a task in the Task List when you click Finish. If Package Validation encounters save or compile errors, the package validation process ends and the errors are added to the Task List.
See About Package Validation in the Wise Package Studio Help.
z Check Tables
When you check tables, the installation is searched for component and table errors and results are placed in the Task List. To check tables, sel ect Setup Editor > Tables tab, right-click in the left pane and select Check Tables.
See Finding Validation Errors on page 385.
z User-Defined
You can add user-defined tasks to the task list. See Adding User-Defined Tasks on page 27.
Note
When you close an installation, all tasks, except user-defined tasks, are removed from the Task List.
Task List Icons
The following icons help you quickly identify the types of tasks in the Task List:
Windows Installer Editor Reference 25
An error that will cause incorrect behavior and must be fixed
Validation issues found by Package Validation See About Package Validation in the Wise Package Studio Help. A task you created This icon also appears with a task that reminds you to add the
package meta data to the Software Manager database.
Operations you can perform in the Task List
z Filter tasks by type.
See Filtering the Task List.
z Find table errors.
See Finding Table Errors From the Task List on page 27.
z Sort a Task List column by clicking its header. z Copy a task’s description by right-clicking its description.
Introduction
z Delete a task by right-clicking its description.
Filtering the Task List
To filter the task list
1. Right-click in the Task List and select Show Tasks.
2. Select a filter.
Save/Compile
Validation
Component
Table
User-Defined
Tasks that correspond to errors that are generated when you save or compile.
Tasks that correspond to issues that are generated during Package Validation.
Tasks that correspond to component errors that are generated when you check tables.
See Using the Task List on page 25.
Tasks that correspond to table validation errors that are generated when you check tables.
See Using the Task List on page 25.
Tasks that you have created.
When you set a filter, it is in effect until you change it. However, when you encounter installation issues, the filter is reset to All so installation issues can be displayed.
Windows Installer Editor Reference 26
Finding Table Errors From the Task List
If a task is associated with a table, you can access that table directly from the Task List, which helps you discover the problem that caused the issue.
Example: If a source file for the installation was moved or deleted at its source, a WiseSourcePath table error appears during compile. When you double-click this task, the WiseSourcePath table appears in Setup Editor, and the row in the table that is the cause of the problem is highlighted. Use the source path information in the row to ascertain and resolve the problem.
Warning
Deleting, adding, or editing table data directly is not recommended unless you are an experienced Windows Installer developer with a clear understanding of Windows Installer database technology. Editing table data might cause unexpected, undesirable behavior, including damage to the installation. We cannot provide technical support for problems arising from table editing.
To find table errors from the Task List:
If the task has a table listed in the Table column, double-click the task. The table is displayed in Setup Editor > Tables tab, and the row in the table associated with the task is highlighted.
Introduction
If you need more information, check the task’s description or press F1 to display the help topic for the selected table in the Windows Installer SDK Help.
See also:
Tables Tab on page 380 Using the Task List on page 25
Adding User-Defined Tasks
You can add tasks to the Task List. Example: Add user-defined tasks to define work that must be completed on the installation. Tasks you add to the Task List are saved with the installation. You can only add user-defined tasks to a .WSI; you cannot add them to an .MSI.
To add a user-defined task
1. On the first line of the T ask Li st, click Click here to add a new item twice and type the task.
If Click here to add a new item does not appear in the Task List, save the installation file and it will appear.
2. Click anywhere outside the box that contains the new task. The task is added to the Task List and appears in the Description column. User-
defined tasks do not use the Tables column.
See also:
Using the Task List on page 25
Windows Installer Editor Reference 27
Generating Shared Resource Reports
The following shared resource reports provide a quick way to review the resources that are shared by the current installation and other packages in the Software Manager database.
z Shared Files Report
Lists the files that are shared by the current installation and packages in the Software Manager database. For each file, the report lists each application that uses the file and shows detailed file information (examples: version, date/time, path, and so on).
z Shared Registry Report
Lists the registry keys that are shared by the current installation and packages in the Software Manager database. For each registry key, the report lists each application that uses the registry key and shows t he key valu e.
The reports are displayed in HTML format. The .XSL templates used to format these reports are in the Templates\Reports subdirectory of the share point directory. You can customize the .XSL templates to supply branding information, to filter data, or to transform the data to another format.
To generate a shared resource report
1. Select Reports menu and select either Shared Files or Shared Registry.
Introduction
The Welcome dialog box appears.
2. In Data Source, specify the Software Manager database that contains the resources you want to review. If the Software Manager database you want is not listed, click Open to select it.
3. From Group, select the group that contains the packages to compare this installation to.
4. Click Next. The report is generated and displayed in the Shared Files Report or Shared Registry
Report dialog box. You can save the or print the report from this dialog box. Saving to HTML is
available only on computers that contain MSXML.DLL, which is included in Internet Explorer 5.x and higher.
5. When you finish reviewing, saving, or printing the report, click Finish.
Installation Resources and Their Locations
Windows Installer Editor uses various resources to create installations. (Example: installation templates, component rules, language files, and so on.) Most of these resources are installed with this product. Others must be created and placed in the appropriate directory before they can be used.
(Standard Edition.) These resources are in subdirectories of the Windows Installer Editor installation directory.
(Professional Edition.) These resources are stored in subdirectories of the share point directory. The share point directory also contains subdirectories that are specific to the Wise Package Studio Workbench. For a description of those subdirectories, see Wise Package Studio Directories in the Wise Package Studio Help.
Windows Installer Editor Reference 28
Introduction
You can specify alternate locations for storing resources. See Setting Repository Preferences in the Wise Package Studio Help.
Directory Contents
Custom Actions Files that you create to use in custom actions, such as WiseScripts, VBScripts, .DLLs,
and so on, that you use in Windows Installer installations. Languages Language resource files that are used to change the language of installations. Merge Modules The default merge modules directory is Program Files\Common Files\Merge
Modules\Wise Solutions. This is the default target location for downloading merge
modules, and the default directory from which you select merge modules to add to an
installation. Resources Installation resources such as bitmap and icon files. Templates Macros and additional template files that are used by Package Distribution. Also
contains templates that are used to create a new installation. Templates\Dialogs The Wise Standard.MSI that provides information that is used by the New Dialog
Wizard to add a new dialog box to an installation. Templates\Reports Templates that are used to format the shared resources reports in Windows Installer
Editor. These reports are available only when you have a repository connection in
Wise Installation Studio. Themes Themes.ini, which stores information about themes you have added or customized.
Also contains subdirectories that store the images for each theme. Validation Predefined validation modules (.CUB files) that are used by Package Validation.
Generating Package Contents Reports
Package contents reports provide an overview of the contents of an installation file and make it easy to provide this information to end users. The following reports are available:
z Package Contents Summary
Lists detailed information for every resource in an installation, including files, registry keys, shortcuts, file associations, and merge modules. You can generate this report for .WSI, .MSI, .WSM, and .MSM files.
z Package Contents By Feature
Contains the same information as the Package Contents Summary report, but arranges it by feature. You can generate this report for .WSI and .MSI files.
To generate a package contents report
1. Select Reports menu > Package Contents and select either Summary or By F e ature.
2. The report is generated and opens in a dialog box. Use a report’s table of contents to quickly access information about a specific type of
resource. You can print the report or save it as an HTML or XML file.
Windows Installer Editor Reference 29
Downloading Redistributable Files
The Download Redistributables wizard, available from the Help menu, lets you obtain merge modules, Windows Installer runtime installers, and .NET Framework runtime installers. You need the Windows Installer runtimes if y ou decide to pre-install Windows Installer with an installation. You need the .NET Framework if you are creating an installation that contains .NET elements. Because of size and obsolescence considerations, these files are distributed through the Internet.
This wizard appears any time Windows Installer Editor detects a dependency on other merge modules or other redistributables. Example: If you run ApplicationWatch and it adds a file that must be installed with a certain merge module, the Download Redistributables wizard appears and prompts you to download the necessary merge module. This wizard might also appear if you install runtimes with the installation, or if you add files to the installation that are part of a merge module.
Download redistributable files from the following locations:
Wise Web Site Select and download one or more redistributables from the
Wise Web site. See Downloading Redistributables From the Wise Web Site
on page 30.
Other Vendors’ Web Sites
Select and download a redistributable from a third-party vendor’s Web site. Available redistributables are authored by the respective vendor, and you need to contact the vendor for information or help on these redistributables.
See Downl oading Redistributables From Other Vendors’ Web
Sites on page 31.
Introduction
If you need to go through a firewall or proxy server to get to the Internet, the Download Redistributables wizard uses your browser’s proxy settings. To change your Internet connection settings, refer to your browser’s documentation.
Downloading Redistributables From the Wise Web Site
You must be in an active Wise installation to follow this procedure.
To download redistributables from the Wise Web Site
1. Select Help menu > Download Redistributables. The Source Location dialog box appears.
2. Mark Wise Web Site and click Next. A Download Files dialog box appears while all available redistributable files are
retrieved. The Available Redistributable Files dialog box then appears.
3. From Redistributable Type, select the type of redistributable to download.
4. In the Modules Available or Versions Available list, mark one or more check boxes for the redistributables to download.
5. Click Next.
Windows Installer Editor Reference 30
Introduction
If you chose to download any merge modules, the Target Location dialog box appears, where you specify merge modules’ download location; otherwise the download starts and you can skip the next step. Runtimes are downloaded to private directories where they are accessed as needed by Windows Installer Editor.
6. From Target Location, select the directory to download the selected merge modules to, then click Next.
The drop-down list shows all merge module directories specified in Wise Options. See Setting Merge Module Directories on page 43. The selected redistributables are downloaded from the Internet.
7. Click Finish on the Download Files dialog box to finish the wizard.
The merge modules you selected are now in the directory you specified as the target location. If any merge modules had dependencies on other merge modules, those merge modules were also downloaded. Other runtimes are located in their required directories.
See also:
Downloading Redistributable Files on page 30
Downloading Redistributables From Other Vendors’ Web Sites
You must be in an active Wise installation to follow this procedure. We have no control over other vendor’s redistributable files. Check with the vendor for product support.
To download redistributables from other vendors’ Web sites
1. Select Help menu > Download Redistributables. The Source Location dialog box appears.
2. Mark Other Vendors’ Web Sites and click Next. When all available redistributables are retrieved, the Available Redistributab le Files
dialog box appears.
3. In the list box, select the redistributable to download and then click Download to connect to the vendor’s Web site.
4. Follow the links and prompts on the Web site to download the redistributable. Be sure to download merge modules to a directory specified in Wise Options.
See Setting Merge Module Directories on page 43.
5. When the download is complete, return to the Available Redistributable Files dialog box and click Finish.
The merge modules and other runtimes you selected are now in the directory you specified as the target location. If any merge modules had dependencies on other merge modules, those merge modules were also downloaded.
See also:
Downloading Redistributable Files on page 30
Windows Installer Editor Reference 31
Product Documentation
This documentation assumes that you are proficient in the use of the Windows operating system. If you need help using the operating system, consult its user documentation.
Use the following sources of information to learn about this product.
Online Help
The online help contains detailed technical information and step-by-step instructions for performing common tasks.
Access help in the following ways:
z To display context-sensitive help for the active window or dialog box, press F1. z To select a help topic from a table of contents, index, or search, select Help menu >
Help Topics.
Reference Manual
All the material in the online help is also available in a .PDF-format reference manual, which you can access by selecting Help menu > Re ference Manual.
Getting Started Guide
Introduction
The Getting Started Guide contains system requirements, installation in structions, and a tutorial. You can access a .PDF version of the Getting Started Guide from the Windows Start menu.
Windows Installer SDK Help
You can get technical details about Windows Installer from its own help system, which is written by Microsoft for a developer audience. In Wise for Windows Installer, select Help menu > Windows Installer SDK Help.
Version 4.5 of the Windows Installer SDK Help is provided. If you have obtained a later version, links from the Wise product documentation to the Windows Installer SDK Help might not work.
Release Notes
The product release notes cover new features, enhancements, bug fixes, and known issues for the current version of this product. T o access the release not es, select Release Notes from the Symantec program group on the Windows Start menu.
Windows Installer Editor Reference 32
Chapter 2
Setting Up
This chapter includes the following topics:
z How you can set up Windows Installer Editor on page 33 z Setting Options on page 33 z Creating and Editing Installation Templates on page 48 z Component Rules on page 49
How you can set up Windows Installer Editor
Before you create and edit installations, set up Windows Installer Editor to reflect your organization’s standards:
z Set options that control the installations you create and determine the installation
resources you use. See Setting Options on page 33.
z Decide whether you need to customize the templates that installations are based
on. See Creating and Editing Installation Templates on page 48.
z Decide which rule set to use to help you manage the creation of components in
installations. You can edit the predefined rule sets or create new rule sets. If the predefined rule sets do not meed your needs, you can duplicate them and modify the copies as needed, or you can create new rule sets.
See Component Rules on page 49.
Setting Options
You can set options that control the installations you create and determine the installation resources you use. Some of the options are global; they are set for all files you open with Windows Installer Editor, including files you created previously. Other options provide defaults for new files and do not affect existing files.
You set options on the Options dialog box, which you access by selecting Tools menu > Options.
The Options dialog box contains the following tabs. See:
Setting General Options Setting .NET Assembly Options on page 35 Setting Advertising Options on page 37 Setting Digital Signature Options on page 38 Setting ExpressBuild Options on page 40 Setting Installation Expert Options on page 42 Setting Merge Module Directories on page 43 Activating Suppressed Prompts on page 44
Windows Installer Editor Reference 33
Setting Source Control Options on page 46 Setting Wildcard Groups on page 47
Setting General Options
To set general options, select Tools menu > Options and click the General tab.
Automatic Options
z Create backup copy during save
Mark this to create a new backup file every time you save. The backup file name consists of the current file name plus a number. (Example: if the current file name is Sample.wsi, the backups are named Sample1.wsi, Sample2.wsi, and so on.) Only the file you are working on is backed up. (Example: if you open a .WSI and save it, the corresponding .MSI is not backed up.) Use caution with this option if you are working with large installation files; if you save often, your disk space will quickly become depleted.
This can be set automatically from Wise Package Studio Preferences; use this check box to override the Package Studio setting.
z Add default remarks to installation sequences
Although most Wise project (.WSI) files have remarks that explain the actions in the sequences, compiled .MSIs do not. Mark this to add remarks to the current .MSI and all .MSIs that you open subsequently. Remarks are added to .WSIs only if no remarks already exist.
Setting Up
z Create XML copy during save
Mark this to update a copy of the installation in XML format every time you save. If a copy does not exist, it is created. The copy has the same name as the installation file with the extension .XML appended, and it is saved in the same directory. (Example: If the current file name is Application.wsi, the XML copy is named Application.wsi.xml.) This lets you check the XML version of the installation into a source code control system and use text-based file comparison tools to find changes.
See Saving an Installation as XML on page 77.
Compiler Options
The following options are default settings for all new compiles. Changing these settings does not affect installations that have already been compiled.
z Add custom actions for predefined folders in merge modules
This affects the merging of merge modules that place files in predefined directories, such as \Windows, \System32, and so on. Mark this to have the merge emulate the behavior of the Microsoft merge tool, mergemod.dll, which uses custom actions to handle predefined directories. Clearing this check box can fix potential problems with capitalization inconsistencies in the directory name.
Windows Installer Editor Reference 34
Setting Up
Note
Windows Installer Editor has its own code for merging a module into an .MSI, but this check box causes your merge to follow the Microsoft conventions for merging. Microsoft’s merging code adds a custom action to the installation for each predefined directory referenced in each included merge module. The custom action uses a Set Property action to set the predefined directory name, whereas the Windows Installer Editor code sets the predefined directory name by adding an item to the Directory table of the Windows Installer database.
z Display error if merge modules conflict with main installation rows
Merge module errors occur if a merge module contains a row that has the same key as a row in the main installation. Clear this to ignore such errors and let the merge module row overwrite the row in the main installation.
z Enable Quick Compile
Mark this to speed the compile process by compressing only previously uncompressed or changed files. Quick Compile writes the .MSI table information. If a file or media has changed, a full compile will occur instead. Quick Compile is for project files only. You can also speed compile time by using ExpressBuild, a multi­processor compile feature.
See About ExpressBuild on page 39.
Software Virtualization Options
z Install into virtual layer from Run button
Mark this to install an installation into a virtual layer when you click the Run button. This creates a new layer, installs the .MSI into the layer, and activates the layer. After you test the installation, you can delete the layer to restore your computer to its original state.
See Running An Installation on page 81.
Startup Options
z Reload last project at startup
Mark this to open the last installation you worked on when you start Windows Installer Editor.
See also:
Setting Options on page 33
Setting .NET Assembly Options
¾ Windows Installer 2.0 or later only.
You can specif y whether you cre ate standard Wi n32 or .NET installations, and customize how Windows Installer Editor handles the .NET assemblies.
To set options:
Select Tools menu > Options and click the .NET Assemblies tab. Complete the tab.
Windows Installer Editor Reference 35
Setting Up
If the options on the .NET Assemblies tab are unavailable, install the .NET Framework and run a manual repair of the Windows Installer Editor .MSI from Add/Remove Programs.
COM Interop Options
z Default Application Type
This determines the default setting for the Application Type field on the Product Details page for new installations. Changing this field does not affect existing installations.
Win 32 (non .NET)
Select this if you typically create standard Win32 installations without .NET assemblies.
.NET Application
Select this if you typically create .NET installations with only .NET elements.
Mixed (.NET and Win32)
Select this if you typically create installations containing both Win32 and .NET elements. When this option is selected, .NET assemblies you add to an installation are registered so that they can be called as though they were COM components. For information on COM interoperability, search for “Interoperating with Unmanaged Code” in the MSDN Library (msdn.microsoft.com/library/).
z Rescan COM interop registry keys on compile
Mark this to scan and update interop registry keys for .NET assemblies each time you compile. This check box is available only if the .NET Framework is installed on your computer.
Assembly Scanning Options
The scanning options are available only if the .NET Framework is installed on your computer.
z Scan Dependencies
Specify how dependency assemblies are added to an installation. Y ou can add them manually or have Windows Installer Editor scan the assembly manifest for dependencies and add them automatically. Cha nging this option does not affect assemblies that have already been added to installations.
Never scan dependencies
If you select this, you must add dependency assemblies to installations manually on the Files or Web Files page.
Prompt to scan dependencies
When you add a .NET assembly to an installation, Windows Installer Editor scans its manifest for dependencies and prompts you to select which ones to add to the installation.
Always scan dependencies
When you add a .NET assembly to an installation, Windows Installer Editor scans its manifest for dependencies and adds them to the installation.
z Rescan assembly dependencies on compile
Mark this to scan for new assembly dependencies each time you compile.
z Rescan assembly attributes on compile
Mark this to res can and update assembly attributes each time you compile. This check box is marked by default.
Windows Installer Editor Reference 36
Note
On .NET Framework versions earlier than 1.1, the scan does not occur when you add an assembly from a UNC or mapped network drive (example: the share point directory). T o enable scanning of such assemblies, either upgrade to .NET Framework version 1.1 or later, or change your .NET security so that the share point directory is fully trusted.
See also:
Setting Options on page 33
Setting Advertising Options
You can specify how to gather self-registration and advertising information for files you add to an installation. Windows Installer considers some kinds of registry entries, such as file extension definitions, to be advertising information.
See Platform Support of Advertisement in the Windows Installer SDK Help. The Advertising options are default settings for all new components. Changing these
settings will not affect existing components.
To set options:
Select Tools menu > Options and click the Advertising tab. Complete the tab.
Setting Up
z Advertising Setting
Select one of the “scan” options to have Windows Installer Editor inspect your computer’s registry and the files in the installation and automatically add Windows Installer advertising information for the files that you add to the installation.
The different scan options let you determine whether the advertising information is added to the advertising tables (AppId, Class, Extension, Mime, ProgId, TypeLib, Verb), to the registry, or both. The scan options also cause AppPath registry information to be added to the installation automatically , although it is not related to advertising. Only AppPath information at HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\ is added.
This registration method is preferred over self-registration because it does not depend on the presence of other files on the destination computer, nor does it depend on how well the .OCX or .DLL file adheres to self-registration conventions. However, the .OCX or .DLL files must already be registered correctly on your computer. If you prefer not to register installation files on your computer, you can run the scan routine as a stand-alone utility on a different computer.
See Using WiseComCapture.exe on page 134.
Do not scan advertising information
Use self-registration for components that support it. Windows Installer Editor will not scan files or the registry.
Scan advertising information into registry keys
Add advertising information to the installation as registry keys only; do not create entries in advertising tables. This results in an installation that does not support advertising through COM.
Windows Installer Editor Reference 37
Setting Up
Scan advertising information into advertising tables
Place registry entries that are considered to be advertising information into advertising tables. Create registry entries for any information that cannot be placed in the advertising tables. This results in an installation that supports advertising.
Scan advertising into both advertising tables and registry
Place registry entries that are considered to be advertising information into advertising tables and into registry keys. As a result, all advertising information is included in the installation; none is lost.
Warning
When registry entries are created for any information that cannot be placed in the advertising tables, the installation is more accurate because no information is lost. However, this might cause an error or warning when you run the Application Specification Logo test in Package Valida tion.
z Automatically add self-registration
Mark this to add self-registration information to the installation whenever you add an .OCX or .DLL file that supports self-registration. Typically , .OCX and .DLL files are self-registered dynamically on the destination computer by calling self-registration functions. If you mark this check box, Windows Installer registers your .OCX and .DLL files. The .DLL or .OCX may require certain files to be installed already i n order to self-register properly.
Scanning the advertising information into the advertising tables is recommended over self-registration.
z Default to rescan advertising for new components
If the advertising information contained in your files might change during the development process, mark this to scan the advertising information and update the installation every time you compile. The scan options in the Advertising Setting field above only read the advertising information that’s present in the file when you first add it to the installation.
This field sets the default for new components; if you change it, existing components are not affected. The Rescan advertising information during compile check box on the Component Details dialog box can override this setting for individual components.
See also:
Setting Options on page 33
Setting Digital Signature Options
You can a dd a digi t al s ign at ure t o an i nst al la tion on the Digital Signature page. You also can add a digital signature to a patch in Patch Creation.
The Digital Signature options provide default settings for the Digital Signature page and Patch Creation. These options apply to all future installation and patch files. They do not affect existing files.
To set options:
Select Tools menu > Options and click the Digital Signature tab. Complete the tab.
Windows Installer Editor Reference 38
z Signing with Public/Private Key Pair Files
Signcode.exe Location
Enter the path of the signcode.exe that performs the signing tasks.
Credentials File
Enter the path of the credentials file that contains your Digital ID.
Private Key File
Enter the path of the private key file (.PVK). If this key is lost or stolen, contact your certificate authority immediately.
z Signing with Personal Information Exchange Files
Signtool.exe Location
Enter the path of the signtool.exe that performs the signing tasks.
Personal Information Exchange (.pfx) File
Enter the path of your Personal Information Exchange file (.PFX).
See also:
Adding a Digital Signature to a Patch in the Wise Package Studio Help
Adding a Digital Signature to an Installation on page 240 Setting Options on page 33
Setting Up
About ExpressBuild
¾ Not available in Standard Edition.
Note
For multi-processor compile to occur using distributed computers, all source files of the installation must be on a shared drive and must be specified in the installation with UNC paths. (Example: \\SERVER\File.exe). In addition, when you open the installation file, you must open it in such a way that it is referenced by a UNC path. Example: After you select File > Open, browse to the installation underneath the My Network Places icon or type the entire UNC path in the File Name field. These requirements do not apply to using multiple processors within one computer.
With ExpressBuild™, you can use multiple processors to speed compile time for large builds. Use multiple processors on the local computer, and use the main processor of multiple distributed computers (called a build group). The processors on the local computer can be physical or virtual processors. You can also set up your own computer to provide processing power for another build computer.
ExpressBuild speeds compile time by distributing the time-consuming task of compressing .CAB files among multiple processors. Therefore, the greatest time savings are realized when you have multiple .CAB files. Specify .CAB file creation rules in Installation Expert > Media page.
See:
Setting ExpressBuild Options How ExpressBuild Groups Work on page 41 Requirements for Using ExpressBuild on page 41
Windows Installer Editor Reference 39
Setting Up
Setting ExpressBuild Options
¾ Not available in Standard Edition.
If you turn ExpressBuild on, it is turned on globally; that is, it is in effect for all installation files you open, regardless of when they were created.
Before you use ExpressBuild, verify that you meet the requirements for using ExpressBuild options and review the reasons why multi-processor compile might not work.
See Requirements for Using ExpressBuild on page 41.
To set options:
Select Tools menu > Options and click the ExpressBuild tab. Complete the tab. You can m ark any combination of the three check boxes below. After y ou m ark eith er of
the first two check boxes, compiles will try to use multi-processor compile unless prevented from doing so. If you mark Allow My Computer to Build for Others, your computer is immediately available to assist in compiles being performed on other computers.
z Build Using Multiple Local Processors
Mark this to have multiple processors within this computer help process compiles. The processors on this computer can be physical or virtual processors. You must also enter the number of local processors in the field below. There are several requirements for using this option.
Number of Local Processors
Enter the number of physical or virtual processors available on the current computer.
z Build Using Multiple Distributed Computers
Mark this to have more than one computer help process compiles. You must have previously set up a build group to use this option. There are several requirements for using this option.
Build Group Name
Enter the build group name. See How ExpressBuild Groups Work on page 41.
Build Group Domain
Enter the NT domain name of the build group. All members of a single build group must be in the same NT domain.
z Allow My Computer to Build for Others
Mark this to have this computer be available to help proce ss compiles that are started on another build computer. Performance degrades while this computer helps to process compiles. This causes WiseExpressBuild.exe to start immediately.
Build Group Name
Enter the group name of the build group that your computer will be a member of. If another computer compiles using your build group name, then your processor will be used to help compile.
See also:
About ExpressBuild on page 39
Windows Installer Editor Reference 40
Setting Up
Setting Options on page 33
How ExpressBuild Groups Work
¾ Not available in Standard Edition.
You can specify a build group of computers within the same NT domain or workgroup to share processing of compiles. T o specify a buil d group, first you select an arbitrary name for the build group. Then, on those computers that will be part of a build group, you do one of two things:
z If Windows Installer Editor is not installed, then run WiseExpressBuild.exe, which is
located in the share point directory. The Wise ExpressBuild dialog box opens. Specify the group name and whether the WiseExpressBuild.exe should open at system startup. WiseExpressBuild.exe runs in the background and responds to and manages compile requests from the build computer. You can open it and edit its properties by double-clicking on its icon in the Windows taskbar.
z If Windows Installer Editor is installed, open it on that computer. Select Tools menu
> Options, click the ExpressBuild tab, and mark the Allow My Computer to Build for Others check box.
Then enter the group name of the build group your computer will build for. Do this on each computer that will share processing as part of a single build group. When you click OK on the Options dialog box, the WiseExpressBuild.exe immediately begins running on your computer, with its icon showing in the system tray area of your taskbar.
Note
Performance slowdowns will occur on computers in build groups when they are called upon to help process compiles.
See also:
About ExpressBuild on page 39 Setting ExpressBuild Options on page 40 Requirements for Using ExpressBuild
Requirements for Using ExpressBuild
¾ Not available in Standard Edition.
z In the following instances, because of .CAB formation issues, multi-processor
compile does not take place and normal compiling occurs:
If you select Uncompressed external files from the Compression Option
field on the Media page.
If you select One Cab in the Cab Options field on the Media page, or if the
.MSI contains only one .CAB for some other reason.
If you select any size other than zero in the Max Media Size field on the Media
page.
If you are in a merge module.
Windows Installer Editor Reference 41
Setting Up
z Because each processor compresses .CAB files, using multiple p r ocessors is more
efficient if files are arranged into multiple, moderately-sized .CAB files. To achieve this, select One Cab per feature or One Cab per component in the Cab Options field on the Media page.
Additional requirements for using the option to Build Using Multiple Distributed Computers:
z All the installation source files must be shared so that all members of the build
group have network privileges to access them.
z The paths to all installation source files must be in UNC notation. Change paths to
UNC notation using Tools menu > Convert Source Paths. If any source files have paths to the local drive (Example: C:\MyFiles\File.jpg) then
multi-processor compile does not occur. See Source Paths in an Installation on page 318.
z The path to the installation file must be referenced in UNC notation. When you open
the installation file, open it in such a way that it is referenced by a UNC path. Example: When opening a file, browse to the installation underneath the My Network Places icon or type the entire UNC path in the File Name field. If you browse under the My Computer icon, the path will not be referenced in UNC notation.
See also:
About ExpressBuild on page 39 Setting ExpressBuild Options on page 40 How ExpressBuild Groups Work on page 41
Setting Installation Expert Options
You can set options that control the behavior of Installation Expert.
To set options:
To set options for Installation Expert, select Tools menu > Options and click the Installation Expert tab.
Complete the tab.
z View directories for all features on Files page
Mark this to display all directories on the Files page, regardless of what feature the directory was created for.
Clear this to display only the directories that were created for the current feature (the feature selected in the Current Feature drop-down list.) Example: If you create a directory for FeatureA, and then use the Current Feature drop-down list to go to FeatureB, you no longer see the directory you made for FeatureA.
This does not apply to the Web Files page.
z View registry keys for all features on Registry page
Mark this to display all registry keys on the Registry page, regardless of what feature the registry key was created for. This displays a composite view of all registry keys created for all features. If this check box is not marked, only keys created for the currently selected feature (in the Current Feature drop-down list) are displayed.
Windows Installer Editor Reference 42
Setting Up
z Show merge module components
Mark this to view the files and registry entries from merge modules in Installation Expert. You can only view merge module components in an .MSI. By default, these items are hidden.
z Listbox Compatibility Mode
If your computer has certain video driv ers, y ou might have problems selecting items from list boxes within Windows Installer Editor. If items that you select from list boxes are continually misinterpreted by Windows Installer Editor, mark this check box to eliminate list box problems.
z Expand all features on Features page
Display Feature title instead of name on Features page Display hidden features on Features page
These check boxes determine how features are displayed on the Features page. You can override these settings using the right-click menu on that page.
z Display the page view associated with a project when a project is opened
Mark this to display an installation project’s default page view when the installation opens. If you clear this check box, the page view in Installation Expert does not change when you open a project regardless of its associated page view.
z Use advanced drawing routines (restart required)
If a black box appears at the bottom of the Installation Expert page group list, cutting off the last several pages in the list, mark this check box and restart your computer to eliminate the problem.
z Display Project Summary Page when a project is opened
Mark this to have the Project Summary page appear when an installation is opened.
See also:
Setting Options on page 33
Setting Merge Module Directories
You can set default directories for storing merge modules. You can store merge modules on a local drive or a shared network drive. When you add
a merge module to an installation, you can select from the merge modules in the directories you specify here. When you use the Download Redistributables wizard, you can download merge modules to directories you specify here.
You can use merge modules that are in the Software Manager database, which helps ensure that team members always access approved versions of merge modules. (Not available in Standard Edition.)
To set options:
Select Tools menu > Options and click the Merge Modules tab. You also can access these options when you add a merge module to an installation; click
the Directories button on the Select Merge Module dialog box. See Adding a Merge Module to an Installation on page 338. Complete the tab.
Windows Installer Editor Reference 43
Setting Up
z Default Merge Module Directory
Shows the path to the default merge module directory. All merge modules that are in this directory—along with the merge modules that are in the directories shown in the Directory list below—are listed on the Select Merge Module dialog box that appears when you click the Add button at the right of the Merge Modules page.
To exclude the merge modules in the default directory from the list, mark Do not show merge modules from the Default Merge Module Directory.
z Read Merge Modules List From Software Manager Database
(Not available in Standard Edition.) Mark this to include merge modules from the Software Manager database on the Select Merge Module dialog box that appears when you click the Add button on the Merge Modules page.
z Directory
Enter additional directories where merge modules are stored. Me rge modules in these directories are listed on the Select Merge Modules dialog box. Example: If you save your organization’s user-created merge modules in the shared network directory V:\Modules, and you add V:\Modules to the Directory list, the merge modules in that directory will appear on the Select Merge Module dialog box.
To add a directory to the list, click Add, browse for the directory, and click OK. To include subdirectories in the search, mark the check box in the Include Subdirs column. The next time you click the Add button on the Merge Modules page, modules in that directory appear on the Select Merge Module dialog box.
To delete a directory from the list, click the directory and click Delete. Merge modules in that directory will no longer appear on the Select M erg e Module dialog box.
See also:
Setting Options on page 33
Activating Suppressed Prompts
Some of the prompts that appear in Windows Installer Editor contain a Don’t show this message again check box that lets you suppress the prompt in the future.
To reactivate prompts that you previously suppressed
1. Select Tools menu > Options and click the Prompts tab. The dialog box lists the prompts you have suppressed and shows your last respon se
to each prompt. If you have not suppressed any Windows Installer Editor prompts, nothing is listed.
2. Select the prompt message line and click Activate. The prompt is removed from the list. The next time you encounter a situation in
which that prompt applies, the prompt will appear.
See also:
Setting Options on page 33
Windows Installer Editor Reference 44
Setting Repository Options
Use the Repository tab on the Wise Options dialog box to:
z (Client installations only.) Connect to a different Wise Software Repository (the
share point directory and any databases associated with it). Changing the share point directory or a specific path does not copy resources to the
new location. Typically, you will specify a share point or path that is already in use.
z Specify the directories that contain shared resources that are used to create and
edit Windows Installer installations. Typically, you will use the default locations, but you can set individual share locations for specific resources.
See Installation Resources and Their Locations on page 28.
To connect to a different repository
(Client installations only.) You can connect to a different repository by specifying the share point that is associated with it.
When you change the default share point, you are logged off and prompted to log on. Because serial numbers and license assignments are stored in the Workbench database, you must have a different license assignment in the Workbench database that you change to.
Setting Up
1. Select Tools menu > Options.
2. On the Wise Options dialog box, click the Repository tab.
3. Click Browse.
4. On the Browse for Folder dialog box, browse to an existing share point directory and click OK.
The Wise Software Repository that is associated with that share point becomes your default.
To change a default resource location
The resource locations are used for Windows Installer installations only.
1. Select Tools menu > Options.
2. On the Wise Options dialog box, click the Repository tab.
3. Click Advanced.
4. On the Repository Advanced Settings dialog box that appears, double-click one of the following items and browse to a new path.
You can use the variable [WiseSharePoint] to represent the share point directory in the following paths. You also can use the predefined variables that appear on the Path Variables page. However, you cannot use other user-defined path variables because they are specific to a single installation and the following paths are global options.
Component Rules
Windows Installer Editor Reference 45
Specify the location of ComponentRules.ini, which contains the rules that govern how components are created in installations.
Setting Up
Warning
If you are sharing component rules, be careful when editing existing rule sets because your changes will overwrite rule sets used by team members.
Custom Actions
Specify the location in which you will save files used in custom actions (examples: WiseScripts, .DLL files, JScript files, and VBScript files) that can be added to installations. This is the default location whenever you browse for a file on a custom action dialog box.
Default Project Directory
Specify the default directory in which all new installations will be saved. The default is the Projects subdirectory of the share point directory.
Note
Changes in this field do not take effect until you exit and restart the product.
Dialogs
Specify the location of the Wise Standard.MSI that contains information that the New Dialog Wizard uses to add a new dialog box to an installation.
Languages
Specify the location of language resource files.
Resources
Specify the location of the bitmaps and icons that are used in installations.
Templates
Specify the location of installation templates and WfWI macros.
Themes
Specify the location of the themes that are used to customize installation dialog boxes.
Validation Modules
Specify the location of the validation modules (.CUB files) and settings that are used in Package Validation.
See also:
Setting Merge Module Directories on page 43 Setting Options on page 33
Setting Source Control Options
You can set options that enable source control functionality and set the levels of interaction Windows Installer Editor has with your source code control system (SCCS).
See Using Source Control on page 308. The Source Control options apply to the current installation and all future installations.
Changing these options does not affect existing installations.
To set options:
Select Tools menu > Options and click the Source Control tab. Complete the tab.
Windows Installer Editor Reference 46
Setting Up
Note
If the following options do not appear on the Source Control tab, you probably don’t have a source code control system on your computer. It could also be that your SCCS is unrecognized or that there are communications p roblems betwee n the SCCS serv er and your computer.
z Enable source control
Mark this to enable all source control functionality both in the current installation and all future installations. When you mark this check box, the following three check boxes are enabled, as well as the items in the Source Control menu. When source control is enabled, you can add files to source control, c heck files in and out, get the latest version of files, track history, and view differences.
z Check out file when it is opened
If this is marked, then each time you open a file that has been previously checked in, the file will be automatically checked out for you. If your source code control system is not available, you can cancel attempts to connect and work on the local copy of the file.
z Check in file when it is closed
If this is marked, then each time you open a file that has been previously checked out, the file will be automatically checked in for you.
z Add new files to source control
If this is marked, then each time you create a new installation file and save it, you will be prompted to add it to your source code control system.
Enabling the source control options above does not implement source control in the installation. It merely enables you to add and remove files from the source code control system, and to check them in and out. Use the options on the Source Control menu to perform these tasks.
See also:
Setting Options on page 33
Setting Wildcard Groups
On the Wildcard Groups tab, you can create groups of wildcards so you don’t have to type multiple wildcards repeatedly.
On the Files and Web Files pages in Installation Expert, you use the wildcard groups when you add directory contents. Wildcard groups on the Wildcard Groups tab appear in the Include Wildcards list on the Add Contents and Wildcard Details dialog boxes. Select a wildcard group to add just a subset of the files in the directory whose contents you are adding.
Several wildcard groups are predefined, which you can edit. If you delete them, they are recreated when the application starts. Also, wildcards that you enter in any Include
Wildcards field are added to the list of wildcard groups.
To add a wildcard group so it appears in Include Wildcards
1. Select Tools menu > Options and click the Wildcard Groups tab.
2. On the Wildcard Groups tab, click Add. The Wildcard Group Details dialog box appears.
Windows Installer Editor Reference 47
3. Complete the dialog box and click OK:
Group Name
Enter a name to precede the wildcards in the Include Wildcards list. This is a visual identifier to help you quickly find the wildcards in the list.
Wildcards
Enter semi-colon delimited wildcards. (Example: Enter *.EXE;*.DLL for all .EXE and .DLL files. A ? represents any one character.)
Later, when you add contents or set automatic updating on the Files or Web Files page, this wildcard group is available from the Include Wildcards list.
See also:
Setting Options on page 33
Creating and Editing Installation Templates
When you create a new installation or merge module, it gets its configuration from a template file. Templates contain logical defaults and commonly used settings. Some template files are predefined and appear when you create a new installation. You also can create your own templates.
Setting Up
Example: If all your installations have the same system configuration requ irements and document file extensions, you can create a template with these changes preconfigured.
Warning
Editing predefined templates is not recommended, because they might be overwritten during upgrades. Instead, save customized templates with different names, or make copies of the predefined templates and edit the copies.
Template Location
Templates are in:
z (Standard Edition.) The Templates subdirectory of the Windows Installer Editor
installation directory.
z (Professional Edition.) The Templates subdirectory of the share point directory. This
lets multiple users access the same templates.
See Installation Resources and Their Locations on page 28.
To create a custom template
1. Select File menu > New. The New Installation File dialog box appears.
2. Select a template file on which to base the new template and click OK. Only icons that have a correspo nding file i n the Templates directory are templates; other icons cannot be used to create or edit templates.
A new installation or merge module opens.
3. Make all the changes that should appear in installations that will be created with this template.
Windows Installer Editor Reference 48
Setting Up
4. T o include a description that will appear on the New Installation File dialog box when you click this template:
a. Select Setup Editor > Product tab. b. Click the Summary icon. c. In the upper-right pane, double-click Comments. d. On the Summary Details dialog box that appears, enter a description of this
template in Value and click OK.
5. Save the file: a. Select File menu > Save As. b. Name the file and save it in the Templates directory as a .WSI, .MSI, .WSM, or
.MSM.
When you save the template, a page view is created with the same name and is listed in the Page Views drop-down list. However, when you use the template to create an installation, the default page view is the page view that was displayed when the template was created. If the template’s default page view is a custom page view, you can customize it.
See Customizing Page Views on page 22.
6. To test the new template, select File menu > New. The New Installation File dialog box appears and the file that you just created
appears in the Custom Templates category . If the New Installation File dialog box does not contain the new template, verify that you saved it in the correct format and location.
7. Select the template you just created and click OK.
8. Verify that the changes you made in the template are present in this new installation.
Component Rules
You can select or create rules that help you manage the creation of components in an installation. Using component rules eliminates the need to specify component information for every individual resource you add to an installation and ensures that components are created consistently across all installations. Component rules can also help you align component GUIDs in an upgrade with component GUIDs in previous versions of the installation.
When you first create an installation, you select a component rule set to manage components you add to that installation. Then, whenever you add a resource, such as a file, registry key, shortcut, or anything else that can be installed, components are created for those resources in accordance with the rule set you selected. Example: You can always create a new component for each new file added to the installation, or you can group related resources, such as help files, into one component.
Two predefined rule sets are provided. You might find that they manage your components satisfactorily and no customization is necessary. If the predefined rule sets do not meed your needs, you can duplicate them and modify the copies as needed, or you can create new rule sets to reflect your organiza tion’s standards. For descriptions of the predefined rule sets, see Microsoft Best Practices Component Rule Set on page 56
Windows Installer Editor Reference 49
and One File Per Component Rule Set on page 57. For instructions on creating new rule sets, see Customizing Component Rules on page 53.
You can share component rules with others in your organization through a share point directory. Sharing component rules ensures that you always use the most current set of rules and that your installations always adhere to company standards for creating components. To share component rules, in Workbench, select Edit menu > Preferen ces, click the Repository tab, and click the Advanced button. Make sure a shared directory is specified for the Component Rules path.
See Setting Repository Preferences in the Wise Package Studio Help.
See also:
About Component Rules on page 50 Selecting a Component Rule Set on page 51 Using Component Rules to Align GUIDs in an Upgrade on page 52
About Component Rules
A component rule set manages components that are added to installations.
z A rule set is a collection of rules.
Setting Up
z A rule consists of one or more conditions and one or more actions. z A condition determines the criteria that a resource must meet in order for an action
to be performed. Example: If you select the condition Added resource is a Shortcut, the action is only performed for shortcut resources.
z An action determines how a resource will be assigned to a component.
Rule sets are stored in an .INI file located in the share point directory. You can change the location.
See Setting Repository Preferences in the Wise Package Studio Help. Do not try to edit the .INI file other than through the Component Rules dialog boxes.
Warning
If you are sharing component rules, when you edit existing rule sets your changes will overwrite rule sets used by other members of the team.
How Component Rules Are Applied
Component rules are applied in the order they appear from top to bottom in the list of rules on the Customize Component Rules dialog box. When a rule has multiple conditions, only resources that meet all the conditions have the rule applied to them. Once an added resource matches the conditions in a rule, the action is applied and no subsequent rules are evaluated for that resource. If you add a resource that does not meet any of the conditions in the rule set, then the Microsoft Best Practices rule set is used for that resource.
See also:
Component Rules on page 49 Microsoft Best Practices Component Rule Set on page 56
Windows Installer Editor Reference 50
Selecting a Component Rule Set
Use the Component Rule Selection dialog box to select a rule set and component nami ng conventions for the current installation or to set the default rule options for all future installations.
The component key values you enter on the Component Rule Selection dialog box can be overridden by specific rules. Example: If you use a rule set that contains rules for naming certain types of components, then only the components that do not meet the conditions in the rule set will be named using the component key value options you specify here.
To select a component rule set
1. Select Component Rules menu > Select Rule Set. The Component Rule Selection dialog box appears.
2. From Rule Set Name, select the rule set to use for this installation.
3. To make the specified rule set the default for all future installations, mark Make this the default rule set for all Windows Installer files.
4. In the Component Key Values section, select an option from the Default list to determine the naming convention for new components. If the rule set you use specifies the component naming under certain conditions, the naming convention you specify here will be overridden when those conditions are met.
Setting Up
Set component key to a named Base
Select this to name new components with specified text plus an incremental number. Selecting this option enables the Base field. Enter text to serve as a base for the component name (example: Component). Component names will be incremented from this base (example: Component1, Component2, and so on).
Set component key to key of keypath or first resource
Select this to name components as follows:
If the resource is a file, registry key, or ODBC data source, give the
component the same name as the key of the keypath.
For any other type of resource, give the component the same name as the
key of the first resource in the component.
Set component key to table name of keypath or first resource
Select this to give new components the name of the table in which the keypath or first resource resides. If multiple components are named for the same table, an incremental number is added to the component name (example: File1, File2, and so on).
5. From Files, you can select a different naming convention for components that are based on file resources. You can use the long file name of the keypath file, the short file name of the keypath file, or the naming convention specified i n the Default field above.
6. To make the options in the Component Key Values section the defaults for all future installations, mark Make this the default key naming convention for all installations.
7. Click OK on the Component Rule Selection dialog box.
Windows Installer Editor Reference 51
All resources that you add to this installation from this time forward will be organized into components according to the rule set and other conventions you specified.
See also:
Component Rules on page 49
Using Component Rules to Align GUIDs in an Upgrade
Component rules can help you align component GUIDs in an upgrade with component GUIDs in previous versions of the installation. If GUIDS or key paths for the same component don’t match between the new and old .MSI, the component could inadvertently get deleted because Windows Installer does not recognize the components as being the same. Aligning component GUIDs for matching components prevents upgrades from deleting necessary files in the newer version.
If you are working on an upgrade installation, you specify the previous versions of the installation on the Previous Installation Versions dialog box. Then, make sure you use a component rule set that contains a rule for aligning component GUIDs with previous versions. Example: The two predefined rule sets contain a rule in which, if the keypath resource matches a resource in the previous .MSI list, the component layout of the previous .MSI is matched and the component key is set to match the previous version. All new resources you add to the upgrade installation will be checked against the previous installations.
Setting Up
T o en sure that all resources you add to an upgrade instal lation are aligned with previous versions, specify the previous installation versions before adding any resources to the installation. If you have already added resources to the installation, as is the case w hen you use a copy of a previous .WSI as a starting point for creating an upgrade installation, you must run UpgradeSync to align GUIDs for existing components.
To use component rules to align GUIDs in an upgrade
1. Create or open the upgrade installation.
2. If you have already added resources to the upgrade installation, run UpgradeSync to align GUIDs for existing components.
See Using UpgradeSync in the Wise Package Studio Help.
3. Select a rule set to use for this upgrade. See Selecting a Component Rule Set on page 51. Make sure the rule set you select contains a rule for aligning component GUIDs with
previous versions; this should be the first rule in the rule set. For best results, use the same rule set, if any, that was used in the previous
versions. That way, component creation in the upgrade will be consistent with the previous versions.
4. Select Component Rules menu > Previous Versions. The Previous Installation Versions dialog box appears.
5. On the Previous Installation Versions dialog box, specify the previous versions of this installation.
To add a previous version .MSI to the list, click Add, click to browse to the
Windows Installer Editor Reference 52
.MSI, and click Open. The .MSI is added to t he list.
The previous versions will be checked in the order they appear in this list.
6. Click OK on the Previous Installation Versions dialog box. All new resources you add to the upgrade installation will be checked against and
aligned with the previous installations you specified.
See also:
Component Rules on page 49
Customizing Component Rules
If the predefined component rule sets do not reflect your organization’s standards, you can create a new rule set. The predefined rule sets, Microsoft Best Practices and One file per component, are read-only and cannot be modified. However, you can copy a predefined rule set and modify the copy.
When creating new rules, refer to Microsoft’s rules for creating components. See Organizing Applications into Components and Changing the Component Code in the
Windows Installer SDK Help.
Warning
If you are sharing component rules, when you edit existing rule sets your changes will overwrite rule sets used by other members of the team.
Setting Up
To add a new component rule set
1. Select Component Rules menu > Customize. The Component Rules Manager dialog box appears, listing the predefined rule sets
and custom rule sets you have created.
2. Click New. The Enter Rule Set Name dialog box appears.
3. Enter a unique Rule Set Name to identify this rule set and click OK. The new rule set name appears and is selected in the Component Rules Manager
dialog box.
4. Click Modify. The Customize Component Rules dialog box appears.
5. On the Customize Component Rules dialog box, click Add to add the first rule for this rule set.
This starts the Component Rule Wizard, which you step through to add the conditions and actions that comprise the rule.
See Adding and Editing Component Rules on page 54.
6. When you finish adding rules to the rule set, click OK on the Customize Component Rules dialog box and then click OK on the Component Rules Manager dialog box.
The new rule set is added to the list of available rule sets. To use the new rule set for the current installation or to make it the default for all future installations, you must select it.
See Selecting a Component Rule Set on page 51.
Windows Installer Editor Reference 53
Setting Up
To customize an existing component rule set
1. Select Component Rules menu > Customize. The Component Rules Manager dialog box appears, listing the predefined rule sets
and any custom rule sets you have created.
2. Click a rule set.
T o copy the rule set, click Copy, type the new name on the Enter Rule Set Name
dialog box, and click OK.
To modify the rule set, click Modify. The Customi ze Component R ules dialog box
appears, where you can add, edit, and delete rules. See Adding and Editing Component Rules on page 54.
Note
If you selected a predefined rule set, all the buttons on the Customize Components Rules dialog box are unavailable because the predefined rule sets are read-only. However, you can use this dialog box to view the rules in a predefined rule set.
To rename the rule set, click Rename, type the new name on the Enter Rule Set
Name dialog box, and click OK.
To delete the rule set, click the Delete button to the right of the rule set name.
3. Click OK on the Customize Component Rules dialog box.
See also:
Component Rules on page 49
Adding and Editing Component Rules
You can add component rules to a rule set, edit existing component rules, and delete component rules.
The predefined rule sets, Microsoft Best Practices and One file per component, are read­only and cannot be modified.
Warning
If you are sharing component rules, when you edit existing rule sets your changes will overwrite rule sets used by other members of the team.
To edit a component rule
1. Select Component Rules menu > Customize. The Component Rules Manager dialog box appears, listing the predefined rule sets
and any custom rule sets you have created.
2. Click a rule set and click Modify. The Customize Component Rules dialog box appears.
To add a rule, click Add. This starts the Component Rule Wizard, which lets you
Windows Installer Editor Reference 54
define component rules. For details, see the procedure below.
Setting Up
To edit a rule, click the rule in the rules list and click Details. This starts the
Component Rule Wizard, which you can step through to change the rule name or change any of the conditions or actions. For details, see the procedure below .
3. When you finish, click OK on the Customize Component Rules dialog box. The Component Rules Manager dialog box reappears.
4. Click OK.
To add or edit a component rule
1. On the Name page of the Component Rule Wizard, enter a name for the new rule and click Next. If this is an existing rule, the name is already entered and you can accept or change it.
The Conditions page appears.
2. In the Which condition(s) do you want to check? list, mark the check box next to each condition to check.
When there are no conditions for performing the action(s) in this rule, select the condition Always perform associated action.
As you mark check boxes, the conditions appear in the Ru le description list. If you select a condition that is incompatible with a condition you have already selected, the first condition you selected is removed from the list.
3. If a condition contains underlined text, click the underlined text to open a Rule Details dialog box. There you can select a value for the underlined text.
Example: If you selected the condition Added resource is a file with name any, you would click the word any and enter a specific file name. Wildcards are allowed.
4. When you have added all conditions that comprise the rule, click Next on the Conditions page.
The Actions page appears.
5. In the Which action(s) do you want to perform? list, mark the check box next to the action or actions to perform.
The actions you mark appear in the Rule description list. If you select an action that is incompatible with an action you have already selected, the first action you selected is removed from the list.
6. If an action contains underlined text, click the underlined text to open a Rule Details dialog box. There you can specify a value for the underlined text.
Example: If you selected the action Set component key to Component, you would click the word Component and enter specific text.
7. When you have added all actions to the rule, click Finish on the Actions page. The Customize Component Rules dialog box reappears. The rule is displayed in the
upper list box and its details are displayed in the Rule description list.
8. You can continue to add and edit rules. When you finish, click OK on the Customize Component Rules dialog box.
The new rules are added to the rule set and the Component Rules Manager dialog box reappears.
9. Click OK.
Windows Installer Editor Reference 55
See also:
Component Rules on page 49
Microsoft Best Practices Component Rule Set
When you use this predefined rule set, components are created using the Microsoft component creation guidelines.
See Organizing Applications into Components and Changing the Component Code in the Windows Installer SDK Help.
If an added resource does not meet the conditions in a rule, the next rule is evaluated for that resource. If the resource does not meet the conditions in any of the rules, the component is created according to the final rule.
z Match components in previous versions of the .MSI
If the keypath resource matches a resource in the previous .MSI list, match the component layout of the previous .MSI and set the component key to match the previous version.
z Add all executable files to their own components
If the added resource is a 32-bit executable file (.DLL, .OCX, or .EXE), create a new component.
Setting Up
z Add all .TLB files to their own components
If the added resource is a .TLB file, create a new component.
z Group Matching .HLP and .CNT files together
If resource file names are the same and their file extensions are .HLP or .CNT, add them to the same component. The .HLP will be the keypath file.
z Group matching .CHM and .CHI files together
If resource file names are the same and their extensions are .CHM or .CHI, add them to the same component. The .CHM will be the keypath file.
z Put registry keys associated with files or components in matching
components
If the added resource is a registry key, and the registry value name or value refers to a file or component, add the resource to an existing component that contains the same type of resource.
z Put Current User registry keys in their own component
If the added resource is a registry key under HKEY_CURRENT_USER, add the resource to the component matching the conditions and set the component key base to CurrentUser. The component key base will be incremented for each new component matching this condition. Example: CurrentUser1, CurrentUser2, and so on.
z Put non-Current User registry keys in their own component
If the added resource is a registry key NOT under HKEY_CURRENT_USER, add the resource to an existing component that contains the same type of resource.
z Group all non-executable files to their own component
If the added resource is not a 32-bit executable file (.DLL, .OCX, or .EXE), add the resource to an existing component that contains the same type of resource.
z Name new non-advertised shortcuts by destination directory
If the added resource is a shortcut, add it to an existing component containing non­advertised shortcuts in the same destination directory.
Windows Installer Editor Reference 56
z Group non-keypath resources by resource type
If the added resource cannot be set to the keypath, that is, if it is not a file, registry key, or ODBC data source, add the resource to an existing component that contains the same type of resource.
z Create new components for resources not matching other criteria
For all other resources that do not match the criteria above, create a new component for the resource and set the component key to the table name of the keypath or the first resource. If multiple components are named for the same table, an incremental number is added to the component name. Example, File1, File2, and so on.
See also:
Component Rules on page 49
One File Per Component Rule Set
When you use this predefined rule set, each file you add to the installation becomes its own component.
If an added resource does not meet the conditions in a rule, the next rule is evaluated for that resource. If the resource does not meet the conditions in any of the rules, the component is created according to the final rule.
Setting Up
z Match components in previous versions of the .MSI
If the keypath resource matches a resource in the previous .MSI list, match the component layout of the previous .MSI and set the component key to match the previous version.
z Add all files to their own components
If the added resource is a file, create a new component.
z Put registry keys associated with files or components in matching
components
If the added resource is a registry key, and the registry value name or value refers to a file or component, add the resource to an existing component that contains the same type of resource.
z Put Current User registry keys in their own component
If the added resource is a registry key under HKEY_CURRENT_USER, add the resource to the component matching the conditions and set the component key base to CurrentUser. The component key base will be incremented for each new component matching this condition. Example: CurrentUser1, CurrentUser2, and so on.
z Put non-Current user registry keys in their own co mponent
If the added resource is a registry key NOT under HKEY_CURRENT_USER, add the resource to an existing component that contains the same type of resource.
z Name new non-advertised shortcuts by destination directory
If the added resource is a shortcut, add it to an existing component containing non­advertised shortcuts in the same destination directory.
z Group non-keypath resources by resource type
If the added resource cannot be set to the keypath, that is, if it is not a file, registry key, or ODBC data source, add the resource to an existing component that contains the same type of resource.
Windows Installer Editor Reference 57
Setting Up
z Create new components for resources not matching other criteria
For all other resources that do not match the criteria above, create a new component for the resource and set the component key to the table name of the keypath or the first resource. If multiple components are named for the same table, an incremental number is added to the component name. Example: File1, File2, and so on.
Windows Installer Editor Reference 58
Chapter 3
Working With Wise Installation Files
This chapter includes the following topics:
z Before You Create an Installation on page 59 z File Types on page 60 z Project Files and Database Files on page 61 z Target Platforms: 32-bit and 64-bit on page 62 z Starting a New Installation (page 70) z Options for New Ins tallations on page 73 z Opening an Installation Package on page 74 z Comparing Windows Installer Files on page 75 z Saving an Installation as XML on page 77 z Working With Installations in the Software Manager Database on page 77 z Compiling An Installation on page 78 z Testing and Running An Installation on page 80
Before You Create an Installation
To avoid interruptions during installation development, gather the following information before you begin creating an installation in Windows Installer Editor.
z All the files to install on the destination computer. This includes program files, files
necessary for optional features, related .DLLs, drivers, and other support files.
z Any third-party installations that the installation will provide. Example: Adobe
Acrobat Reader.
z Which files and other system changes comprise which features. (In Windows
Installer, a feature is a distinct part of your application’s functionality. Examples: a spell-checker, a thesaurus, or a collection of clip art.) If the installation will let end users select optional components, you must organize files into features when you create the installation.
z A list of the changes that must be made to system information files (examples: .INI
files, the registry, and so on) for your application to run properly.
z The application’s system requirements in as much detail as possible. Consider not
only memory and disk requirements, but also the minimum screen depth and resolution, and the minimum required version of the operating system.
z Any custom graphics, referred to as billboards, that should be displayed during
installation.
z Any changes that should be made to the dialog boxes that will be displayed during
installation.
Windows Installer Editor Reference 59
Working With Wise Installation Files
See Using the Dialogs Page on page 402.
z If applicable, a Readme file and a license agreement file.
File Types
In Windows Installer Editor, you can create and edit different types of Windows Installer database files. You can work in the Windows Installer database file or in a project file that contains instructions for compiling the Windows Installer database file.
See Project Files and Database Files on page 61. Following are the types of Windows installer files.
Extension Description
.MSI Windows Installer database, which is a distributable installation. The .MSI extension is
associated with the Windows Installer executable, MSIExec.EXE. When an .MSI is opened, Windows Installer executes it, th ereby installing the app lication. Y ou can open and edit an .MSI in Windows Installer Editor. However, options that have to do with creating an .MSI, such as those on the Releases, Release Settings, and Media pages, are unavailable.
You can convert an .MSI to a project file (.WSI). See MSI to WSI Conversion on page 356.
.WSI Windows Installer project file, which describes an .MSI but does not store contents. It
is in the same format as an .MSI. You edit a .WSI in Windows Installer Editor and compile it to the corresponding .MSI. The .WSI file is smaller than an .MSI and you can set multiple options for the output of the .MSI.
.MSM Windows Installer merge module, which is a pre-compiled library of components (files,
registry changes, and other system changes) that installs a discrete part of your application. It cannot be run alone, but must be merged with an .MSI during the .MSI compile.
See About Merge Modules on page 323.
.WSM Windows Installer merge module project, which describes an .MSM, but does not store
merge module contents. You edit a .WSM in Windows Installer Editor and compile it to the corresponding .MSM.
See About Merge Modules on page 323.
.MST Windows Installer transform, which changes a Windows Installer package at run time
and must be applied from the command line. See About Transforms on page 341.
.MSP Windows Installer patch, which updates an existing installed application. Patches
contain only the differences between the old and new versions of an application. Create a patch with the Patch Creation tool, which creates an .MSP file that you distribute to end users.
See Patch Creation in the Wise Package Studio Help.
.PCP Windows Installer patch project, which describes and compiles to a Windows Installer
patch. A .PCP file is created from the Patch Creation tool. See Patch Creation in the Wise Package Studio Help.
Windows Installer Editor Reference 60
Working With Wise Installation Files
Extension Description
.EXE You can compile an .EXE that encapsulates the .MSI or that calls an external .MSI.
Doing so gives you the option of pre-installing the Windows Installer runtime before performing your own installation, which ensures that the installation will run.
See Setting Build Options for a Release on page 193 and Adding Prerequisites to a
Release on page 198.
Project Files and Database Files
T ypically, the installation you distribute is an .MSI. Windows Installer operates on .MSIs, which are a type of relational database that stores installation information and files in tables.
See About Microsoft Windows Installer on page 494. On the Build Options page (see Setting Build Options for a Release on page 193) or on
the Media page (see Setting Up Media for Distribution on page 210), you can specify to output an installation in different ways:
z As a single-file .MSI, which contains compressed installation files. z As an .MSI that has external compressed .CAB files. z As an .MSI that has external uncompressed files. z As an .EXE that contains the .MSI and installation files. z As an .EXE that runs an external .MSI.
If you to output an .EXE, you can then pre-install Windows Installer or other runtimes. When you create an installation, you can work in a .WSI (project) file or an .MSI file. The same applies to merge modules; you can work in a .WSM (project) file or an .MSM
file.
If you work in a .WSI or .WSM (Wise project)
How are installation files and paths stored?
Can you create releases?
Compiling does what? Reads the project information and
Externally. The project contains paths to the installation files. During compile, they are compiled into the resulting .MSI or .EXE.
Yes. Use the Releases page and other Release Definition pages.
compiles a database file (.MSI or .MSM), which contains installation files.
If you work in an .MSI or .MSM (Windows Installer database)
Inside the database file. Files are refreshed from disk unless Don’t update or recompress files when saving is marked on the Product Details page.
No. Because you are already working in the final output file, options for multiple output files are unavailable, which includes all Release Definition pages.
Refreshes files from disk unless Don’t
update or recompress files when saving is marked on the Product Details
page.
Windows Installer Editor Reference 61
Working With Wise Installation Files
Can you switch from working on one file type to the other?
If you work in a .WSI or .WSM (Wise project)
You can switch from a project file to a database file by compiling the project, opening the resulting database file, and continuing development in the database file. However, an .MSI created by compiling a .WSI does not contain file paths; it contains only the files themselves. Therefore, any files added prior to the switch will not be refreshed from disk because they have no file path. Only those files you add after the switch contain file paths and are refreshed from disk.
If you work in an .MSI or .MSM (Windows Installer database)
Use MSI to WSI Conversion to convert an .MSI to a .WSI. It extracts installation files from an .MSI, saves them to disk at locations you specify, and creates a .WSI that points to those files.
See MSI to WSI Conversion on page 356.
Target Platforms: 32-bit and 64-bit
Windows Installer Editor supports the following types of installation packages:
z 32-bit installations that contain only 32-bit components z 64-bit installations that contain only 64-bit components z 64-bit installations that contain some 32-bit components
Windows Installer Editor supports both x64 (for AMD64 and Intel EM64T processors) and 64-bit Itanium platforms.
z An Itanium installation will not run on an x64 platform, and vice versa. z A 64-bit installation will not run on a 32-bit platform. z A 32-bit installation will run on any 32-bit or 64-bit platform.
Developing 64-bit Installations on a 32-bit Computer
You can develop a 64-bit installation on a 32-bit computer, with these limitations:
z On the Registry page, you cannot browse the 64-bit registry in the upper list box es.
However, you can add 64-bit registry keys in the lower list boxes, and you can import .REG files that contain 64-bit keys.
z You cannot test, run, or debug a 64-bit installation on a 32-bit computer.
See:
How to Specify the Target Platform on page 63 What’s Different in a 64-bit Installation? on page 63 32-bit Applications on 64-bit Computers on page 65 Guidelines for Creating Platform-Specific Installations on page 66 Creating Multiple, Platform-Specific Installations from One Project File on page 67
Using 64-Bit Windows Installer Packages in the Windows Installer SDK Help
Windows Installer Editor Reference 62
How to Specify the Target Platform
The target platform is stored in the Tem plate Summary property of the .MSI or .MSM (merge module). For an installation to run, the platform in the Template Summary property must match the platform of the destination computer.
The Template Summary property of the .MSI is set during compile based on the release’s Target Platform setting. The initial target platform for the Default release is set by the Target Platform option on the New Installation File dialog box.
Working With Wise Installation Files
If the release’s Target Platform setting is
32-bit Intel 64-bit (x64) x64 64-bit (Itanium) Intel64
then the Template Summary property value is
Viewing the Template Summary Property
This setting is visible under Setup Editor > Product tab > Summary. Do not change the target platform setting there.
When an installation project (.WSI) contains multiple releases that compile to 32-bit and 64-bit .MSIs, the Template Summary property reflects one platform or the other. The correct Template Summary property is set in each .MSI during compile.
See Template Summary Property in the Windows Installer SDK Help.
Additional Target Platform Settings
z Feature Details dialog box
To display this dialog box, double-click a feature in Installation Expert > Features page.
At run time, the destination computer’s platform determines whether a feature is available for installation. (Example: On a 64-bit destination computer, a feature that is designated as 32-bit does not appear to the end user and is never installed.)
This setting is used primarily to organize components by feature in a 64-bit installation that contains 32-bit components.
See Configuring a Feature Using the Feature Details Dialog on page 96.
z Component Details dialog box
To display this dialog box, select Setup Editor > Components tab, right-click a component, and select Details.
The 64-bit component check box designates a component as 64-bit. This is marked when you add 64-bit .EXE and .DLL files or 64-bit registry keys. If this is not marked, the component is registered as a 32-bit component.
What’s Different in a 64-bit Installation?
A 64-bit installation differs from a 32-bit installation in the following ways:
Windows Installer Editor Reference 63
Working With Wise Installation Files
General Information page
The minimum version of Windows Installer is set to 2.00 in the Installer Version field. Do not override this setting in a 64-bit installation, because 64-bit installations are not supported by Windows Installer versions earlier than 2.0.
Setup Editor > Product Tab > Summary icon
The Template Summary property is set to x64 or Intel64, which indicates the platform that is supported by the installation.
Condition Builder
Condition Builder contains additional property values:
z VersionNT64, which is set when the installation runs on a 64-bit platform. z Intel64, which is set when the installation runs on an Itanium platform. z Msix64, which is set when the installation runs on an x64 platform.
Files Page
Additional predefined directories appear in the lower-left list box: Program Files (x86) and Windows\SysWOW64. These are for 32-bit components in a 64-bit installation.
See Installation Directories on page 108.
Setup Editor > Tables tab
The Directory table contains additional, 64-bit specific folders.
Registry page
z The upper list boxes can display the 32-bit or 64-bit registry. The 6 4 -bit registry is
visible only if your computer is running a 64-bit operating system.
z The lower list boxes can display the 32-bit or 64-bit registry on any computer. z You can add registry keys and values to the 32-bit or 64-bit registry on any
computer.
See Registry Page on page 139.
Component Details dialog box
For a 64-bit component, the 64-bit component check box is marked and the Condition field contains (VersionNT64).
See Adding and Editing a Component on page 374.
System Search page
The Read Registry Value dialog box, which you access from the System Search page, contains a check box that lets you include 64-bit components in a registry value search.
See Searching For a Registry Value on page 174.
Prerequisites page
In a 64-bit installation, you can specify a prerequisite for the x64 or IA64 (Itanium) edition of the .NET Framework. To download these runtimes, u s e th e Wise Web Site option of the Download Redistributables wizard.
Windows Installer Editor Reference 64
Custom actions
Windows Installer Editor does not contain 64-bit versions of custom actions, however:
z When you create a custom action that calls a JScript or VBScript file, a check box
lets you indicate that the script needs to access 64-bit functionality and run in a 64­bit process.
z The following Call Custom DLL actions can call 64-bit .DLLs:
Call Custom DLL From Destination Call Custom DLL From Installation Call Custom DLL From Installed Files
Because .DLLs are processor-specific, the .DLL that you call must target the same platform (32-bit, x64, or 64-bit Itanium) as the installation. In a mixed-target project file (.WSI), condition each Call Custom .DLL custom action for the appropriate platform.
32-bit Applications on 64-bit Computers
WOW64 (Windows On Windows 64) is an emulator that lets 32-bit applications run on 64-bit versions of Windows. To prevent file and registry collisions, it isolates 32-bit applications from 64-bit applications by:
z Redirecting 32-bit applications to the Program Files (x86) directory.
Working With Wise Installation Files
z Redirecting system calls from 32-bit applications to the SysWOW64 directory. z Providing separate logical views of key portions of the registry, intercep ting 32-bit
registry calls to each logical registry view, and mapping them to the corresponding physical registry location. The reflection process is transparent to the application. Therefore, a 32-bit application can access registry data as if it were running on 32­bit Windows even if the data is stored in a different location on 64-bit Windows.
When an installation contains both 32-bit and 64-bit components, place files and registry keys in the appropriate location for the platform they target.
Resource Place 32-bit versions in Place 64-bit versions in
Program files (default directory)
Operating system components and shared libraries
Registry keys Do one of the following:
Program Files (x86) directory Program Files directory
Windows\SysWOW64 directory Windows\System32 directory
Do one of the following:
z Place the keys in the 32-
bit registry view. They will be installed in the WOW6432Node (for hives that have a WOW6432 node).
z Place the keys in the 62-bit registry view. z Mark the component as 64-bit on the
Component Details dialog box.
Search for “Running 32-bit Applications” and “WOW64 Implementation Details” in the MSDN Library (msdn.microsoft.com/library/).
Windows Installer Editor Reference 65
z Do not mark the
component as 6 4-bit.
Working With Wise Installation Files
Guidelines for Creating Platform-Specific Installations
The following guidelines refer to creating installations in Windows Installer Editor. For more general guidelines, see Using 64-Bit Windows Installer Packages in the Windows Installer SDK Help.
32-bit Installations That Contain Only 32-bit Components
z On the New Installation File dialog box, select 32-bit as the target platform. This
sets the initial target platform for the Default release.
z Set the target platform for all features to 32-bit. A 64-bit feature in a 32-bit
installation will never be installed.
z Add resources to the installation as usual. Do not add 64-bit components to a 32-bit
installation.
z Set the target platform for all re leases to 32-bit (this is the default).
64-bit Installations That Contain Only 64-bit Components
z On the New Installation File dialog box, select one of the 64-bit options as the target
platform. This sets the initial target platform for the Default release.
z Select the appropriate 64-bit target platform for all features. z Add resources to the installation as usual. When you add 64-bit .EXE and .DLL files
or 64-bit registry keys, they are designated as 64-bit components. (The 64-bit component check box is marked on the Component Details dialog box.)
z Select the appropriate 64-bit target platform for all releases. z AMD 64-bit computers require Windows Installer version 3.0 or later. If your
installation targets AMD 64-bit computers, include a system requirement to check the destination computer’s Windows Installer version.
64-bit Installations That Contain Some 32-bit Components
z Select the appropriate target platform for each feature, and add the correct type of
component to each one. Do not add a 64-bit component to a 32-bit feature, and vice versa, because it will never be installed.
When you add 64-bit .EXE and .DLL files or 64-bit registry keys, they are designated as 64-bit components. (The 64-bit component check box is marked on the Component Details dialog box.) When you add 32-bit files or registry keys, the 64- bit component check box is not marked.
z Select the appropriate target platform for each release. z AMD 64-bit computers require Windows Installer version 3.0 or later. If your
installation targets AMD 64-bit computers, include a system requirement to check the destination computer’s Windows Installer version.
You can create a single installation project (.WSI) that can produce 32-bit and 64-bit installation files.
See Creating Multiple, Platform-Specific Installations from One Project File on page 67.
Platform-Specific Merge Modules
z A 32-bit merge module can be merged into a 32-bit or 64-bit installation.
Windows Installer Editor Reference 66
Working With Wise Installation Files
z A 64-bit merge module can be merged into a 64-bit installation. The processor type
(x64 or Intel64) of the merge module must match that of the installation.
See also:
How to Specify the Target Platform on page 63
Using 64-bit Merge Modules in the Windows Installer SDK Help
Creating Multiple, Platform-Specific Installations from One Project File
You can create a single installation project (.WSI) that can produce 32-bit and 64-bit installation files, or x64 and Itanium installation files.
Example: You develop a graphics suite that consists of features for drawing, graphing, and page
layout. The application was originally developed as a 32-bit application, and you will continue to support a 32-bit version, but you also will release a version that contains some 64-bit components. To save development time, you want to maintain a single installation project (.WSI) that can produce installation files for both platforms.
Your options are:
z Organize the project by feature. Do this to let the end user choose from different
platform-specific features during installation. In a large installation, this method will work better than organizing the project by component.
Note
If you add a 64-bit component to a 32-bit feature, it will never be installed. A 64-bit component will be ignored during installation on a 32-bit computer, and a 32-bit feature will not be installed on a 64-bit computer.
z Organize the project by component. This method results in fewer features and
possibly less duplication. However, in a large installation, it might be less efficient to have to assign a target platform to each component.
To organize a mixed-platform project by feature
1. On the New Installation File dialog box, select x64 as the target platform.
2. On the Features page, create separate features for the different target platforms. Example:
This feature is used by both versions.
3. When you add files, registry keys, and other resources to the installation, be sure to select the appropriate feature. Example: Add Chart32.exe to the Charting32 feature, and add Chart64.exe to the Charting64 feature.
Windows Installer Editor Reference 67
Working With Wise Installation Files
4. In MSI Script, add a custom action to set the value of the INSTALLDIR property. See Defining the INSTALLDIR Property in a Mixed-Platform Installation on page 69.
5. On the Releases page, create a release for each target platform. Example: Graphic32, Graphic64.
6. On the Release Settings page, select the features to include in each release. Example:
Select the 64-bit release
Select the features to be installed on 64-bit platforms
7. Compiling the project creates the following .MSIs:
Graphic32.msi, which runs installs only 32-bit components and runs on any
platform. Its Template Summary property is set to Intel, which represents a 32­bit installation.
Graphic64.msi, which installs both 32-bit and 64-components and runs on x64
platforms only. Its Template Summary property is set to x64.
To organize a mixed-platform project by component
1. On the Features page, create a single set of features and set their target platform to All Processors. Example:
2. When you add files, registry keys, and other resources to the installation, put both 32-bit and 64-bit items in a single feature. Example: Add both Chart32.exe and Chart64.exe to the Charting feature.
3. In MSI Script, add a custom action to set the value of the INSTALLDIR property. See Defining the INSTALLDIR Property in a Mixed-Platform Installation on page 69.
4. On the Releases page, create a release for each target platform. Example: Graphic32, Graphic64.
Windows Installer Editor Reference 68
Working With Wise Installation Files
5. On the Release Settings page, select the components to include in each release. Example:
Select the 64-bit release.
Select the features to be installed on 64-bit platforms.
Within each feature, select the components to be installed on 64-bit platforms.
6. Compiling the project creates the following .MSIs:
Graphic32.msi, which installs only 32-bit components and runs on any platform.
Its Template Summary property is set to Intel, which rep r esents a 32-bit installation.
Graphic64.msi, which installs both 32-bit and 64-components and runs on 64-
bit platforms only. Its Template Summary property is set to x64.
See also:
Configuring a Feature Using the Feature Details Dialog on page 96 Customizing a Release on page 188 Defining a Feature and Component Set for a Release on page 190
Defining the INSTALLDIR Property in a Mixed­Platform Installation
The INSTALLDIR build property represents the main installation directory for the application. By default, it is set to the first directory you create under the Program Files folder on the Files page. A mixed platform project has two installation directories: one under Program Files and another under Program Files (x86). However, the INSTALLDIR property can have only one value. To see this, go to the Files page and view the subdirectories of Program Files and Program Files (x86); only one will be designated as the INSTALLDIR.
To define the second installation directory, add a custom action to set the default value of INSTALLDIR based on the destination computer’s platform. Place the custom action at the beginning of the installation initialization. You only need a custom action for the undefined installation directory.
Windows Installer Editor Reference 69
Example: The installation directory is Program Files (x86)\QuickFacts. In MSI Script, enter the following custom action:
If VersionNT64 then
Set Property INSTALLDIR to [ProgramFiles64Folder]\QuickFacts
End
If the destination computer’s target platform is 64-bit, then the default installation directory is Program Files\QuickFacts. If it is 32-bit, then the original installation directory is used.
See also:
Creating Multiple, Platform-Specific Installations from One Project File on page 67 About MSI Script on page 440 Custom Action Reference on page 460
Starting a New Installation
Follow the steps below to create a new standard Windows Installer installation. You can create other types of installations.
Working With Wise Installation Files
See Options for New Installations on page 73.
To start a new installation
1. In Wise Package Studio, do one of the following:
On the Projects tab, click the Run link to the right of the task or tool associated
with Windows Installer Editor. The installation associated with the current project might be opened by default. This tool might open to a different view based on command-line options defined in Process Templates Setup.
On the Tools tab, double-click Windows Installer Editor.
The New Installation File dialog box appears. If it does not appear, select File menu > New.
2. In the Categories list, click Predefined Templates.
3. In the Templates/Tools list, click the Windows Application icon. A Windows Application installation is a standard installation intended for a Windows
computer or server.
4. In the File type section, specify the type of file to create:
Create an .MSI (Windows Installer database), which is a distributable
installation.
Create a .WSI (Windows Installer project), which contains instructions for
compiling an .MSI.
See Project Files and Database Files on page 61.
5. Select a target platform: 32-bit, 64-bit (x64), or 64-bit (Itanium). See How to Specify the Target Platform on page 63.
6. If the application has been written to be installed and run by standard users without elevation, mark Create a Vista Standard User Installation. This clears the
Windows Installer Editor Reference 70
Enable User Account Control (UAC) check box in Installation Expert > Windows Installer Options page.
See Creating an Installation for Standard Users on page 71.
7. Click OK. The new installation opens.
About Standard User Installations
¾ Windows Installer 4.0 or later only.
The User Account Control (UAC) that was introduced with Windows Vista provides a temporary privilege-elevation model. A standard user installation is one in which the UAC is disabled so that standard users can install it without elevation. The installation cannot contain actions that access a protected area on the destination computer.
During development, a standard user installation behaves as follows:
z Windows Installer Editor warns you when you make a change in the installation that
is incompatible with a standard user installation:
On the Files page, the default installation folder in the lower-left list box is
Windows\Profiles\Local Settings\Application Data instead of Program Files.
On the Files page, a warning message appears when you try to add a file to a
protected area.
Working With Wise Installation Files
On the Registry page, a warning message appears when you try to add a
registry key to a protected area.
z The DisableUAP property is set, which hides the option to install for all users or the
current user on the installation’s User Information dialog box.
See Creating an Installation for Standard Users on page 71. At run time, a standard user installation behaves as follows:
z The Destination Folder dialog box does not appear because letting the end user
change to a directory that is not per-user would cause the installation to fail.
z The User Account Control dialog box that prompts end users for administrator
credentials does not appear.
z If the installation tries to access a protected area, it fails.
Installations that were created in a Wise product earlier than Wise Package Studio 7.0 SP1 or Wise Installation Studio 7.0 run as if User Account Control is enabled.
See also About UAC Elevation of Windows Installer Installations on page 178.
Creating an Installation for Standard Users
¾ Windows Installer 4.0 or later only.
A standard user installation is one in which the UAC is disabled so that standard users can install it without elevation. The installation cannot contain actions that access a protected area on the destination computer.
See About Standard User Installations on page 71.
Windows Installer Editor Reference 71
To create a standard user installation
1. Do one of the following:
In Installation Expert > Windows Installer Options page, clear the Enable User
Account Control (UAC) check box.
See Setting Version-Specific Windows Installer Options on page 176.
On the New Installation File dialog box, mark Create a Vista Standard User
Installation. This clears the Enable User Account Control (UAC) check box
in Installation Expert > Windows Installer Options page.
2. As you develop the installation, do not access or install to protected areas. Example: the Program Files or Windows System directories, or the HKLM or HKCR sections of the registry.
Creating a Device Driver Installation
You can create an installation that supports Microsoft Driver Install Frameworks (DIFx). Microsoft created the Driver Install Frameworks to significantly improve the quality of device driver installations. For information on DIFx, search for “DIFx” in the MSDN Library (msdn.microsoft.com/library/).
The Microsoft DIFxApp merge module simplifies the process of creating installations that install device drivers. This merge module adds custom actions to the installation that are needed to install and uninstall the driver package using Driver Install Frameworks for Applications (DIFxApp). After you add the merge module, you add the files that make up the driver package and specify the DIFxApp options for installing the driver.
Working With Wise Installation Files
To create a device driver installation
1. Use the Download Redistributables wizard to download the latest version of the DIFxApp merge module from the Wise Web site, if you have not already done so.
See Downloading Redistributable Files on page 30.
Note
Early versions of this merge module might be named “Binaries.”
2. Make sure the device driver you are installing meets the Microsoft DIFx driver requirements.
3. Do one of the following:
Start a new installation and select the Device Driver icon on the New
Installation File dialog box. See Starting a New Installation on page 70.
Open an existing in stallation.
4. On the Merge modules page, add the Microsoft DIFxApp merge module to the installation.
See Adding a Merge Module to an Installation on page 338.
5. On the Features page, add a feature for the installation’s driver package. See a Adding a New Feature on page 94.
6. On the Files page, do the following. See Adding Files to an Installation on page 109.
Windows Installer Editor Reference 72
a. Select the driver package feature. b. Create a unique directory for the driver package. c. Add the driver package’s .INF file to the directory you created. d. The driver package’s .INF file must be the first file added to this directory so
that it becomes the key path of the component.
e. Add the other files that make up the driver package to the same directory that
contains the .INF file. f. In the lower-right list box, double-click the .INF file. g. The File Details dialog box appears. h. Click the Driver tab and edit the DIFxAPP options.
See Editing DIFxApp Options on page 132.
7. To add additional driver packages repeat the preceding steps, except for adding the DIFxApp merge module.
8. Continue developing the installation.
Options for New Installations
Working With Wise Installation Files
When you create a new installation, the New Installation File dialog box appears and provides options for starting an installation. Most of the options use a template to start a specific kind of installation. If you have created custom templates, they appear as additional options for new installations.
See Creating and Editing Installation Templates on page 48. This section describes the options that are available.
Windows Application
Creates a standard installation with default settings. See Starting a New Installation on page 70.
Device Driver
Creates an installation that installs a device driver. This template supports Microsoft Driver Install Frameworks (DIFx). Use it with the DIFxApp merge module that adds custom actions to the installation that are needed to install and uninstall the device driver package using Driver Install Frameworks for Applications (DIFxApp).
See Creating a Device Driver Installation on page 72.
Web Application
Creates an installation intended to be run on Microsoft Internet Information Server (IIS).
See About Web Installations on page 245.
Server Application
Creates an installation intended to be run on Microsoft IIS, with an additional dialog box for recording logon information.
Windows Installer Editor Reference 73
Working With Wise Installation Files
See Obtaining Logon Information From a Dialog on page 425.
Windows Mobile
Opens the Windows Mobile wizard, which lets you add Windows Mobile .CAB files to a desktop installation. The wizard is also accessible from the Mobile Devices page.
See Adding Windows Mobile Files on page 220.
Palm Application
Opens the Palm OS wizard, which lets you add Palm OS files to a desktop installation. The wizard is also accessible from the Mobile Devices page.
See Adding Palm OS Files on page 223.
Transform
Lets you change any aspect of an installation by creating a transform based on changes that you make to the installation.
See Creating a Transform Based on an Existing .MSI on page 342.
Universal Transform
Lets you create a universal transform containing limited changes that can be applied to any .MSI.
See Creating a Universal Transform on page 344.
Merge Module
See Creating a Merge Module As a New Installation on page 328.
Import Tools
The following tools open an import wizard, where you select a development project file to import. Target file information is extracted from the project file and added to the installation.
See Import Visual Studio Projects on page 352.
z Visual Basic z Visual C# z Visual J#
Opening an Installation Package
The Open dialog box might contain the following tabs that let you open different items:
z File System tab: Opens a package from a directory on your computer. z Repository tab: Opens a package from the Wise Software Repository.
The Repository tab on the Open dialog box provides a centralized list of installation packages and eliminates the need to navigate your file system to find an installation file. When you select a package from the repository:
The package opens from its location in the repository.
Windows Installer Editor Reference 74
Typically, this is the Scripts, Projects, or Available Packages directory.
Working With Wise Installation Files
If the package status is Available, you are prompted to change the status to
Under Development.
Warning
Use caution when changing available packages, because they might have been deployed to end users.
If you try to save the package, a prompt asks if you want to overwrite the file
that is in the repository.
If the package is checked into the Software Manager Revision Control, you
might see additional prompts when you try to edit or save it.
To open a package from a directory:
Click the File System tab on the Open dialog box and navigate to a package. This is the same as the standard Windows Open dialog box.
To open a package from the Wise Software Repository
1. Click the Repository tab on the Open dialog box. Packages are displayed in the list box if they have a valid path to an installation file
(.MSI, .WSI, and so on). If a package’s path to its installation file is missing or broken, or is not accessible by the current computer, that package is not listed. Also, subscription packages are not listed.
2. Database displays the current Software Manager database. To select a package from a different database, click .
The Select Data Source dialog box appears. This is a standard Windows ODBC connection wizard, which lets you connect to a database through an ODBC data source.
3. Specify criteria for filtering the packages that are displayed above:
Groups
This lists the groups defined in Software Manager.
Status
This lists the possible package statuses.
Package Type
This lists the available package types.
4. Select a package in the list and click Open.
If you change an installation that you opened from the repository, re-import it into the Software Manager database. Otherwise, changes will not be reflected in the repository.
Comparing Windows Installer Files
Visual MSIDiff™ lets you compare the following types of files and see the differences in Setup Editor > Tables tab: .MSI, .WSI, .MSP, .MSM, .W SM, or .MST files. You can compare an .MSP file only with its base .MSI.
Note
Revision Control in Software Manager runs Visual MSIDiff to compare versions of a package. (Not available in Standard Edition.)
Windows Installer Editor Reference 75
Working With Wise Installation Files
See Revision Control in the Software Manager Help.
Options for Comparing Files
z Compare the current file to another file. z Compare any two files. z Compare a transform to its base .MSI, to see the items that the transform changes
in the .MSI.
To view differences between two Windows Installer files
1. Open a file.
2. Select Tools menu > Visual MSIDiff and then select an option.
Compare Current File to Another File
The Compare Windows Installer Files dialog box appears. Specify the file to compare to the current file. To have the file you specify in Compare To treated as the newer file in the comparison, mark the dialog box’s check box. To compare an .MSP to an .MSI, the current file must be the .MSI. An .MSP is always treated as the newer file. Click OK.
Compare Any Two Files
The Compare Windows Installer Files dialog box appears. Specify the files to compare. The file you specify in the Base File field becomes the current file. To compare an .MSP to an .MSI, the Base File must be the .MSI. To have the file you specify in Compare To treated as the newer file in the comparison, mark the dialog box’s check box. An .MSP is always treated as the newer file. Click OK.
Compare Transform to Base .MSI
(Transform files only.) Automatically compares the .MST to its base .MSI.
You are taken to Setup Editor > Tables tab and the Visual MSIDiff Key dialog box appears, which describes icons that indicate changes. Changes are shown in the tables and rows where they occur.
3. On the Visual MSIDiff Key dialog box, take note of the symbols and colors that indicate changes and click OK.
If the Visual MSIDiff Key dialog box does not appear, you might have mark ed its Do not show this dialog again check box. You can reactivate this prompt in Wise Options.
4. Scroll through tables on the Tables tab, looking for the symbols for changed tables. Click on changed tables to view differences in rows, which are indicated by symbols and colors.
As you work in the installation file, the symbols indicating changed items are updated dynamically. The compare stays on until you end it.
5. To end the compare, select Tools menu > Visual MSIDiff > End Current Compare. This turns off compare symbols and closes the comparison file.
You can also start Windows Installer Editor in the Visual MSIDiff mode from a command line.
See Command Line Options For WFWI.EXE on page 238.
Windows Installer Editor Reference 76
See also:
Tables Tab on page 380
Saving an Installation as XML
You can save a copy of an installation (.WSI, .MSI, WSM, or .MSM) in XML format. This lets you check the XML version of the installation into a text-based source code control system (SCCS), use text-based file comparison tools to find changes, or perform analyses with XML reporting tools.
You can set a global option in Wise Options to create an XML copy every time you save an installation file, or you can export to an XML file on an as-needed basis. Depending on the size of the installation file, creating an XML copy can take several minutes.
You cannot open an XML-format file in Windows Installer Editor.
To create an XML file during saves
Use this method when you plan to check the XML file into an SCCS from Windows Installer Editor. This ensures that the XML copy is always synchronized with the original installation file.
1. Select Tools menu > Options and click the General tab.
Working With Wise Installation Files
2. Mark the Create XML copy during save check box.
This global option causes an XML copy to be created every time you save an installation file. The copy has the same name as the installation file with the extension .XML appended, and it is saved in the same directory. (Example: If the current file name is Application.wsi, the XML copy is named Application.wsi.xml.)
To export an XML file as needed
Use this method when you do not have an integrated SCCS, or to compare the version of the installation you’re working in to the version that you checked out of your SCCS.
1. Select File menu > Export to XML.
2. In the Save As dialog box that appears, specify a file name with the extension .XML and click Save.
If you have not named the installation file yet, name and save the installation file on the Save As dialog box. When the Save As dialog box reappears, specify the .XML file.
The current installation is saved and exported to XML format.
Working With Installations in the Software Manager Database
There are restrictions on editing and saving an installation that has been added to the Software Manager database (either by adding its meta data or importing it).
When the package path matches a package in the database
If you open an installation file and the Software Manager database contains a package with the same package path, the application and package names on the Product Details
Windows Installer Editor Reference 77
Working With Wise Installation Files
page are unavailable. This is because the installation is connected to the package in the database. You can only edit these names on the Package Attributes dialog box in Software Manager.
If you edit the installation’s meta data, the meta data in the database is updated when you save the installation. If you change the installation, re-import it to the Software Manager database to update its resources.
Opening a copy of a package in the database
If you open an installation file that is a copy of a package in the Software Manager database, the application and package names are populated and enabled. Change one or both of these names before saving the installation to avoid overwriting the package in the database. Then, when you then save the installation, a new package and its meta data are added to the Software Manager database.
Example: You want to create a patch for an installation that is in the Software Manager database. You open a copy of the installation file to change it. Before you save the installation, you change its package name on the Product Details page. When you save the installation, a new package with the same application name, and its meta data, are added to the database.
Duplicate package in Software Manager Database dialog box
If you open an installation file that is a copy of a package in the Software Manager database, and you don’t change the application and package name on the Product Details page, the Duplicate Package in Software Manager Database dialog box appears when you try to save the installation. Select an option and click OK:
z Create a New Package (recommended)
Mark this to create a new package in the Software Manager database. The Product Details page opens so that you can change the application or package name before saving the installation file.
z Overwrite Existing Package
Mark this to overwrite the package in the Software Manager database. The meta data of the package in the database is overwritten, and its resources are removed from the database.
z Work Disconnected
Mark this to keep the installation file disconnected from the Software Manager database. When you save the installation, its meta data is not added to the database.
To connect the installation file to the Software Manager database, change the application or package name on the Product Details page and save the installation. A new package and its meta data are added to the database.
Compiling An Installation
Compiling an installation compresses its files, builds .CABs if necessary, and creates the installation .MSI. Depending on the .EXE option you select on the Build Options page, compiling can also create an installation .EXE.
Multiple Releases
The number and type of files that are generated depend on the settings you select on the Build Options and Media pages. If the installation contains multiple releases, all
Windows Installer Editor Reference 78
Working With Wise Installation Files
releases in the installation are compiled. To compile a specific release, go to the Releases page, select one or more releases, and click the Compile but ton at the right of the Releases page.
Speeding the Compile
If you are working in a .WSI or .WSM file, you can use either of the following methods to speed the compile process:
z Mark the Enable Quick Compile check box in Wise Options. Quick Compile
compresses only previously uncompressed or changed files. If a file or media entry has changed, a full compile occurs instead.
See Setting General Options on page 34.
z Use ExpressBuild, a multi-processor compile feature.
See About ExpressBuild on page 39.
To compile an installation
1. Click Compile at the lower right of the main window.
2. Select the type of compile from the button menu. (Not available in Standard Edition.)
With Enterprise Management Server, Security Setup determines whether these options appear.
z Local Compile
The package is compiled locally. If the installation contains files that have missing or invalid source paths, the
Welcome dialog box of the Remove Missing Files tool appears. This lets you remove those files if they should not be in the installation.
See Removing Files With Missing or Invalid Source Paths on page 361.
z Remote Compile
The package is compiled on the Wise Package Studio server and the operation is managed by the Wise Task Manager. The package must be in the share point directory, and its source files must have UNC or relative paths. Before the package is compiled, it is saved and closed in Windows Installer Editor.
See Wise Task Manager in the Wise Package Studio Help.
Compile Results
If you are working in an .MSI or .MSM, compiling saves the file. If file paths are stored in the .MSI, compiling first refreshes the files with the latest version. If files cannot be read, or other errors occur, errors are listed in the Task List. Use the Task List to determine the source of the errors.
See Using the Task List on page 25. If you see messages that files are missing, you can suppress the file refresh by marking
the Don’t update or recompress files when saving check box on the Product Details page.
If merge modules are missing, you can download them using Help menu > Download Redistributables.
See also:
Windows Installer Editor Reference 79
Testing An Installation on page 80 Running An Installation on page 81 Running the Debugger on page 437
Testing and Running An Installation
To test an installation, you can:
z Test the installation, which appears to run but does not install files or change the
system. See Testing An Installation on page 80.
z Debug the installation in an .MSI debugger, which lets you step through the
installation while viewing the property values and other table data. This actually runs the installation, and lets you see exactly what it is doing at any time.
See Running the Debugger on page 437.
z Run the installation on your computer, which installs files and changes the system.
See Running An Installation on page 81.
z Run the installation and install it into a virtual layer. After you test the installation,
you can then delete the layer to restore your computer to its original state. See Running An Installation on page 81.
Working With Wise Installation Files
Note
When working in a .WSI, you can set the installation to generate more than one installation program by adding releases to the Releases page. If you test, debug, or run an installation that contains multiple releases, you are prompted to select a release.
Testing An Installation
You run an installation in test mode, which does not install files or change the system. This lets you run through the user interface and logic of an installation without making changes.
To test an installation
1. Click Test at the lower right of the main window.
2. If you have added command lines to the Command Line page, a menu appears with further options. The menu contains the names of all command lines you created. You can test with a command line by selecting its name. To avoid having to select from the button menu, press Ctrl+T to test with no command line.
3. If you are working in a .WSI that contains multiple releases, you are prompted to select one.
The installation is compiled and run in test mode.
Note
If you change the installation and then test it, but the change is not apparent, close the installation. Reopen it and compile it, and then run it again.
Windows Installer Editor Reference 80
Testing a transform or merge module
You cannot test a transform or a merge module by itself. It can only be run in conjunction with an .MSI. To run a transform or merge module, run the base .MSI from the command line with the appropriate command-line options, which are documented in the Windows Installer SDK Help.
See also:
Compiling An Installation on page 78 Running An Installation on page 81 Running the Debugger on page 437
Running An Installation
When you run an installation, you can either:
z Install it on your computer.
This runs the installation as it would run on the destination computer and makes changes to your computer.
z Install it into a virtual layer.
This creates a new virtual layer, installs the .MSI into the layer, and activates the layer. After you test the installation, you can delete the virtual layer to restore your computer to its original state. (Not available in the Visual Studio integrated editor.)
Working With Wise Installation Files
To perform side-by-side testing of two versions of an application without them interfering with each other, install one version into a virtual layer and the other version on your computer.
To run an installation and install it on your computer
1. Click Run at the lower right of the main window.
2. Select the type of installation from the button menu:
Force Reinstall
Normally, if an application is installed and you try to install it again, Windows Installer prompts you to remove it. This option uses command lines to bypass the uninstall. Existing resources are replaced, and new resources are laid down. (The command line msiexec.exe /FAMSUV [MSIFILENAME] is used.
See Command Line Options in the Windows Installer SDK Help.)
Uninstall --> Install
If the application is already installed, this option first uninstalls it, then installs.
Run
Runs the installation normally. If the application is already installed, you are prompted to uninstall it.
Other command lines
If you added command lines to the Command Line page, they also appear. To avoid having to select from the button menu, press Ctrl+R to run with no command line.
3. If you are working in a .WSI that contains multiple releases, you are prompted to select one.
The installation is compiled and run.
Windows Installer Editor Reference 81
Working With Wise Installation Files
Note
If you change the installation and then run it, but the change is not apparent, close the installation. Reopen it and compile it, and then run it again.
To run an installation and install it into a virtual layer
1. On the Wise Options dialog box, mark the Install into virtual layer from Run button option.
See Setting General Options on page 34.
2. Click Run at the lower right of the main window.
3. If you are working in a .WSI that contains multiple releases, you are prompted to select one.
The application is installed into a new virtual layer and activated. You can test the installation by viewing its installed files and running the application. If needed, you can edit the contents of the layer in the Virtual Package Editor. You might add or delete a file or registry key for testing purposes. You can then delete the layer to restore your computer to its original state.
See About Installation Expert in the Virtual Package Editor Help.
To delete an installation installed into a virtual layer
Do one of the following:
z Install another installation into a virtual layer.
This removes the layer that was previously created and creates a new one.
z Close Windows Installer Editor. z Delete the virtual layer from the Symantec SVS applet.
The name of the virtual layer is WiseTemp_ProductName where ProductName is the value of the ProductName property.
See About the Altiris SVS Applet in the Virtual Package Editor Help.
Running a transform or merge module
You cannot run a transform or a merge module by itself. It can only be run in conjunction with an .MSI.
T o run a tran sform or merge module, run t he base .MSI from the co mmand line with the appropriate command-line options, which are documented in the Windows Installer SDK Help.
See also:
Testing An Installation on page 80 Running the Debugger on page 437 Compiling An Installation on page 78
Windows Installer Editor Reference 82
Chapter 4
Defining an Installation Project
This chapter includes the following topics:
z Project Summary Page on page 83 z Product Details Page on page 83 z General Information Page on page 89 z Add/Remove Programs Page on page 90 z Features Page on page 91 z Managing Binary Resources on page 102
Project Summary Page
The Installation Expert > Project Summary page provides the following information about the current installation project and quick access to areas of the installation:
z Links to Installation Expert pages that have content in the current installation and,
where appropriate, the number of items defined on each page. Examples: How many features are defined on the Features page, how many files
have been added to the Files page, and so on.
z Links to the Package Contents reports. z Installation package meta data (read-only). You can edit the meta data.
See Product Details Page on page 83.
A check box in Wise Options determines whether the Project Summary page appears when an installation is opened.
Product Details Page
Use the Product Details page to enter, edit, or view an installation’s meta data. Meta data is displayed for .MSI, .WSI, and .MST files. In the Value column of the Package
Meta Data table, you can enter or edit meta data that is not read-only.
Note
The meta data that appears when you create a transform comes from the base .MSI. If you change a transform’s meta data, it is set when the transform is applied.
Meta Data and the Software Manager Database
If you define meta data fields in Software Manager, they appear on the Product Details page unless the Software Manager database cannot be found. You can edit these meta data fields on the Product Details page or in Software Manager. In Software Manager, you can also change the order in which the meta data fields appear on the Product Details page.
Windows Installer Editor Reference 83
Defining an Installation Project
See Defining Custom Meta Data Fields in the Software Manager Help. For an .MSI or .WSI, you can add the meta data that appears on the Product Details
page to the Software Manager database. This lets you add package information to the Software Manager database early in the development or repackaging process. It also eliminates the need to enter the meta data manually in Software Manager and ensures that every package in the database has meta data that meets your corporate standards.
See Adding Meta Data to the Software Manager Database on page 86. See How to Get Packages Into the Software Manager Database in the Software Manager
Help.
To set product details
Select Installation Expert > Product Details page and complete the page:
z Application
Enter the name to use for this application in the Software Manager database. This can be the same as the Product Name meta data field. This field appears in an .MSI or .WSI only.
z Package
Enter a unique name to identify this package in the Software Manager database. Typically, you use the Application name plus specific version information. (Example: If the Application name is Product, the Package name might be Product 5.05.) This field appears in an .MSI or .WSI only.
z Product Type
(Read-only.) This displays Windows Installer for installations and Transform for transforms.
z Product Name
Enter the name of the application, which by default is the name of the first directory you create on the Files or Web Files page.
The end user sees this name during installation and in the Add/Remove Programs dialog box.
z Manufacturer
Enter the manufacturer or publisher of the application.
z Version
Enter the version number of the application. Windows Installer uses this to identify this application when subsequent patches or upgrades are applied. The version should be in the format AA.BB.CCCC.DDDD, where AA is the major version, BB is the minor version, CCCC is the build version, and DDDD is optional and ignored. It is stored as a string data type.
See Incrementing the Product Version on page 87.
Warning
If you are releasing a newer version of your application but are not using an upgrade or patch, it is very important to enter a new version on the Product Details page. Not doing so can cause the installation to open in maintenance mode instead of in normal installation mode. This can result in an installation that is a mixture of old and new files, which can cause errors in your application. The only exception is if the installation contains no new files, no deletion of files, and no other system changes, which means that only the contents of files are changed.
Windows Installer Editor Reference 84
Defining an Installation Project
z Default Directory
During installation, this directory is displayed to the end user on the Destination Folder dialog box, and the end user can change the default location for the application. (The Destination Folder dialog box is called the Single Feature Destination dialog box in Windows Installer Editor.) This defaults to the first directory you create on the Files or W eb F iles page. To change the default directory, select its value, click the Change button, and select a new directory.
See Setting the Default Installation Directory on page 88.
z Package Path
(Read-only.) This displays the installation file’s location.
z Repository ID
(Read-only.) This displays the package’s unique identifier in the Wise Software Repository, which Windows Installer Editor generates in the form of a GUID. This ID is generated when you save or compile an installation after entering the application and package names. It is also generated when you import a package in Software Manager, if it does not already exist.
z Product Code
Every Windows Installer installation must have a unique product code, which i s used as the principal identification for the application. Windows Installer Editor generates a product code in the form of a GUID, which ensures that no two applications ever have the same product code. To change the product code:
Select its value and click the Change button. On the dialog box that appears, click Yes to change the product code and the
upgrade code, or click No to change just the product code. If the installation is an upgrade of an existing installation, then change the product code only.
See Upgrades on page 305. Changing the product code also changes the package code. For information on
the product and package codes, see ProductCode Property , Package Codes, and Product Codes in the Windows Installer SDK Help.
See About GUIDs on page 497.
z Application Type
Specify whether this is a standard Win32 or a .NET installation. This also determines how Windows Installer Editor handles COM interoperability registry entries. This defaults to the Default Application Type that is specified in Wise Options.
See Setting .NET Assembly Options on page 35. The ability to create .NET installations is supported only by Windows Installer 2.0 or
later.
Win 32 (non .NET)
Select this if this is a standard Win32 installation without .NET assemblies.
.NET Application
Select this if this is a .NET installation with only .NET elements.
Mixed (.NET and Win32)
Select this if this installation contains both Win32 and .NET elements. When this option is selected, the Generate COM interop registry keys for .NET Assembly check box on the File Details dialog box > Self-registration tab is marked by default for all .NET assemblies you add to this installation. The
Windows Installer Editor Reference 85
Defining an Installation Project
assemblies will be registered so that they can be called as though they were COM elements.
When the .NET Application or Mixed option is selected, entries are created in the MsiAssembly and MsiAssemblyName tables for each assembly you add to the installation. The Global Assembly Cache directory also appears on the Files page.
z Installation Target
This value is for meta data purposes only. It does not change the installation.
Windows-based desktop/server PC
Mark this if the installation does not install a Web service to an IIS server. This is the default except for Web and server applications.
Windows-based IIS Web server
Mark this if the installation installs a Web application to an IIS serv er. This is the default for Web and server applications.
z Description
Describe the package. This becomes part of the package meta data when the package is imported into the
Software Manager database.
z Don’t update or recompress files when saving
(.MSI files only.) Files are stored in .MSI files either with a hard-coded path to the original, or without a path. For files with paths, Windows Installer Editor gets the latest copy of the file from the specified path when you save or compile the .MSI. Mark this to prevent Windows Installer Editor getting the latest copy of files that have paths.
If you clear this check box, files that are set to be compressed are not re­compressed when you save or compile.
Compression options are on the Media page.
z Increment version number on compile
Mark this to increment the third section of the version when the installation is compiled. Examples:
3.0.3790 is incremented to 3.0.3791
2.5 is incremented to 2.5.0001
Adding Meta Data to the Software Manager Database
For an .MSI or .WSI, you can add to the Software Manager database the meta data that appears on the Product Details page. This lets you add package information to the Software Manager database early in the development or repackaging process. It also eliminates the need to enter the meta data manually in Software Manager and ensures that every package in the database has meta data that meets your corporate standards.
To add meta data to the Software Manager database
1. Select Installation Expert > Product Details page.
2. Enter the Application and Package names. These fields appear in an .MSI or .WSI only.
See Product Details Page on page 83.
3. Select File menu > Save to save the installation.
Windows Installer Editor Reference 86
Defining an Installation Project
If this is the first time you have saved the installation, the Save As dialog box appears. Enter a name for the file and click Save.
4. If a package with the same application and package name is already in the Software Manager database, a warning message appears. Click OK and change either the application or package name to create a new package in Software Manager.
When you save the installation, its meta data is added to the Software Manager database and the Repository ID field is populated.
What happens when you add meta data to the Software Manager database?
z The meta data appears in Software Manager on the Package pane and the Package
Attributes dialog box. See About the Software Manager Window and Viewing and Editing Package
Attributes in the Software Manager Help. This only adds the package’s meta data to the Software Manager database. It does
not import the package’s resources. The package’s resources are imported by the Import Wizard in Software Manager.
z The package is assigned a status of New in Software Manager. You cannot change to
or from this status manually . A New package is changed t o Under Development only when you use the Import Wizard to import its resource information.
z The package is assigned a repository ID in the form of a GUID. If you make a copy
of the installation and change the copies application or package name, it is assigned a new repository ID.
z The Application and Package fields on the Product Details page are unavailable.
You can edit them on the Package Attributes dialog box in Software Manager. See Viewing and Editing Package Attributes in the Software Manager Help.
If you open an installation file that is a copy of the p ackage in the Softw are Manager database, the Application and Package fields are populated and enabled. Change one or both of these fields before saving the installation to avoid overwriting the package in the database.
See Working With Installations in the Software Manager Database on page 77.
z If you edit meta data on the Product Details page, the meta data in the Software
Manager database is updated when you save the installation. If you edit meta data in Software Manager, your edits appear on the Product Details page the next time you open the installation.
See How to Get Packages Into the Software Manager Database in the Software Manager Help.
Incrementing the Product Version
Windows Installer uses the version number of the application to identify the product when subsequent patches or upgrades are applied.
How do you set the version number?
The version number is stored in the Version field on the Product Details page. You can update the version number by changing the field.
Windows Installer Editor Reference 87
See Product Details Page on page 83. You can increment the version number automatically during compile by marking the
Increment version number on compile check box on the Product Details page.
When should you increment the version field?
z When you add or delete files from the installation. z When you create, remove, or edit any other items besides files. Examples: services,
ODBC, runtimes, registry, and so on.
z If you plan to create a patch that updates earlier versions to this version. z When you include upgrade entries on the Upgrades page of versions that this
installation will upgrade.
When can you leave the version field the same?
When you create an update that has all the same files as the original version, and only the contents of files have changed.
Setting the Default Installation Directory
During installation, this directory is displayed to the end user on the Destination Folder dialog box, and the end user can change the default location for the application. (The Destination Folder dialog box is called the Single Feature Destination dialog box in Windows Installer Editor.)
Defining an Installation Project
On the Product Details page, you can:
z Change the default installation directory. z Reset the default directory for features that use this directory. z Create a new directory as a child, or subdirectory, of an existing directory.
Note
When end users install your application, sometimes the installation directory defaults to the C drive, and other times it defaults to another drive. This happens because Windows Installer determines which drive has the most free space.
To set the default installation directory
1. Select Installation Expert > Product Details page.
2. Select the Default Directory value and click the Change button. The Set Default Install Directory dialog box appears. The Default Directory drop-
down list contains all the directories accessed by this installation, including predefined Windows directories.
3. From Default Directory, select a new default installation directory. If the directory you want is not listed, add it in Installation Expert > Files page. To create a new directory as a child of an existing directory, select a directory, click
the New Folder button and, in the Create New Folder dialog box, enter a name for the new subdirectory.
Windows Installer Editor Reference 88
4. Mark Change Feature configurable directories to have any features that explicitly reference the default directory change when you select a new default directory.
T o see if a feature explici tly references a directory, double-click the feature name on the Features page. If the Directory field does not contain <none>, then the feature explicitly references a directory.
5. Click OK.
General Information Page
Use the General Information page to set the summary information and the required Windows Installer version for the installation file. End users can see the summary information by right-clicking the compiled .MSI or .EXE in Windows Explorer and selecting Properties.
Note
In Windows Vista and later, the file Properties dialog box does not contain summary information.
For information on summary items, see Summary Property Descriptions in the Windows Installer SDK Help.
Defining an Installation Project
Select Installation Expert > General Information and complete the page:
z Title
Enter the name of the application. This field often includes a version number.
z Subject
Enter a brief description of the application.
z Author
Enter the author or publisher of the application. This field often includes a copyright notice.
z Keywords
Enter a list of keywords that the end user can use to search for this installation in Windows Explorer.
z Installer Version
(Read-only.) This displays the minimum Windows Installer version required on the destination computer to run this installation. This is not the version of the application. If the destination computer has an earlier version of Windows Installer, the installation fails.
T o change this v ersion, select Setup Editor > Product tab, click the Summary icon in the left pane, and double-click Minimum Installer Version in the upper-right pane.
If this is a 64-bit installation, the minimum version of Windows Installer is set to
2.00 or later. Do not change this value in a 64-bit installation. Microsoft Restrictions:
Windows Installer version 3.0 requires Windows 2000 SP 3 or later, Windows XP ,
Windows Installer version 4.0 requires Windows Vista or later.
Windows Installer Editor Reference 89
or Windows 2003.
z Comments
Enter comments about the application that this installation installs.
Add/Remove Programs Page
Windows operating systems have an Add/Remove Programs or Programs and Features applet that let end users uninstall, change, or repair programs. Use the Add/Remove Programs page to enter the information necessary to support these capabilities.
Select Installation Expert > Add/Remove Programs and complete the page:
z Do not display in Add/Remove Programs list
Mark this to exclude your application from Add/Remove Programs.
z Display in Add/Remove Programs list
Mark this to include your application in Add/Remove Programs and to set the following:
Display Icon
Specify an icon to appear next to the application name in Add/Remove Programs. If you leave this blank, a generic icon is used. Click Browse to select a file from the installation. If the file exists on disk, you also see an icon selection dialog box where you select the icon.
Defining an Installation Project
Icon Number
Enter the icon resource ID (preceded by -) or the icon number for the specified icon. Because a file can contain multiple icons, icons in a file are numbered, starting from zero. This is pre-filled if you selected an icon from the icon selection dialog box.
Hide modify button
Mark this to disable the Change button for your application in Add/Remove Programs. This prevents end users from changing the installation.
Hide remove button
Mark this to disable the Remove button for your application in Add/Remove Programs. End users will not be able to uninstall the application using Add/ Remove Programs.
z Support Information Page
The following information appears under the Support Information link in Add/ Remove Programs.
Product Updates URL
Enter a URL where end users can get online support for the application.
Contact Person
Enter the name of a person or department that end users can contact if they have questions. Examples: a support technician or the support department.
Phone Number
Enter the phone number for the contact person specified above.
Help URL
Comments
Windows Installer Editor Reference 90
Enter the path to a help file that will be installed on the destination computer.
Enter any additional comments for the end user.
Features Page
Use Installation Expert > Features page to create the structure of an installation by defining:
z What features make up the application. z How those features are presented to the end user during installation. z What conditions must be true for portions of features to be installed. z The target platform (32-bit, 64-bit, or both) for each feature.
Determine your application’s features and condit ions before configuring other aspects of the installation, because many of the pages in Installation Expert have a Current Feature drop-down list that lets you set options on a per-feature and per-condition basis.
See Working With Components and Features on page 496.
Defining an Installation Project
Hide repair button
Mark this to disable the installation repair option under the Support Information link in Add/Remove Programs.
See How to Specify the Target Platform on page 63.
Note
WiseScript Package Editor and WiseScript Editor refer to features as “components.”
To see a tree structure that lists all components, merge modules, files, registry entries, and other installation items associated with each feature, use Setup Editor > Features tab.
To specify which features are installed by default if the end user selects a Complete, Typical, or Custom installation type on the Installation Type dialog, use the Installation Types page.
See Setting Features for Installation Types on page 181. In an installation with multiple releases, you can deselect certain features for certain
releases on the Release Settings page. See Defining a Feature and Component Set for a Release on page 190.
About the Complete feature
In a new installation, the Features page already contains a feature named Complete, because every installation must contain at least one feature. You can rename the Complete featur e. You can delete it, but only after you create a second feature.
See Strategies for Organizing Files Into Features on page 92.
Working with the Features page
The tree structure on the Features page displays features and conditions, and their hierarchical relationships.
z T o add a new feature, cl ick its parent feature and click the Add button at the right of
the page. See Adding a New Feature on page 94.
Windows Installer Editor Reference 91
Defining an Installation Project
z To configure installation options for a feature, click its icon ( ) and select an
option from its drop-down list. See Configuring a Feature Using Its Drop-Down List.
z T o configure all items for a feature, click its name and click Details at the right of the
Features page. See Configuring a Feature Using the Feature Details Dialog on page 96.
z To delete a feature or condition, click its name and click Delete at the right of the
page. When you delete a feature, all its child features and conditions are deleted also.
z To rearrange features, click Move Up and Move Down at the right of the page. You
can move features within their current level only, in their current sibling group. You cannot move features to their parent or child levels.
z To add a condition to a feature, click its name and click Add Condition at the right of
the page. See Using Conditions With Features on page 100 and Adding and Deleting Feature
Conditions on page 101.
Use the right-click menu to:
z Expand or collapse a selected feature’s children. z Display hidden features. z Display the features’ titles as they appear on the Select Feature dialog box during
installation rather than the features’ names, which are used by Windows Installer.
Any display option you select from the right-click menu overrides the corresponding setting in Wise Options.
To see how features appear during installation
1. In a sample installation file, add a second feature on the Features page.
2. On the Files page, add a file to each feature. Select the feature from the Current Feature drop-down list before adding the file.
3. On the Dialogs page, clear the check box for Installation Type Dialog, and mark the check box for Select Feature Dialog.
4. Click Test in the lower-right of the main window.
The Select Feature dialog box in the installation reflects the options that you set on the Features page.
Strategies for Organizing Files Into Features
It is important to create and organize features and define conditions in a logical way; not doing so can result in non-functional versions of your application being installed.
Features in an installation appear in a tree structure, which lets you place features in hierarchical relationships. You can add a feature at the same level as another feature (sibling level) or as a child of another feature. Sibling features can be installed independently of each other, while child features can be installed only if their parent feature is installed.
Windows Installer Editor Reference 92
Defining an Installation Project
The core resources for an application should always be in a top-level feature. The core feature should install a functioning version of your application; it should have no dependencies on resources that are in optional features.
When Windows Installer repairs an installation due to corruption or deletion of a resource, it repairs the entire feature. Example: If an advertised shortcut is part of the top level feature, and that advertised shortcut gets deleted, the entire application is reinstalled during the repair. Therefore, isolate advertised shortcuts and their .EXEs into their own sub-features to avoid complete reinstallation and result in more efficient repairs.
The following examples illustrate several strategies for organizing files into features.
Place dependent features below required core files
The features Internal_Text_Editor and Internal_Graphics_Editor, which are built into the application, are dependent on the presence of the core application files, which are assigned to the Core feature. Make them children of the Core feature to ensure that they are never installed without the Core feature.
Dependent on Core feature
Place dependent features as siblings to core files, but require core files
The features Internal_Text_Editor and Internal_Graphics_Editor, which are built into the application, are dependent on the presence of the core application files, which are assigned to the Core feature. Becaus e they are siblings of the Core f eature, an end user might install the text editor feature or the graphics editor feature without installing the core feature, which would break the installation. To avoid this problem, make the Core feature required; double-click it and mark the Required Feature check box on the Feature Details dialog box. Required features cannot be turned off during installation. The advantage to this strategy is that during installation, the end user s ees the optional features at the top level instead of buried in the tree structure.
Windows Installer Editor Reference 93
Defining an Installation Project
Place stand-alone features as siblings
The features External_Text_Editor and External_Graphics_Editor are stand-alone applications, which can run independently of the core application. Therefore, you can make them siblings of the Core feature. An end user can install the text editor or the graphics editor without the core application.
Independent of Core feature
Use conditions with features
The Core feature has two conditions. VersionNT specifies that the operating system must be later than Windows Me, and Version9x specifies that the operating system must be Windows 95/98/Me. Because conditions appear in the Current Feature drop-down list, which appears on most Installation Expert pages, you can associate the same kinds of items with a condition that you can with a feature, including files, registry entries, shortcuts, services, and so on. Any items that you associate with either condition are installed only if the feature is installed and the condition is true.
See also:
Features Page on page 91 Creating Multiple, Platform-Specific Installations from One Project File on page 67
Adding a New Feature
To add a new feature
1. Do one of the following:
In Installation Expert > Features page, click the feature name under which the
In Setup Editor > Features tab, right-click the feature under which the new
Conditions
new feature should appear. Then click Add at the right of the Features page. To add the new feature at the top level, click Installation Features; to add the
new feature under a feature, click the feature’s name.
feature should appear, and select New > Feature.
Windows Installer Editor Reference 94
Defining an Installation Project
To add the new feature at the top level, right-click the Features icon; to add the new feature under a feature, right-click the feature’s name.
The Feature Details dialog box appears.
2. Complete the dialog box. See Configuring a Feature Using the Feature Details Dialog on page 96.
3. Click OK on the Feature Details dialog box. The new feature appears in the tree.
4. The order in which features appear on the Features page determines the order of the features on the Select Features dialog box that appears during installation. To rearrange the order, select a feature name and click Move Up or Move Down at the right of the Features page.
To edit a feature’s settings, double-click its name. To rename a feature, right-click its name, select Rename, and enter a new name. To delete a feature and its child features, right-click its name and select Delete.
See also:
Features Page on page 91 Strategies for Organizing Files Into Features on page 92
Configuring a Feature Using Its Drop-Down List
In Installation Expert > Features page, when you click the icon next to a feature name, a drop-down list that contains options for installing the feature appears. The option you set in this drop-down list determines the default state of the feature during installation. The drop-down list provides a way to set common options quickly. The icon itself provides a visual cue that indicating which options have been set.
The drop-down list options are a subset of the options that are available in the Feature Details dialog box, which you access by clicking the Details button at the right of the Features page.
Note
The first four options in the feature’s drop-down list set the default only; the end user can change the default during installation. To prevent the end user from being able to change the defaults you set here, you can turn off the Select Feature dialog box on the Dialogs page, use the Feature Details dialog box to set features to be required, or set features to be hidden from the end user.
To set options for a feature
Click the feature’s icon and select an option. You can select only one of the first four options, but you can set the fifth option, Hidden from user, in combination with any of the first four options.
z Will be installed on local hard drive
Make the feature default to being installed on the local hard drive. (This option corresponds to setting Favor Local in the Attributes drop-down list on the Feature Details dialog box.)
Windows Installer Editor Reference 95
Defining an Installation Project
z Will be installed to run from source
Make the feature default to being run from source. (This option corresponds to setting Favor Source in the Attributes drop-down list on the Feature Details dialog box.)
If a feature is installed to run from source, it is available to the application and visible to the end user, but is not actually installed on the local hard drive. When the feature is invoked, your application must call Windows Installer functions, such as MsiGetComponentPath, to locate and read the necessary files from the installation source, which might be a CD-ROM or shared network directory. Example: Use this option to specify a clip art library to run from the source. Then you must code your application to try to read from the installation source when the end user tries to use the clip art library.
z Feature will be installed when required
Make the feature default to being advertised. (This option corresponds to setting Favor Advertising in the Advertising drop-down list on the Feature Details dialog box.)
If a feature is advertised, it is av ailable to the application and visible to the end user, but is not actually installed on the hard drive. If the installation source, such as a CD-ROM or shared network directory, is available to the destination computer, the feature is installed when the end user invokes the feature. If the installation source is not available, the end user is prompted for the installation source.
z Entire feature will be unavailable
Prevent the feature from appearing during installation and from being installed. (This option corresponds to setting Never Install This Feature on the Level drop­down list on the Feature Details dialog box.)
z Hidden from user
Prevent the feature from appearing to the end user on the installation’s Select Features dialog box. Y ou can set this opti on in combination with any one of the other options above. (This option corresponds to setting Hidden in the Display drop­down list on the Feature Details dialog box.)
See also:
Features Page on page 91 Configuring a Feature Using the Feature Details Dialog on page 96
Configuring a Feature Using the Feature Details Dialog
When you create a new feature or edit an existing feature, you can configure the feature using the Feature Details dialog box. Access this dialog box from Installation Expert or Setup Editor.
See Adding a New Feature on page 94. For technical information on the fields on this dialog box, see Feature Table in the
Windows Installer SDK Help.
Windows Installer Editor Reference 96
Defining an Installation Project
Note
Some options on this dialog box set the default only; the end user can change the default during installation. To prevent the end user from being able to change the defaults you set, you can turn off the Select Feature dialog box on the Dialogs page, set features to be required, or set features to be hidden.
To complete the dialog box
z Name
Enter the name of the feature, which is used internally by Windows Installer. The feature name is limited to 32 characters.
z Title
Enter text to identify the feature. This text appears on the Select Features dialog box during installation.
z Parent
This list contains all features in the installation. To change the feature’s parent, and therefore the feature tree, select from this list. This lets you change the feature tree in Installation Expert or Setup Editor instead of editing tables.
z Target Platform
Specify the platform on which this feature should be installed.
Note
If you add a 64-bit component to a 32-bit feature, it will never be installed. A 64-bit component will be ignored when installing on a 32-bit computer, and a 32-bit feature will not be installed on a 64-bit computer.
All Processors
The feature appears for installation on any computer, regardless of the platform.
32 Bit Processors
The feature appears for installation on 32-bit computers only.
64 Bit Processors
The feature appears for installation on 64-bit computers only.
x64 Only
The feature appears for installation on computers that support the x86 architecture (including AMD64 or EM64T).
Itanium Only
The feature appears for installation on computers that support the Itanium 64­bit processor.
z Description
Enter a multi-line description of the feature. This appears if the end user selects a feature on the Select Features dialog box during installation. This text must fit in the Feature Description area of the Select Features dialog box.
z Level
If you are using the Installation T ypes page to det ermine which features to install for a T ypical or Complete installation, y ou can skip this field. If not, specify whet her this feature is installed for a Typical or Complete installation. The end user chooses Typical, Complete, or Custom on the Installation Type dialog box (also called Select
Windows Installer Editor Reference 97
Defining an Installation Project
Installation Type). During a Custom installation, the end user can turn features on or off individually.
Each installation has an installation level, stored in the property INSTALLLEVEL. Each feature has its own installation level value, which is set by this field. If a feature’s level is less than or equal to the installation’ s INST ALLLEVEL property, then the feature is installed. By default, INSTALLLEVEL is set to 3 for a Typical installation, and to 1000 for a Complete installation.
Normal
Set the feature’s level value to 3, which means that it gets installed by default for either Typical or Complete.
Never install this feature
Set the feature’s level value to 0, which means that it won’t appear during installation, and won’t be installed.
Always install this feature
Set the feature’s level value to 1, which means that it gets installed by default for either Typical or Complete.
Custom
Set the feature’s installation level value yourself . Example: if you w ant a feature to be installed for a Complete installation, but not for a Typical installation, set a custom level value that’s greater than 3 and less than or equal to 1000. The Custom Value field becomes available.
z Custom Value
If Custom is selected in Level above, enter the level value for the feature in this field. For details, read the description of Level, above.
Note
The end user’s action on the Installation Type dialog box determines the INSTALLLEVEL property. To see how this works, go to Setup Editor > Dialogs tab and click the Installation Type dialog in the list. Double-click the Typical/Complete/ Custom radio button, and you see that the end user’s choice in t his radio group sets the property InstallMode. If you then double-click Next on the Installation Type dialog box and view the Events tab, you see that, based on the InstallMode value, the installation property INSTALLLEVEL is set to either 3 or 1000.
z Display
Specify if and how the feature is displayed to the end user on the Select Feature dialog box during installation.
Invisible
Do not display the feature.
Visible and Expanded
Display the feature and its children.
Visible and Collapsed
Display the feature but not its children.
To expand or collapse a selected feature’s children, display hidden features, or display the features’ titles rather than the features’ names, use th e right -click menu on the Features page.
See Features Page on page 91.
Windows Installer Editor Reference 98
Defining an Installation Project
z Attributes
Specify the default for the feature in the installation. The end user can change the default.
Favor Local
The feature should be installed on the destination computer.
Favor Source
The feature should be run from the source CD or network directory. This means the feature is available to the application, but is not installed on the local hard drive. When the feature is invoked, your application must call Windows Installer functions (example: MsiGetComponentPath) to locate and read the necessary files from the installation source, which might be a CD or shared network directory. A typical use of this option would be to specify a clip art library to run from the source. Then you must code your application to try to read from the installation source when the end user tries to use the clip art library.
Favor Parent
The feature should use the same attribute setting as its parent feature. If you select this option, you must also set the installation to generate uncompressed external files that can run from the source.
See Adding a Media Item on page 210.
z Advertising
Specify the default setting for how this feature supports advertising. If a feature is advertised, it is not installed, but it appears to be installed to the end user. Example: The end user might see shortcuts or menu options for an advertised feature, or the system might have certain entry points to the feature, such as a registered file extension, that can perform installation-on-demand of an advertised feature.
None
By default, the feature is set to be installed, not advertised.
Favor Advertising
By default, the feature is set to be advertised.
Disallow Advertising
The feature is set to be installed, not advertised, and the end user cannot change the default.
Note
Advertising is only supported on certain platforms. To suppress advertising on unsupported platforms, mark Disable advertising if not supported by OS below. See Platform Support of Advertisement in the Windows Installer SDK Help.
z Directory
To let end users select the directory for this feature, select a directory from this list. When the end user selects this feature on the Select Feature dialog box during installation, the Browse button becomes enabled so that they can select a new directory . Chil d features of this feature inherit the new directory selected by the end user. If you leave the directory set to <none>, then the files for this feature are installed in the directory structure specified on the Files page.
To ensure that two features always get installed to the same directory, select the same option in Directory for both features.
If you let end users select directories for individual features, you must code your application in such a way that it can locate the features wherever they might be
Windows Installer Editor Reference 99
Defining an Installation Project
placed by the end user. To do this, you can call Windows Installer functions, such as MsiGetComponentPath.
Note
Only the files that are in the directory you select or in its child directories will be installed in the new directory that the end user selects. Example: Suppose FeatureA installs File1 in the Sample\FeatureA\ directory and File2 in the Windows directory. During installation, the end user specifies Sample\A\ for the new directory. Only File1, which was originally in the FeatureA\ directory, is actually installed in the A\ directory. File2 is still installed in the Windows directory.
z Required Feature
Mark this if the feature is required for installation. During installation, end users cannot deactivate installation of a required feature. If you select Never install this feature in Level (above), it overrides this option.
z Disable advertising if not supported by OS
Mark this to ignore any choices you made in the Advertising drop-down list if the operating system on the destination computer does not support advertising. See Platform Support of Advertisement in the Windows Installer SDK Help.
See also:
Configuring a Feature Using Its Drop-Down List on page 95
Using Conditions With Features
You can add conditions to features to specify different actions based on installation properties, system configuration, end user choices, and so on. Both conditions and features are listed in the Current Feature drop-down list, which appears on all Installation Expert pages in the Feature Details page group. Just as you can specify options on a per-feature basis, you can also specify options on a per-condition basis. Options on these pages that you associate with a condition are installed only if the condition is true and the feature is installed.
Example: Suppose your core application files are stored in a feature named Application. If your
application is installed on Windows 95/98/Me, you want to also install Application9x.dll, but if your application is installed on operating system later than Windows Me, you want to install ApplicationNT.dll. You do not want to install both .DLLs, but instead want to install one or the other based on the version of the operating system. To do this, you:
z Add two conditions under the Web_Creator feature, Version9X (which specifies an
OS of Windows 95/98/Me) and VersionNT (which specifies an OS later than Windows Me).
z On the Files page, select the VersionNT condition from the Current Feature drop-
down list, then add the ApplicationNT.dll file.
z On the Files page, select the Version9X condition from the Current Feature drop-
down list, then add the Application9x.dll file.
During installation, the files contained within the conditions are installed only if the condition is tru e.
Version9X and VersionNT are properties that are set by Windows Installer. See VersionNT Property and Version9X Property in the Windows Installer SDK Help.
Windows Installer Editor Reference 100
Loading...