Symantec WINDOWS INSTALLER EDITOR 7.0 SP2 - REFERENCE FOR WISE INSTALLATION EXPRESS V1.0, WINDOWS INSTALLER EDITOR 7.0 SP2 Installation Manual

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 7.0 SP2
Copyright © 2010 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 their 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 EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. SYMANTEC 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/or web-based support that provides rapid response and up-to-the-
minute information
z Upgrade assurance that delivers software upgrades
z Global support purchased on a regional business hours or 24 hours a day, 7 days a
week basis
z Premium service offerings that include Account Management Services
For information about Symantec’s support offerings, you can visit our web site at the following URL:
www.symantec.com/business/support/
All support services will be delivered in accordance with your support agreement and the then-current enterprise technical support policy.
Contacting Technical Support
Customers with a current maintenance agreement may access Technical Support information at the following URL:
www.symantec.com/business/support/
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 information
z Problem description:
Error messages and log files
Windows Installer Editor Reference 3
Troubleshooting that was performed before contacting Symantec
Recent software configuration changes and network changes
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/business/support/
Customer service
Customer service information is available at the following URL:
www.symantec.com/business/support/
Customer Service is available to assist with non-technical questions, such as 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
Support agreement resources
If you want to contact Symantec regarding an existing support agreement, please contact the support 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:
Windows Installer Editor Reference 4
Managed Services Managed services remove the burden of managing and
monitoring security devices and events, ensuring rapid response to real threats.
Consulting Services
Educational Services
To access more information about Enterprise services, please visit our Web site at the following URL:
www.symantec.com/business/services/
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
The Product Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
About Visual Studio Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Using Installation Expert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
About Page Views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Customizing Page Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Using the Current Feature Drop-Down List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Using the Current Release Drop-Down List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Using the Task List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Filtering the Task List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Finding Table Errors From the Task List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Adding User-Defined Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Installation Resources and Their Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
How you can set up Windows Installer Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Setting Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Setting General Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Setting .NET Assembly Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Setting Advertising Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Setting Digital Signature Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
About ExpressBuild. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Setting ExpressBuild Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
How ExpressBuild Groups Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Requirements for Using ExpressBuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Setting Installation Expert Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Setting Merge Module Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Activating Suppressed Prompts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Setting Source Control Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Setting Visual Studio Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Setting Wildcard Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Creating and Editing Installation Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Component Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
About Component Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Selecting a Component Rule Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Using Component Rules to Align GUIDs in an Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Customizing Component Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Adding and Editing Component Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Microsoft Best Practices Component Rule Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Windows Installer Editor Reference 6
One File Per Component Rule Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Chapter 3: Working With Wise Installation Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Before You Create an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
File Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Project Files and Database Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Target Platforms: 32-bit and 64-bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
How to Specify the Target Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
What’s Different in a 64-bit Installation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
32-bit Applications on 64-bit Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Guidelines for Creating Platform-Specific Installations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Creating Multiple, Platform-Specific Installations from One Project File . . . . . . . . . . . . . . . . . . 68
Defining the INSTALLDIR Property in a Mixed-Platform Installation. . . . . . . . . . . . . . . . . . 71
Starting a New Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
About Standard User Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Creating an Installation for Standard Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Creating an Installation Within a Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Creating a Stand-alone Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Creating a Device Driver Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Options for New Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Entering Project Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Overview Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Project Type Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Projects Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Main Project Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Pre-build Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Post-build Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Project Outputs Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
How the Installation Integrates With the Solution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Scanning the Solution for New Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Comparing Windows Installer Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Saving an Installation as XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Compiling An Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Testing and Running An Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Testing An Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Running An Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Chapter 4: Defining an Installation Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Project Summary Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Product Details Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Incrementing the Product Version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Setting the Default Installation Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
General Information Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Add/Remove Programs Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Features Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Strategies for Organizing Files Into Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Adding a New Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Configuring a Feature Using Its Drop-Down List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Configuring a Feature Using the Feature Details Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Using Conditions With Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Adding and Deleting Feature Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Managing Binary Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Adding Binary Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Refreshing Binary Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Windows Installer Editor Reference 7
Chapter 5: Assembling an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Files Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Installation Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Files Page Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Adding Files to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Adding Merge Modules Instead of Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Adding Contents of Directories to the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Adding Files From Outside the Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Adding .NET Assemblies to the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
How Assembly Dependencies are Added to an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . 123
Assembly Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
About Dependency Scan Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
About the Global Dependency Exclusion List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Editing Settings for Automatic Updating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Removing a File From the Destination Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Copying and Moving Files on the Destination Computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Editing File Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Editing General File Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Setting Permissions for Files and Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Editing Self-Registration Settings for Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Editing Assembly Settings for Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Creating a Win32 Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Editing XML Files During Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Editing DIFxApp Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
How Self-Registration Information is Captured. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Using WiseComCapture.exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Visual Studio Solution Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Adding Contents of Visual Studio Projects to the Installation . . . . . . . . . . . . . . . . . . . . . . . . 143
Visual Studio Solution Page Icons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Registry Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Adding Registry Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Removing Registry Entries From the Destination Computer . . . . . . . . . . . . . . . . . . . . . . . . . 148
Importing and Exporting Registry Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Configuring General Registry Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Setting Permissions for Registry Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Special Registry Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
INI Files Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Creating and Editing .INI Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Shortcuts Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Adding a Shortcut to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Editing a Shortcut Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Adding an Environment Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Adding File Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Determining Extension Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Adding Command Verbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Selecting MIME Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Services Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Adding a Service to the Destination Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Controlling Services on the Destination Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Adding an ODBC Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Setting ODBC Data Source Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Setting ODBC Driver Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Setting ODBC Translator Details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Adding to the Windows Firewall Exception List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Windows Installer Editor Reference 8
Chapter 6: Your Installation on the Destination Computer . . . . . . . . . . . . . . . . . . . . . 170
About System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Setting a Requirement on the System Requirements Page. . . . . . . . . . . . . . . . . . . . . . . . . . 170
Setting a System Requirement for Server Roles and Services . . . . . . . . . . . . . . . . . . . . . . . 172
Adding Roles and Services to the Server Roles and Services Dialog Box . . . . . . . . . . . . . . . . 173
Setting a Requirement by Creating a Launch Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Performing a System Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Searching For Files or Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Searching For Items in .INI Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Searching For a Registry Value. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Searching For a Previously-Installed Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Setting Version-Specific Windows Installer Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
About UAC Elevation of Windows Installer Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
About UAC Elevation of an Entire Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Setting Features for Installation Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Chapter 7: Organizing Your Installation Into Releases . . . . . . . . . . . . . . . . . . . . . . . . 189
About Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Creating a New Release. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Associating a Release With Visual Studio Build Configurations . . . . . . . . . . . . . . . . . . . . 192
Outputting a Multiple-Language Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Customizing a Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Customizing Properties for a Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Customizing Summary Items for a Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Defining a Feature and Component Set for a Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Sharing Settings Between Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Example: Creating an Evaluation Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Setting Build Options for a Release. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Adding Prerequisites to a Release. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Adding a Windows Installer or .NET Framework Runtime. . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Adding a Prerequisite File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Adding a Runtime Prerequisite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Editing the WiseScript That Creates the Installation .EXE . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Creating a Clean Build. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Setting Up Media for Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Adding a Media Item. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Adding a Media Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Including Features and Components in Media Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Sharing Media Settings Between Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Example: Spanning an Installation Across Media and Sharing Media Size Information. . . . . . . 213
Chapter 8: Advanced Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
About the Mobile Devices Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Process for Adding Mobile Device Support to an Installation . . . . . . . . . . . . . . . . . . . . . . . . 217
About Windows Mobile Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Adding Windows Mobile Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
About Palm OS Installations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Adding Palm OS Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
About Command Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Creating a Command Line To Apply to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Applying UI Options to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Applying Logging Options to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Applying an Advertising Option to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Applying a Repair Option to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Windows Installer Editor Reference 9
Changing Public Properties in an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Applying Transforms to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Applying or Removing Patches With a Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Command Line Options For WFWI.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
WFWI.EXE Command Line Option Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Automating the Build Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Adding a Digital Signature to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Creating an Installation for Microsoft SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Creating a .NET Installation When You Have the .NET Framework . . . . . . . . . . . . . . . . . . . . . . . 236
Creating a .NET Installation Without the .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Configuring a Microsoft SQL Server During Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Tips for Using the SQL Server Scripts Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Setting SQL Connection Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Specifying SQL Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Specifying Replacements in SQL Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Importing .NET Framework Security Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
MTS/COM+ Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Adding an MTS or COM+ Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Chapter 9: Translating an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
About the Languages Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Creating a Translated .MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Creating a Language Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Sharing Language Settings Between Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Removing a Language from an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Defining and Translating Into Additional Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
About the New Language Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Defining a New Language and Exporting All Text for Translation . . . . . . . . . . . . . . . . . . . . . 254
Importing All Text Strings After Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Importing All Text Strings With the New Language Wizard . . . . . . . . . . . . . . . . . . . . . . . . . 257
Translating Text Strings You Have Added or Changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Translating Text Strings by Exporting to a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Exporting Selected Text Strings to a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Importing Selected Text Strings From a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Translating Text Directly Without Exporting It . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Translating Text on the Language Strings Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Changing Text in Installation Expert and Setup Editor. . . . . . . . . . . . . . . . . . . . . . . . . . 263
Resizing Dialog Controls After Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
About the Language Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Changing the Default Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
About the Default Release Language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
About the Language Strings Dialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Keeping Track of Changed Text Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
What Pre-Translated Languages Are Available?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Language IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Chapter 10: Distributing an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Package Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Copying an Installation to a Network Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Copying an Installation to an FTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Performing an Administrative Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Copying an Installation to Removable Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Windows Installer Editor Reference 10
Chapter 11: Upgrading Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
About Upgrading Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Preparing for Software Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Archive the Shipping Version of the .MSI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Determine the Form of the Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Determine the Product Code and Product Version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Check the Installation With UpgradeSync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
UpgradeSync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Using UpgradeSync. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Patch Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
About Patch Sequencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Creating a Patch File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Specifying Previous Versions for Patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Advanced Upgrade Version Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Adding a Digital Signature to a Patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Specifying the Patch Sequence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Specifying Advanced Patch Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Specifying Patch Removal Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Upgrades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Creating an Upgrade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Chapter 12: Working With Source Paths. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
About source paths. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Using Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Adding an Installation to Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Adding Files to an Installation in Source Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Checking Files Into Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Checking Files Out from Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Getting Latest Version of Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Removing Files from Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Undoing the Check Out of Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Showing History of the Installation File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Showing the Differences Between Installation Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Comparing the Current Installation to the Latest in Source Control. . . . . . . . . . . . . . . . . . . . 302
About Path Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Turning Path Variable Substitution On and Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Creating a User-Defined Path Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Creating a Path Variable Based on an Environment Variable . . . . . . . . . . . . . . . . . . . . . . . . 304
Creating a Path Variable Based on a Registry Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Source Paths in an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Changing Source Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Converting to Relative Source File Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Converting to UNC-Based Source File Paths. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Changing the Source Directory Dynamically During Compile . . . . . . . . . . . . . . . . . . . . . . . . 309
Chapter 13: Merge Modules and Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
About Merge Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Available Tabs and Pages in Merge Modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Setting Merge Module Details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Setting Dependencies for a Merge Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Setting Exclusions for a Merge Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Creating a Merge Module As a New Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Creating a Merge Module Within a Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Creating a Merge Module From Existing Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Windows Installer Editor Reference 11
Creating a Configurable Merge Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Setting Configuration Item Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Specifying Drop-Down List Values for Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Specifying a Bitfield for Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Specifying a Key for Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Example: Configuring an Item for a Merge Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
About the Merge Modules Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Adding a Merge Module to an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Editing Merge Module Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
About Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Creating a Transform Based on an Existing .MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Setting Transform Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Applying a Transform to an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Chapter 14: Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
About Windows Installer Editor tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
ApplicationWatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Convert SMS Installer or WiseScript Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Converting an SMS Installer or WiseScript Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Import Visual Studio Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Importing an Installation From a Visual Studio Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Removing Dependencies from the Project Dependency Exclusion List . . . . . . . . . . . . . . . . . . . . . 343
Manage Assembly Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
MSI to WSI Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Converting an .MSI to a .WSI File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Specifying Merge Module Source Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Specifying File Source Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Package Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Validating a Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Customizing Validation Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Predefined Validation Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Windows Vista/Windows 7 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Removing Files With Missing or Invalid Source Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Chapter 15: Setup Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
About Setup Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Product Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Specifying Summary Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Features Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Assigning a Component to a Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Modules Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Advertising Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Creating a Folder in Setup Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Creating Duplicate File Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
How to ensure the installation of a duplicate file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Components Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Component Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Adding and Editing a Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Moving Items Between Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
About the Key Path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Isolating a .DLL With an .EXE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Adding Published Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Tables Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Creating a New Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Windows Installer Editor Reference 12
Creating a New Row in a Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Editing Existing Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Searching for Table Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Finding Validation Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Editing Binary Data in the Icon Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Chapter 16: Using Conditions and Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Where Can You Use Conditions? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Condition Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Examples of Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
WiseFixConditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Creating Conditions With Condition Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Checking the Value of a Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Checking the Value of an Environment Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Checking If and How a Feature or Component is Currently Installed . . . . . . . . . . . . . . . . 387
Checking If and How a Feature or Component Will Be Installed by This Installation . . . . . 387
Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
How Do You Use Properties? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Creating a New Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Chapter 17: Working With Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
About Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
About the Wizard Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Using the Dialogs Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Changing the Theme of Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Adding and Editing Dialog Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Importing Text into License and Readme Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Using the Dialogs Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Adding Controls to Dialogs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Editing Dialog Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Creating a New Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
About Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Types of Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Editing Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Basic Control Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Setting an Event on a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Assigning Help to a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Assigning Conditions to a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Setting the Graphic for a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Setting the Items in a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Organizing and Aligning Controls on Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Aligning Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Centering Dialog Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Making Dialog Controls the Same Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Spacing Dialog Controls Evenly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Setting Dialog Tab Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
About Billboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Adding Billboards to a Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Obtaining Logon Information From a Dialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Adding the Logon Information Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
About the SQL Connection Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Adding the SQL Connection Dialog to an Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Editing Additional SQL Connection Dialogs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Windows Installer Editor Reference 13
Adding the Custom Property Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
Chapter 18: Macro Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
About the Macro Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
About Macro Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Creating, Editing, and Running a Macro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Events That Can Trigger a Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
About the Macro Editor Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Chapter 19: Debugger for Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
About the Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
The Debugger Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Running the Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Setting Properties and Applying Transforms in the Debugger. . . . . . . . . . . . . . . . . . . . . . . . 429
Setting and Clearing Debugger Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Evaluating Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Working With Temporary Tables and Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Searching For Text in Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Chapter 20: Using MSI Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
About MSI Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
The MSI Script Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
About Installation Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Adding a Custom Action Outside a Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Adding a Custom Action to Multiple Sequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
About Installation Sequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Finding Text in MSI Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Editing Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Types of Actions in MSI Script Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
About the Standard and Custom Tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Adding and Editing Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Commenting Out Script Lines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Calling WiseScripts with Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Examples of WiseScripts You Run From an .MSI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Using a WiseScript to Parse a Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Using a WiseScript to Install a License File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Uninstalling Changes Made by a WiseScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Troubleshooting: When WiseScript Custom Actions Fail on Windows Vista or later . . . . . . . . . 443
Guidelines for Using Custom Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Guidelines for Custom Action Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Guidelines for Custom Action Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Guidelines for Nested Installation Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Guidelines for Calling VBScripts and JScripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Guidelines for Calling .DLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Launching a Custom Action from a Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Troubleshooting Custom Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Chapter 21: Custom Action Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
About Custom Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Call Custom DLL From Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Call Custom DLL From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Call Custom DLL From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Configuring .DLL Parameter Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Call DLL From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Windows Installer Editor Reference 14
Call DLL From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Call JScript From Embedded Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Call JScript From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Call JScript From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Call JScript From Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Call VBScript From Embedded Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Call VBScript From Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Call VBScript From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Call VBScript From Property. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Display Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Download File From Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
End Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Execute Program From Destination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Execute Program From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Execute Program From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
Execute Program From Path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
If Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Install MSI From Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Install MSI From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Install MSI From Relative Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Launch Web Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Open Document From Installed Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Pause Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Post Data to HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Remark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Run WiseScript From Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Run WiseScript From Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Run WiseScript From Installed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Set Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Set Feature State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Set Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Terminate Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Using the Custom Action Location Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Using the Custom Action Location Tab for Merge Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Using the Custom Action Properties Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Using the Custom Action Description Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Chapter 22: Windows Installer and .NET Technologies . . . . . . . . . . . . . . . . . . . . . . . . 485
About Microsoft Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Frequently Asked Questions About Microsoft Windows Installer . . . . . . . . . . . . . . . . . . . . . . 486
Working With Components and Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
About GUIDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
About Microsoft .NET Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Frequently Asked Questions About Microsoft .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Requirements for Creating a .NET Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Appendix A: Wise Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Appendix B: Wise Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Appendix C: Property Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Build Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
INI File Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Run Time Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Windows Installer Editor Reference 15
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
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 18
z The Product Interface on page 18
z About Visual Studio Integration on page 19
z Using Installation Expert on page 20
z Using the Task List on page 26
z Installation Resources and Their Locations on page 29
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.
Through its Visual Studio integrated editor, Windows Installer Editor offers a complete, seamless integration of the entire installation authoring environment directly into the Microsoft® Visual Studio® development environment. This tight integration allows for automatic synchronization of your development project with your installation, saving you time and significantly improving the quality of your installations.
Microsoft® Windows® Installer is a Microsoft technology that provides a standard installation engine that can be used for the installation of any 32-bit or 64-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 included with Wise Installation Express.
Windows Installer Editor Reference 17
Starting the Software
To start the software
1. Select Start menu > Programs > Symantec > Wise Installation Express > 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 71 and Options for New Installations on page 77.
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.
Introduction
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 73.
f. Click OK.
The new installation opens.
See also:
Creating an Installation Within a Solution on page 73
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.
Windows Installer Editor Reference 18
See Using Installation Expert on page 20.
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 431
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. Setup Editor lets you create fully customized interactive installations. Certain advanced tasks can be performed only in Setup Editor.
See About Setup Editor on page 356.
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 336.
z The Compile, Test, Debug, and Run buttons let you test and compile the installation.
See Compiling An Installation on page 87, Testing and Running An Installation on page 88, and About the Debugger on page 427.
z You can use Windows Installer Editor from within Visual Studio.
See About Visual Studio Integration on page 19.
About Visual Studio Integration
You can use Windows Installer Editor from within Visual Studio. The Visual Studio integrated editor lets you create all the same installation file types that you create in the stand-alone Wise editor. The Wise editor and Visual Studio integrated editor are different interfaces for the same product; they share the same preferences, recently-used file lists, dialog box templates, themes, and installation templates. (The Visual Studio integrated editor was formerly sold separately as Wise for Visual Studio .NET.)
There are several differences between the Wise editor and the Visual Studio integrated editor that are inherent in the Visual Studio development environment.
Examples:
z In the Visual Studio integrated editor, you have different choices about how to start
a new project, and you can set source paths to update automatically according to the Visual Studio build configuration.
Windows Installer Editor Reference 19
Introduction
z In the Visual Studio integrated editor, installations synchronize automatically with
the other projects in the solution. Example: adding .EXEs, .DLLs, .OCXs, and assemblies to the solution adds them to the installation.
z Installation meta data fields (examples: application name, version, manufacturer,
and default directory) are populated using data from the Visual Studio solution.
When you create an installation project in Visual Studio, a corresponding .WSPROJ file is created in the same location. The .WSPROJ file points to the .WSI. You can double-click a .WSPROJ file in Windows Explorer and open it in Visual Studio.
When you double-click an installation file in Windows Explorer, you are prompted to select which editor to open the file in. You can set an option on this dialog box to always open that file in a specific editor.
If you create an installation project in the Visual Studio integrated editor, and then uninstall Microsoft Visual Studio, you can continue working on the installation project in the Wise editor. However, if you right-click a .WSI or .MSI, an option still exists to edit in the Visual Studio integrated editor, which is no longer possible. Perform a repair on Windows Installer Editor to remove options that have to do with the Visual Studio integrated editor
Note
The Visual Studio AutoRecover is disabled for Wise projects.
See also
How the Installation Integrates With the Solution on page 83
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 20
Page Views
Introduction
Installation Expert window in Windows Installer Editor
Page Groups
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 22 and Customizing Page Views on page 23.
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. (In Visual Studio: these are buttons instead of tabs.)
Windows Installer Editor Reference 21
Compiling and Testing
Compile, Test, Debug, and Run buttons test and compile the installation.
In Visual Studio: These buttons are not available, but the same functionality is available through menu commands.)
See also:
Using the Current Release Drop-Down List on page 25 Using the Current Feature Drop-Down List on page 24
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
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.
z Custom page views that you create to meet your specific needs.
See Customizing Page Views on page 23.
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 49.
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. Merge module 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.
Windows Installer Editor Reference 22
Introduction
See Creating and Editing Installation Templates on page 49.
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 23.
Which Page View Appears?
z The Display the page view associated with a project when a project is
opened check box in W ise Op tions deter mines what p age vi ew 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 43.
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 20
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. You cannot customize the predefined page views, but you can make 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.
To create a page view
1. From the Page Views drop-down list in Installation Expert, select <New View...>.
Windows Installer Editor Reference 23
Introduction
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 page view does not appear on the list because it 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, select 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 20
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 24
Introduction
Current Feature drop-down list
Example: Suppose you have three features, and 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 25 Using Installation Expert on page 20
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 25
Using Installation Expert on page 20 Using the Current Feature Drop-Down List on page 24
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 28.
When you resolve the issue that corresponds to a task, the task is deleted 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 Package Validation on page 349.
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, select Setup Editor > Tables tab, right-click in the left pane and select Check Tables.
See Finding Validation Errors on page 378.
z User-Defined
You can add user-defined tasks to the task list.
See Adding User-Defined Tasks on page 28.
(Not available in the Visual Studio integrated editor.)
Note
When you close an installation, all tasks, except user-defined tasks, are removed from the Task List. (In the Visual Studio integrated editor, user-defined tasks are not available.)
Task List Icons
The following icons help you quickly identify the types of tasks in the Task List:
Windows Installer Editor Reference 26
An error that will cause incorrect behavior and must be fixed
Validation issues found by Package Validation
See Validating a Package on page 349.
A task you created
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 28.
z Sort a Task List column by clicking its header.
z Copy a task’s description by right-clicking its description.
z Delete a task by right-clicking its description.
Introduction
Filtering the Task List
To filter the task list
1. Right-click in the Task List and select Show Tasks.
2. Select a filter. (In Visual Studio: right-click in the Visual Studio Task List and select Show Tasks.)
Save/Compile
Validation
Component
Table
User-Defined
(In Visual Studio: this is called Build Errors.) 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 26.
Tasks that correspond to table validation errors that are generated when you check tables.
See Using the Task List on page 26.
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 27
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
In Visual Studio: a table is displayed only if a table is associated with the task.
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 373 Using the Task List on page 26
Adding User-Defined Tasks
¾ Not available in the Visual Studio integrated editor.
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 Task List, 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:
Windows Installer Editor Reference 28
Introduction
Using the Task List on page 26
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.
These resources are in subdirectories of the Windows Installer Editor installation directory.
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.
Resources Installation resources such as bitmap and icon files.
Templates Macros and additional template files that are used by Package Distribution.
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\File Templates that are used to create a new installation.
See Creating and Editing Installation Templates on page 49
In the Visual Studio integrated editor, these templates create installations that are not associated with a Visual Studio solution.
Templates\Project (Visual Studio integrated editor only.) Templates that are used to create an
installation as a project within a Visual Studio solution.
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.
Windows Installer Editor Reference 29
To generate a package contents report
1. Select Reports menu > Package Contents and select either Summary or By Feature.
In Visual Studio: Project menu > Reports > Package Contents and select either Summary or By Feature.
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.
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 you 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.
Introduction
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
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.
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 Downloading Redistributables From Other Vendors’ Web
Sites on page 31.
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.
In Visual Studio: Help menu > Wise Help > Download Redistributables.
Windows Installer Editor Reference 30
Introduction
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.
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 45.
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.
In Visual Studio: Help menu > Wise Help > 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 Redistributable 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 45.
Windows Installer Editor Reference 31
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
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.
Introduction
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.
z In Visual Studio, select Help menu > Wise Help > 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 > Reference Manual.
Getting Started Guide
The Getting Started Guide contains system requirements, installation instructions, 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.
To access the Windows Installer SDK Help in Visual Studio, select Help menu > Wise Help > Windows Installer SDK Help. Windows Installer SDK help topics are also available within the Visual Studio help collection.
Windows Installer Editor Reference 32
Introduction
Release Notes
The product release notes cover new features, enhancements, bug fixes, and known issues for the current version of this product. To access the release notes, select Release Notes from the Symantec program group on the Windows Start menu.
Windows Installer Editor Reference 33
Chapter 2
Setting Up
This chapter includes the following topics:
z How you can set up Windows Installer Editor on page 34
z Setting Options on page 34
z Creating and Editing Installation Templates on page 49
z Component Rules on page 51
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 34.
z Decide whether you need to customize the templates that installations are based
on.
See Creating and Editing Installation Templates on page 49.
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 51.
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. (In Visual Studio: select Tools menu > Options and click Wise Options in the list at the left of the dialog box.)
The Options dialog box contains the following tabs. (In the Visual Studio integrated editor they are called pages.) See:
Setting General Options Setting .NET Assembly Options on page 36 Setting Advertising Options on page 38 Setting Digital Signature Options on page 40 Setting ExpressBuild Options on page 41 Setting Installation Expert Options on page 43
Windows Installer Editor Reference 34
Setting Merge Module Directories on page 45 Activating Suppressed Prompts on page 46 Setting Source Control Options on page 46 Setting Visual Studio Options on page 47 Setting Wildcard Groups on page 48
Setting General Options
To set general options, select Tools menu > Options and click the General tab.
In Visual Studio: Tools menu > Options > Wise Options > General.
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
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.
Setting Up
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.
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 86.
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 35
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 40.
Startup Options
z Reload last project at startup
Mark this to open the last installation you worked on when you start Windows Installer Editor.
Not available in the Visual Studio integrated editor.
z Preferred Editor
This option appears only if Microsoft Visual Studio is installed. It determines which editor is opened when you double-click a Windows Installer file. Always Prompt always displays a dialog box that prompts you to choose the editor. Last Saved In uses the editor in which the installation file was last saved.
z Refresh Projects Integrated with Visual Studio .NET
This option appears only if Microsoft Visual Studio is installed. When you open a project that has been integrated with Visual Studio, this option causes the Visual Studio solution to be rebuilt so that this installation has the most recent files. “Integrated” means the project has been added as part of a Visual Studio solution. (Not available in the Visual Studio integrated editor.)
See also:
Setting Options on page 34
Setting .NET Assembly Options
¾ Windows Installer 2.0 or later only.
You can specify whether you create standard Win32 or .NET installations, and customize how Windows Installer Editor handles the .NET assemblies.
Windows Installer Editor Reference 36
Setting Up
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
To set options:
Select Tools menu > Options and click the .NET Assemblies tab. (In Visual Studio: Tools menu > Options > Wise Options > Assemblies.) Complete the tab.
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. (Not applicable in the Visual Studio integrated editor.)
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. You can add them manually or have Windows Installer Editor scan the assembly manifest for dependencies and add them automatically. Changing 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 Visual Studio Solution page.
Prompt to scan dependencies
Windows Installer Editor Reference 37
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 rescan and update assembly attributes each time you compile. This check box is marked by default.
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). To 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 34
Setting Advertising Options
Setting Up
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.
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
To set options:
Select Tools menu > Options and click the Advertising tab. (In Visual Studio: Tools menu > Options > Wise Options > Advertising.) Complete the tab.
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.
Windows Installer Editor Reference 38
Setting Up
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 139.
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.
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 Validation.
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 in 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 34
Windows Installer Editor Reference 39
Setting Digital Signature Options
You can add a digital signature to an installation 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.
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
To set options:
Select Tools menu > Options and click the Digital Signature tab. (In Visual Studio: Tools menu > Options > Wise Options > Digital Signature.) Complete the tab.
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.
Setting Up
z Signing with Personal Information Exchange Files
See also:
Adding a Digital Signature to a Patch on page 288 Adding a Digital Signature to an Installation on page 233 Setting Options on page 34
About ExpressBuild
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.
Private Key File
Enter the path of the private key file (.PVK). If this key is lost or stolen, contact your certificate authority immediately.
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).
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
Windows Installer Editor Reference 40
Setting Up
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 42 Requirements for Using ExpressBuild on page 43
Setting ExpressBuild Options
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 43.
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
To set options:
Select Tools menu > Options and click the ExpressBuild tab. (In Visual Studio: Tools menu > Options> Wise Options > ExpressBuild.) Complete the tab.
You can mark any combination of the three check boxes below. After you mark either 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
Windows Installer Editor Reference 41
Enter the build group name.
Setting Up
See How ExpressBuild Groups Work on page 42.
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 process 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 40 Setting Options on page 34
How ExpressBuild Groups Work
You can specify a build group of computers within the same NT domain or workgroup to share processing of compiles. To specify a build 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. (In Visual Studio: Tools menu > Options > Wise Options >
Prompts.)
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 40 Setting ExpressBuild Options on page 41 Requirements for Using ExpressBuild
Windows Installer Editor Reference 42
Setting Up
Requirements for Using ExpressBuild
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.
z Because each processor compresses .CAB files, using multiple processors 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. (In Visual Studio: select Project 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 306.
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 40 Setting ExpressBuild Options on page 41 How ExpressBuild Groups Work on page 42
Setting Installation Expert Options
You can set options that control the behavior of Installation Expert.
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
Windows Installer Editor Reference 43
Setting Up
To set options:
To set options for Installation Expert, select Tools menu > Options and click the Installation Expert tab.
In Visual Studio: Tools menu > Options > Wise Options > Installation Expert.
Complete the tab.
z View directories for all features on Files page
Mark this to display all directories on the Files or Visual Studio Solution 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.
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.
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 drivers, you 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 34
Windows Installer Editor Reference 44
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.
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
To set options:
Select Tools menu > Options and click the Merge Modules tab.
In Visual Studio: Tools menu > Options> Wise Options > Merge Modules.
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 328.
Complete the tab.
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
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. Merge 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 Merge Module dialog box.
See also:
Setting Options on page 34
Windows Installer Editor Reference 45
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.
In Visual Studio: Tools menu > Options > Wise Options > Prompts.
The dialog box lists the prompts you have suppressed and shows your last response 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.
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
Setting Up
See also:
Setting Options on page 34
Setting Source Control Options
¾ Not available in the Visual Studio integrated editor.
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 295.
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.
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 problems between the SCCS server 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, check files in and out, get the latest version of files, track history, and view differences.
Windows Installer Editor Reference 46
Setting Up
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 34
Setting Visual Studio Options
¾ Visual Studio integrated editor only.
you can set global defaults for the way your installations integrate with Visual Studio solutions. The Visual Studio options apply only to installations that are integrated with a Visual Studio solution.
The Visual Studio options provide defaults for future installations. Changing these options does not affect existing installations.
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
To set options:
Select Tools menu > Options > Wise Options and click Visual Studio. Complete the tab.
Projects Options
To override these defaults for individual installations, or to change them for existing installations, edit the Projects page of the installation project settings.
See Entering Project Settings on page 78.
z Scan Method
Each time you load, save, or build an installation project or change its settings, Windows Installer Editor can scan the other projects in the solution for new files to add to the installation.
See Scanning the Solution for New Files on page 84.
Specify the default level of scanning that will occur for new installations.
Windows Installer Editor Reference 47
Setting Up
Never scan solution
If you select this, you must add new files to installations manually using the Files page. Also, when files are removed from a solution, you must remove them from the installations manually.
Prompt only when new files are detected
Select this to be prompted each time there are new files in the solution that need to be added to the installation. The prompt appears during save, build, or compile.
Prompt when any files are detected
This is the highest level of prompting. Like the previous option, the prompt appears during save, build, or compile when there are new files. Also, if you previously excluded files by clearing their check boxes, you’ll be prompted to confirm that those files should be excluded.
Always scan solution
Each time Windows Installer Editor scans a solution, it adds new files to the installation and deletes files that have been removed from the solution.
z Bind installed files to the solution build configuration
Mark this to set the default for new projects you create. This option causes the installation source paths to change automatically when you change a project’s build configuration. To change this option for an existing project, right-click a project name in Solution Explorer, and select Properties.
Main Project Options
To override these defaults for individual installations, or to change them for existing installations, edit the Main Project page of the installation project settings.
See Main Project Page on page 81.
z Automatically Update Product Information
Mark this to update the installation’s product name, version, and manufacturer whenever you rebuild the solution or whenever the version number of the main target file changes.
z Create Shortcut
Mark this to add a shortcut for the main target file to each installation.
See also:
Setting Options on page 34
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 page 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.
Windows Installer Editor Reference 48
Setting Up
Note
(Visual Studio integrated editor.) To display context-sensitive help, click the Wise Help link on this dialog box.
To add a wildcard group so it appears in Include Wildcards
1. Select Tools menu > Options and click the Wildcard Groups tab.
In Visual Studio: Tools menu > Options> Wise Options > Wildcard Groups.
2. On the Wildcard Groups tab, click Add.
The Wildcard Group Details dialog box appears.
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 page, this wildcard group is available from the Include Wildcards list.
See also:
Setting Options on page 34
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.
Example: If all your installations have the same system configuration requirements 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 in the Wise Editor
Templates are in the Templates\File subdirectory of the Windows Installer Editor installation directory.
Template Location in the Visual Studio Integrated Editor
Templates are organized by integrated project and stand-alone files:
z Templates\Project contains templates for new projects that are integrated with a
solution.
Windows Installer Editor Reference 49
Setting Up
z Templates\File contains templates for stand-alone files.
To create a custom template in the Wise editor
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 corresponding file in 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.
4. To 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 23.
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.
To create a custom template in the Visual Studio integrated editor
1. If a solution is open in Visual Studio, close it.
2. Select File menu > New > File.
The New File dialog box appears.
3. From the Categories list, select Wise Files.
Windows Installer Editor Reference 50
Setting Up
4. In the Templates list, select an icon on which to base the new template. Some icons are not templates, but instead invoke an import process or prompt to create a new transform.
To create a template in .WSI or .WSM format, select a project icon (name ends
with “Project”).
To create a template in .MSI or .MSM format, select a file icon (name ends with
“File”).
5. Click Open.
A new installation or merge module opens.
6. Make all the changes that should appear in installations created with this template.
7. Save the file:
a. Select File menu > Save As.
b. Name the file, and save it in either:
Templates\Project directory (.WSI or .WSM). These templates appear when
you select File menu > New > Project.
Templates\File directory (.MSI, .MSM, or .WSI). These templates appear
when you select File menu > New > File.
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 23.
8. To test the new template, do the following:
If you saved the template in the Templates\Project directory, select File menu >
New > Project. On the New Project dialog box, click Wise Setup and Deployment Projects in the Project Types list. Your new template should appear in the Templates list.
If you saved the template in the Templates\File directory, select File menu >
New > File. On the New File dialog box, click Wise Files in the Categories list. Your new template should appear in the Templates list.
9. Select the template you just created and click OK.
10. 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
Windows Installer Editor Reference 51
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 organization’s standards. For descriptions of the predefined rule sets, see Microsoft Best Practices Component Rule Set on page 57 and One File Per Component Rule Set on page 59. For instructions on creating new rule sets, see Customizing Component Rules on page 55.
See also:
About Component Rules on page 52 Selecting a Component Rule Set on page 52 Using Component Rules to Align GUIDs in an Upgrade on page 54
About Component Rules
A component rule set manages components that are added to installations.
Setting Up
z A rule set is a collection of rules.
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 the registry.
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 51 Microsoft Best Practices Component Rule Set on page 57
Selecting a Component Rule Set
Use the Component Rule Selection dialog box to select a rule set and component naming 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
Windows Installer Editor Reference 52
Setting Up
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.
In Visual Studio: Project menu > Component Rules > 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.
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 in 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.
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 51
Windows Installer Editor Reference 53
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.
To ensure that all resources you add to an upgrade installation 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 when 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.
Setting Up
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.
3. Select a rule set to use for this upgrade.
See Selecting a Component Rule Set on page 52.
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.
In Visual Studio: Project menu > Component Rules > 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
.MSI, and click Open. The .MSI is added to the 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:
Windows Installer Editor Reference 54
Component Rules on page 51
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.
To add a new component rule set
1. Select Component Rules menu > Customize.
In Visual Studio: Project menu > Component Rules > Customize.
The Component Rules Manager dialog box appears, listing the predefined rule sets and custom rule sets you have created.
2. Click New.
Setting Up
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 56.
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 52.
To customize an existing component rule set
1. Select Component Rules menu > Customize.
In Visual Studio: Project menu > Component Rules > 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.
Windows Installer Editor Reference 55
Setting Up
To 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 Customize Component Rules dialog box
appears, where you can add, edit, and delete rules.
See Adding and Editing Component Rules on page 56.
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 51
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.
To edit a component rule
1. Select Component Rules menu > Customize.
In Visual Studio: Project menu > Component Rules > 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
define component rules. For details, see the procedure below.
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.
Windows Installer Editor Reference 56
Setting Up
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 Rule 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.
See also:
Component Rules on page 51
Microsoft Best Practices Component Rule Set
When you use this predefined rule set, components are created using the Microsoft component creation guidelines.
Windows Installer Editor Reference 57
Setting Up
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.
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.
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,
Windows Installer Editor Reference 58
an incremental number is added to the component name. Example, File1, File2, and so on.
See also:
Component Rules on page 51
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.
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.
Setting Up
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 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.
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 59
Chapter 3
Working With Wise Installation Files
This chapter includes the following topics:
z Before You Create an Installation on page 60
z File Types on page 61
z Project Files and Database Files on page 62
z Target Platforms: 32-bit and 64-bit on page 63
z Starting a New Installation (page 71)
z Options for New Installations on page 77
z Entering Project Settings on page 78
z How the Installation Integrates With the Solution on page 83
z Scanning the Solution for New Files on page 84
z Comparing Windows Installer Files on page 85
z Saving an Installation as XML on page 86
z Compiling An Installation on page 87
z Testing and Running An Installation on page 88
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.
(Visual Studio integrated editor only.) Some of these files (examples: .DLLs, .OCXs, and .EXEs) might be added automatically when you create the installation project.
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.
Windows Installer Editor Reference 60
Working With Wise Installation Files
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.
See Using the Dialogs Page on page 395.
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 62.
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, thereby installing the application. You 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 344.
.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.
.WSPROJ (Visual Studio integrated editor only) Visual Studio project file for a Windows Installer
installation. When you create an installation project in Visual Studio, a corresponding .WSPROJ file is created in the same location. The .WSPROJ file points to the .WSI.
.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 311.
.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 311.
.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 331.
Windows Installer Editor Reference 61
Working With Wise Installation Files
Extension Description
.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.
.PCP Windows Installer patch project, which describes and compiles to a Windows Installer
patch. A .PCP file is created from the Patch Creation tool.
.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 199 and Adding Prerequisites to a
Release on page 200.
Project Files and Database Files
Typically, 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 485.
On the Build Options page (see Setting Build Options for a Release on page 199) or on the Media page (see Setting Up Media for Distribution on page 208), 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.
Note
Do not confuse the Wise installation project file (.WSI) with the Visual Studio project file (.WSPROJ).
Windows Installer Editor Reference 62
Working With Wise Installation Files
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
Can you switch from working on one file type to the other?
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.
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)
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.
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 344.
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 boxes.
However, you can add 64-bit registry keys in the lower list boxes, and you can import .REG files that contain 64-bit keys.
Windows Installer Editor Reference 63
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 64 What’s Different in a 64-bit Installation? on page 65 32-bit Applications on 64-bit Computers on page 66 Guidelines for Creating Platform-Specific Installations on page 67 Creating Multiple, Platform-Specific Installations from One Project File on page 68
Using 64-Bit Windows Installer Packages in the Windows Installer SDK Help
How to Specify the Target Platform
The target platform is stored in the Template 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 103.
Windows Installer Editor Reference 64
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:
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.
Working With Wise Installation Files
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, Visual Studio Solutions 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 114.
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 64-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 145.
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 368.
Windows Installer Editor Reference 65
Working With Wise Installation Files
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 179.
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, use the Wise Web Site option of the Download Redistributables wizard.
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.
z Redirecting system calls from 32-bit applications to the SysWOW64 directory.
z Providing separate logical views of key portions of the registry, intercepting 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)
Program Files (x86) directory Program Files directory
Windows Installer Editor Reference 66
Working With Wise Installation Files
Resource Place 32-bit versions in Place 64-bit versions in
Operating system components and shared libraries
Registry keys Do one of the following:
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 Do not mark the
component as 64-bit.
Search for “Running 32-bit Applications” and “WOW64 Implementation Details” in the MSDN Library (msdn.microsoft.com/library/).
z Place the keys in the 62-bit registry view.
z Mark the component as 64-bit on the
Component Details dialog box.
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 releases 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.
Windows Installer Editor Reference 67
Working With Wise Installation Files
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 68.
Platform-Specific Merge Modules
z A 32-bit merge module can be merged into a 32-bit or 64-bit installation.
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 64
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.
Windows Installer Editor Reference 68
Working With Wise Installation Files
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.
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 71.
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
Windows Installer Editor Reference 69
platform. Its Template Summary property is set to Intel, which represents a 32­bit installation.
Working With Wise Installation Files
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 71.
4. On the Releases page, create a release for each target platform. Example: Graphic32, Graphic64.
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.
Windows Installer Editor Reference 70
Its Template Summary property is set to Intel, which represents a 32-bit installation.
Working With Wise Installation Files
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 103 Customizing a Release on page 194 Defining a Feature and Component Set for a Release on page 196
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.
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 68 About MSI Script on page 431 Custom Action Reference on page 451
Starting a New Installation
Follow the steps below to create a new standard Windows Installer installation.
You can create other types of installations.
See Options for New Installations on page 77.
To start a new installation in the Wise editor
1. Select Start menu > Programs > Symantec > Wise Installation Express > Windows Installer Editor.
The New Installation File dialog box appears. If it does not appear, select File menu > New.
Windows Installer Editor Reference 71
Working With Wise Installation Files
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 62.
5. Select a target platform: 32-bit, 64-bit (x64), or 64-bit (Itanium).
See How to Specify the Target Platform on page 64.
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 Enable User Account Control (UAC) check box in Installation Expert > Windows Installer Options page.
See Creating an Installation for Standard Users on page 73.
7. Click OK. The new installation opens.
To start a new installation in the Visual Studio integrated editor
When you start a new installation, you have several options for how to proceed. Not only do you choose whether to create a project associated with a solution, but you also choose what kind of file to create. Typically, you will create an installation in one of these ways:
z As a project integrated with a Visual Studio solution. Do this to create an installation
for an application you have developed in Visual Studio.
See Creating an Installation Within a Solution on page 73.
z As a stand-alone installation that is not integrated with a solution. Do this to
package application files that are not already in a Visual Studio solution into an installation.
See Creating a Stand-alone Installation on page 75.
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 Installer Editor Reference 72
Windows\Profiles\Local Settings\Application Data instead of Program Files.
Working With Wise Installation Files
On the Files page, a warning message appears when you try to add a file to a
protected area.
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 73.
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 183.
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 72.
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 181.
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.
This option is not available in the Visual Studio integrated editor.
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 an Installation Within a Solution
¾ Visual Studio integrated editor only.
When you work in the Visual Studio integrated editor, you typically create an installation as a project within a Visual Studio solution. Because the installation is synchronized with
Windows Installer Editor Reference 73
Working With Wise Installation Files
the other projects in the solution, additions or changes you make in the other projects can be added to the installation automatically. See How the Installation Integrates With
the Solution on page 83.
Each Visual Studio installation project contains settings that control how it interacts with other projects in the solution. You can enter project settings when you create a new installation, or you can create an installation with default settings. You can edit project settings at any time. See Entering Project Settings on page 78.
You can create a stand-alone installation that is not integrated with a Visual Studio solution. See Creating a Stand-alone Installation on page 75.
You also can create other types of installations. See Options for New Installations on page 77.
Note
For best results, build the solution before creating the installation. This ensures that the target files are available for integration into the installation. If the main project’s target file does not exist when you create the installation, project information might not appear on the Product Details page as expected. The data will be included in the compiled .MSI, and will appear on the Projects page the next time you compile the installation project.
To create an installation within a solution
1. Start Visual Studio and open a solution.
2. Select File menu > New > Project.
The New Project dialog box appears.
3. In the Project Types list, select Wise Setup and Deployment Projects.
4. In the Templates list, do one of the following:
Select the Setup Wizard icon to create a new Windows Application installation
and enter its project settings.
Select the Windows Application icon, which creates a new installation with
default settings, which you can change later.
A Windows Application installation is a standard installation intended for a Windows computer or server.
5. In Name, enter a name for the installation file. In Location, specify the directory in which to save the project.
6. Mark Add to Solution.
7. Click OK.
If you selected the Windows Application icon, an installation project is created in the location you specified and is listed in Solution Explorer. Skip to the last step.
If you selected the Setup Wizard icon, the Wise Setup Wizard appears.
8. Step through the Wise Setup Wizard:
a. On the wizard’s Overview page, review the project settings.
b. On the wizard’s Project Type page, select the Windows Application option.
c. Set additional options if necessary.
Windows Installer Editor Reference 74
See Entering Project Settings on page 78.
d. Click Finish.
An installation project is created in the location you specified and is listed in Solution Explorer. A corresponding .WSPROJ file (Visual Studio project) is created in the same location.
9. Double-click the .WSI file in Solution Explorer.
The installation opens.
See also:
Starting a New Installation on page 71
Creating a Stand-alone Installation
¾ Visual Studio integrated editor only.
You can create an installation that is not associated with a Visual Studio solution. Example: You might do this when you are not creating the .EXE and .DLL files that make up the installation. In such cases, there is no need to synchronize the installation with other Visual Studio projects.
You can create an installation that is part of a Visual Studio solution. See Creating an
Installation Within a Solution on page 73.
Working With Wise Installation Files
You also can create other types of installations. See Options for New Installations on page 77.
To create a stand-alone installation
1. Start Visual Studio. If a solution is open, close it.
2. Select File menu > New > File.
The New File dialog box appears.
3. In the Categories list, select Wise Files.
4. In the Templates list, click one of the following icons:
Windows Application File
Create an .MSI (Windows Installer database), which is a distributable installation. Because an .MSI typically encapsulates all the files in the installation, it is larger and takes longer to save. Also, some options that determine the output of an .MSI are not available when you work with the .MSI itself.
Windows Application Project
Create a .WSI (Windows Installer project), which contains instructions for compiling an .MSI. When you work in a .WSI instead of an .MSI, the .WSI file is smaller and you can set multiple options for the output of the .MSI.
See File Types on page 61 and Project Files and Database Files on page 62.
5. Click Open.
The installation opens.
See also:
Windows Installer Editor Reference 75
Starting a New Installation on page 71
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.
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.”
Working With Wise Installation Files
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 71.
(In Visual Studio: Start a new stand-alone installation and select the Device Driver icon on the New File dialog box.
See Creating a Stand-alone Installation on page 75.)
Start a new installation and select the Device Driver icon on the New
Installation File dialog box.
See Starting a New Installation on page 71.
Open an existing installation.
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 328.
5. On the Features page, add a feature for the installation’s driver package.
See a Adding a New Feature on page 101.
6. On the Files page, do the following.
See Adding Files to an Installation on page 116.
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.
Windows Installer Editor Reference 76
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 138.
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
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.
Working With Wise Installation Files
See Creating and Editing Installation Templates on page 49.
This section describes the options that are available.
Setup Wizard
(Visual Studio integrated editor only.) Runs a wizard that creates a Windows Application, Server Application, or Merge Module installation. With this wizard, you can customize the settings rather than accepting the defaults of the standard templates.
See Creating an Installation Within a Solution on page 73.
Windows Application
Creates a standard installation with default settings.
See Starting a New Installation on page 71.
In the Visual Studio integrated editor, see Creating an Installation Within a Solution on page 73 or Creating a Stand-alone Installation on page 75.
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 76.
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 218.
Windows Installer Editor Reference 77
Working With Wise Installation Files
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 221.
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 332.
Merge Module
See Creating a Merge Module As a New Installation on page 316.
In Visual Studio: see Creating a Merge Module Within a Solution on page 318 or
Creating a Merge Module As a New Installation on page 316.
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 340.
z Visual Basic
(In Visual Studio: this is named Import Visual Basic.)
z Visual C#
(Not available in the Visual Studio integrated editor.)
z Visual J#
(Not available in the Visual Studio integrated editor.)
Entering Project Settings
¾ Visual Studio integrated editor only.
Each Visual Studio installation project has settings that control how it interacts with other projects in the solution.
Stand-alone installations that are not integrated with a Visual Studio solution do not have project settings.
To access project settings:
Do one of the following:
z While creating a new installation project, select Setup Wizard on the New Project
dialog box.
See Creating an Installation Within a Solution on page 73.
The Wise Setup Wizard dialog box appears. Available pages are: Overview, Project Type, Projects, and Main Project.
z Right-click an existing installation project in Solution Explorer and select Properties.
Windows Installer Editor Reference 78
Overview Page
Working With Wise Installation Files
The Property Pages dialog box appears. Available pages are: Projects, Project Outputs, Main Project, Pre-build Event, and Post-build Event.
Note
The Property Pages dialog box contains a link to the Configuration Properties page, however, configuration properties do not apply to Wise editor installation projects.
See also:
Overview Page on page 79 Project Type Page on page 79 Projects Page on page 80 Main Project Page on page 81 Pre-build Event on page 81 Post-build Event on page 81 Project Outputs Page on page 82
¾ Visual Studio integrated editor only.
The Overview page summarizes the project settings for the project you are creating. Review the settings to make sure they are correct. To change these settings, click the links at the left to access the Project Type, Projects, or Main Project pages.
See also:
Creating an Installation Within a Solution on page 73 Entering Project Settings on page 78
Project Type Page
¾ Visual Studio integrated editor only.
The Project Type page lets you specify what kind of installation project you are creating. This page is accessible only from the Wise Setup Wizard when you create a new installation.
z Windows Application
z Merge Module
Create a standard Windows Installer installation (.WSI). This is intended for installation to Windows computers or servers.
See Creating an Installation Within a Solution.
Create a standard merge module project (.WSM).
See Creating a Merge Module Within a Solution on page 318.
See also:
Creating an Installation Within a Solution on page 73 Entering Project Settings on page 78
Windows Installer Editor Reference 79
Projects Page
Working With Wise Installation Files
¾ Visual Studio integrated editor only.
On the Projects page, you select projects to add to the installation you are creating. Access this page either from the Wise Setup Wizard when you create a new installation, or by right-clicking a project in a solution and selecting Properties.
z Select the projects to include in this package
From this list of all projects in the current solution, select the ones to add to this installation. (All projects are selected by default.) Output files of the selected projects are added to this installation.
If you add a project to this solution later, it will be added to the project list and selected for inclusion.
To exclude a project from the installation, deselect it.
z Scan Method
Each time you load, save, or build an installation project or change its settings, Windows Installer Editor can scan projects in the solution for new files to add to the installation.
See Scanning the Solution for New Files on page 84.
Specify the level of scanning that will occur for this installation. The default is determined by the Scan Method option in Wise Options.
Never scan solution
If you select this, you must add new files to installations manually using the Files page. Also, when files are removed from a solution, you must remove them from the installations manually.
Prompt only when new files are detected
Select this to be prompted each time there are new files in the solution that need to be added to the installation. The prompt appears during save, build, or compile.
Prompt when any files are detected
This is the highest level of prompting. Like the previous option, the prompt appears during save, build, or compile when there are new files. Also, if you previously excluded files by clearing their check boxes, you’ll be prompted to confirm that those files should be excluded.
Always scan solution
Each time Windows Installer Editor scans a solution, it adds new files to the installation and deletes files that have been removed from the solution.
z Bind installed files to the solution build configuration
Mark this to have the installation source paths change automatically when you change this project’s build configuration. The default is determined by a check box in Wise Options.
z Automatically generate web sites and virtual directories
Mark this to include Web application projects in the project scanning and create web sites and virtual directories based on the scan. If you do not want the web sites or virtual directories to be created, clear this check box.
See also:
Windows Installer Editor Reference 80
Creating an Installation Within a Solution on page 73 Entering Project Settings on page 78
Main Project Page
¾ Visual Studio integrated editor only.
On the Main Project page, you specify the main project and set options that affect the main project. Access this page either from the Wise Setup Wizard when you create a new installation, or by right-clicking a project in a solution and selecting Properties.
z Main Project
z Automatically Update Product Information
Working With Wise Installation Files
Select the project that generates the main target, or executable file, for your application. (Example: If the main executable for the project is Sample.exe, you would select the project that generates Sample.exe.) When you select a project, a shortcut is generated for the main target and the version number in the Wise project is updated from the main target.
If you select <None>, or if you are in a merge module, shortcut generation and version updating does not occur.
Mark this to update the installation’s product name, version, and manufacturer whenever you rebuild the solution or whenever the version number of the main target file changes. (In a merge module, only the version is updated.) The default is determined by a check box in Wise Options. This is unavailable if you select
<None> in Main Project.
Pre-build Event
Post-build Event
z Create Shortcut
Mark this to add a shortcut for the main target file to the installation. The default is determined by a check box in Wise Options. This is unavailable if you select <None> in Main Project.
See also:
Creating an Installation Within a Solution on page 73 Entering Project Settings on page 78
¾ Visual Studio integrated editor only.
The Pre-build Event page lets you add to a project anything that is needed before the build occurs. Example: You can copy something to a source where you need it.
Access this page by right-clicking a project in Solution Explorer and selecting Properties.
You can use any DOS command to create command lines for this build event. You can add as many command lines as needed.
¾ Visual Studio integrated editor only.
The Post-build Event page lets you add to a project anything that is needed after the build occurs. Example: You can copy an .MSI to the network.
Windows Installer Editor Reference 81
Access this page by right-clicking a project in Solution Explorer and selecting Properties.
You can use any DOS command to create command lines for this build event. You can add as many command lines as needed.
Project Outputs Page
¾ Visual Studio integrated editor only.
By default, the installation includes only the main output file (.EXE or .DLL) from each project in the solution, and the content files from each project. On the Project Outputs page, you select which projects to include in the installation and specify additional project output files to include in the installation.
You also can add and delete output groups in a specific installation in Installation Expert > Visual Studio Solution page. Any changes you make on the Visual Studio Solution page override the settings on the Project Outputs page.
See Visual Studio Solution Page on page 140.
This page is accessible only on the Project Properties dialog box. Right-click a project in a solution and select Properties.
z Project
Select the project to specify additional outputs for.
Working With Wise Installation Files
z Output Groups
Select one or more types of output files to include in the installation:
Debug Symbols
Include the project’s debugging (.PDB) files.
Localized Resources
Include files marked as resources for the project. Example: additional files for a specific language.
Source Files
Include all source code files in the project.
Content Files
Include all files marked as content within the project, that is, files that are not compiled but are meant to be distributed with the application. Examples: HTML, ASP, and ASPX files.
Primary Output
Include the .DLL or .EXE built by the project.
See also:
Creating an Installation Within a Solution on page 73 Entering Project Settings on page 78
Windows Installer Editor Reference 82
Working With Wise Installation Files
How the Installation Integrates With the Solution
¾ Visual Studio integrated editor only.
When you add an installation to a Visual Studio solution, as described in Creating an
Installation Within a Solution on page 73, the following items are added to the
installation project:
z All primary outputs (.EXEs and .DLLs) of the projects in the solution, and all content
files in the solution. (Content files are not compiled but are meant to be distributed with the application. Examples: HTML, ASP, and ASPX files.) When a project consists only of a .DLL or .OCX, has no additional content, and is a dependent of another project, it is not added to the installation by default.
To add other outputs to the installation, select the appropriate output group on the Project Outputs page in the project settings, or add them on the Visual Studio Solution page.
Windows Installer Editor can scan for files you add or delete after you create the installation project, and can add them to or delete them from the project.
See Scanning the Solution for New Files on page 84.
z Assembly dependencies, if you have selected one of the rescan assembly options in
Wise Options.
View these in Installation Expert > Files page or Visual Studio Solution page.
z The application name, version, and manufacturer from the main project in the
solution.
View these in Installation Expert > Product Details page. The default directory is filled in with the same name as the main project. You can change the main project on the Main Project page in the project settings.
Note
Except for the product version, once the information on the Product Details page is set, it does not change if you change the information in the main project.
z An advertised shortcut for the application.
On the Project Outputs page in the project settings, you can choose not to create a shortcut.
When you add a new project to the solution, its outputs are added to the installation.
To exclude a project from the installation, or to change how the installation project integrates with the solution, edit the installation’s project settings.
See Entering Project Settings on page 78.
Note
Only files that reside in the directory where the solution (.sln) file resides and its subdirectories can be managed with source control. Files that reside in system directories or other locations outside the solution directory are not managed by source control, and therefore do not appear in the Other Files or Source Files folders under the installation project in Solution Explorer.
Windows Installer Editor Reference 83
Scanning the Solution for New Files
¾ Visual Studio integrated editor only.
Windows Installer Editor can scan projects in a solution for new output files that need to be added to the installation, and add those files to the installation.
Scanning occurs when you:
z Load, save, or build an installation project within a solution.
z Change the installation’s project settings. Examples: output types, projects to
include.
How and when the solution is scanned is determined by the Scan Method option. The default is set in Wise Options and can be changed for specific installations on the Projects page in the project settings.
See Setting Visual Studio Options on page 47 and Projects Page on page 80.
z If you add an existing .WSI to a solution, the .WSI project’s original scan method
setting is preserved.
z If you add an existing .WSI project to a solution and no scan method setting is
found, the default scan method is used.
Working With Wise Installation Files
You can specify the level of scanning that should occur for each installation.
See Projects Page on page 80.
If the solution contains a mixed-platform (32-bit and 64-bit) project, define the INSTALLDIR property to ensure that the outputs are placed in the appropriate directory for each platform.
See Defining the INSTALLDIR Property in a Mixed-Platform Installation on page 71.
Add Project Outputs to Installation dialog box
This dialog box appears during save, build, or compile when the scan method is set to prompt. On this dialog box, you can:
z Mark check boxes for files to add them to the installation project.
z Edit the destination feature and target directory by clicking a file and editing the
appropriate cell.
z Add and edit multiple files at once by selecting them and clicking the Properties
button. On the Project Output Properties dialog box that appears, you can add a new feature and add a new directory for all of the selected files.
Why would you change the scan method?
You can change the scan method for specific installations on the Projects page in the project settings.
You might want to change an installation’s scan method at various stages of the development cycle. Example:
z At the beginning of a development project when you are continually creating new
projects and files, you would want to add all new files automatically.
z As development continues and you become more discriminating about the files you
add to the installation, you might want to be prompted to add files.
Windows Installer Editor Reference 84
z At the end of the development cycle, you can turn the scanning off altogether so
you don’t introduce any new files into the installation.
See also:
How the Installation Integrates With the Solution on page 83
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, .WSM, or .MST files. You can compare an .MSP file only with its base .MSI.
Options for Comparing Files
z Compare the current file to another file.
z Compare any two files.
(Not available in the Visual Studio integrated editor.)
z Compare a transform to its base .MSI, to see the items that the transform changes
in the .MSI.
Working With Wise Installation Files
To view differences between two Windows Installer files
1. Open a file.
2. Select Tools menu > Visual MSIDiff and then select an option.
In Visual Studio: Project menu > Visual MSIDiff.
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. (Not available in the Visual Studio integrated editor.)
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 marked its Do not show this dialog again check box. You can reactivate this prompt in Wise Options.
Windows Installer Editor Reference 85
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. (In Visual Studio: Project 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 231.
See also:
Tables Tab on page 373
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.
Working With Wise Installation Files
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.
In Visual Studio: Tools > Options > Wise Options > General.
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.
In Visual Studio: Project > Export to XML.
2. In the Save As dialog box that appears, specify a file name with the extension .XML and click Save.
Windows Installer Editor Reference 86
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.
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.
(In Visual Studio: compiling and building do the same thing.)
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 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 button at the right of the Releases page.
When the installation is part of a Visual Studio solution, settings on the Visual Studio Releases dialog box determine which releases are compiled for a given solution configuration. You access this dialog box from the Release Details dialog box.
Working With Wise Installation Files
See Associating a Release With Visual Studio Build Configurations on page 192.
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 35.
z Use ExpressBuild, a multi-processor compile feature.
See About ExpressBuild on page 40.
To compile an installation in the Wise editor
1. Click Compile at the lower right of the main window.
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 354.
To compile an installation in the Visual Studio integrated editor:
Select one of the following commands from the Build menu:
z Build Solution
Compiles all projects in the current solution. If quick compile is enabled and you have already built this solution, this command compiles only what has changed since the last build.
Windows Installer Editor Reference 87
Working With Wise Installation Files
z Build project name
Compiles only the project you selected in Solution Explorer. If quick compile is enabled and you have already built this project, this command compiles only what has changed since the last build.
z Rebuild Solution
Compiles all files in all projects in the solution.
z Rebuild project name
Compiles all files in the project you selected in Solution Explorer.
z Compile
Compiles the current project or installation file. This is the only command available for installations that are not part of a Visual Studio installation.
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. (In Visual Studio: errors appear in the Visual Studio Output window as they are encountered and then, at the end of the compile, they are listed in the Task List.) Use the Task List to determine the source of the errors.
See Using the Task List on page 26.
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. (In Visual Studio: Help menu > Wise Help > Download Redistributables.)
See also:
Testing An Installation on page 89 Running An Installation on page 89 Running the Debugger on page 428
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 89.
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 428.
z Run the installation on your computer, which installs files and changes the system.
See Running An Installation on page 89.
Windows Installer Editor Reference 88
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.
In Visual Studio: select Project menu > Start in Test Mode.
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.
Working With Wise Installation Files
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.
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 87 Running An Installation on page 89 Running the Debugger on page 428
Running An Installation
When you run an installation on your computer, it runs as it would on the destination computer, actually installing files and changing the system.
To run an installation and install it on your computer
1. Click Run at the lower right of the main window.
In Visual Studio: in Solution Explorer, right-click the installation project icon and select Set as StartUp Project. Then, select Debug menu > Start Without Debugging. The additional options below are not available.)
Windows Installer Editor Reference 89
Working With Wise Installation Files
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.
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.
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.
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:
Testing An Installation on page 89 Running the Debugger on page 428 Compiling An Installation on page 87
Windows Installer Editor Reference 90
Chapter 4
Defining an Installation Project
This chapter includes the following topics:
z Project Summary Page on page 91
z Product Details Page on page 91
z General Information Page on page 95
z Add/Remove Programs Page on page 96
z Features Page on page 97
z Managing Binary Resources on page 108
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 91.
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.
Note
(Visual Studio integrated editor only.) Except for the product version, once the information on the Product Details page is set, it does not change if you change the information in the main project.
Windows Installer Editor Reference 91
Defining an Installation Project
To set product details
Select Installation Expert > Product Details page and complete the page:
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 page.
The end user sees this name during installation and in the Add/Remove Programs dialog box.
(Visual Studio integrated editor only.) If this installation is part of a Visual Studio solution, this is pre-filled.
z Manufacturer
Enter the manufacturer or publisher of the application.
(Visual Studio integrated editor only.) If this installation is part of a Visual Studio solution, this is pre-filled.
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 94.
(Visual Studio integrated editor only.) If this installation is part of a Visual Studio solution, this is pre-filled.
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.
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 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 94.
(Visual Studio integrated editor only.) If this installation is part of a Visual Studio solution, this is pre-filled.
z Package Path
(Read-only.) This displays the installation file’s location.
Windows Installer Editor Reference 92
Defining an Installation Project
z Product Code
Every Windows Installer installation must have a unique product code, which is 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 292.
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 488.
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 36.
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 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.
z Description
Describe the package.
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.
Windows Installer Editor Reference 93
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
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.
See Product Details Page on page 91.
You can increment the version number automatically during compile by marking the Increment version number on compile check box on the Product Details page.
Defining an Installation Project
(Visual Studio integrated editor only.) If an installation is part of a Visual Studio solution, you can have the version number updated whenever the version number of the main target file changes. To enable version updating, mark the Automatically Update The Version Number check box on the Main Project page of the Property Pages dialog box.
See Main Project Page on page 81.
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.)
On the Product Details page, you can:
z Change the default installation directory.
Windows Installer Editor Reference 94
Defining an Installation Project
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.
4. Mark Change Feature configurable directories to have any features that explicitly reference the default directory change when you select a new default directory.
To see if a feature explicitly 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.
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.
Windows Installer Editor Reference 95
Defining an Installation Project
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.
To change this version, 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,
or Windows 2003.
Windows Installer version 4.0 requires Windows Vista or later.
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.
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
Windows Installer Editor Reference 96
Mark this to disable the Change button for your application in Add/Remove Programs. This prevents end users from changing the installation.
Defining an Installation Project
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
Enter the path to a help file that will be installed on the destination computer.
Comments
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 conditions 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 487.
Note
WiseScript Package Editor and WiseScript Editor refer to features as “components.”
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 64.
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.
Windows Installer Editor Reference 97
Defining an Installation Project
See Setting Features for Installation Types on page 186.
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 196.
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 feature. You can delete it, but only after you create a second feature.
See Strategies for Organizing Files Into Features on page 99.
Working with the Features page
The tree structure on the Features page displays features and conditions, and their hierarchical relationships.
z To add a new feature, click its parent feature and click the Add button at the right of
the page.
See Adding a New Feature on page 101.
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 To 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 103.
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 106 and Adding and Deleting Feature
Conditions on page 107.
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.
Windows Installer Editor Reference 98
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.
In Visual Studio: select Project menu > Start in Test mode.
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.
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.
Defining an Installation Project
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 t he Core feature. Make them childre n of th e Core featu re to ensure th at the y 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
Windows Installer Editor Reference 99
Defining an Installation Project
assigned to the Core feature. Because they are siblings of the Core feature, 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 sees the optional features at the top level instead of buried in the tree structure.
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.
Windows Installer Editor Reference 100
Loading...