Developer 7.0

Transcription

Developer 7.0
Developer 7.0
InstallShield Developer Version 7.0 Getting Started Guide
© 1998–2001 InstallShield Software Corporation. All Rights Reserved.
This document is being furnished by InstallShield Software Corporation for information purposes only to licensed
users of the InstallShield Developer software product and is furnished on an “AS IS” basis, that is, without any
warranties, whatsoever, express or implied. InstallShield is a registered trademark and service mark of
InstallShield Corporation. DemoShield is a trademark of InstallShield Software Corporation. Other brand and
product names are trademarks or registered trademarks of the respective holders. Microsoft Windows, Windows
NT, the Windows logo, the Windows NT logo and FrontPage are registered trademarks of the Microsoft Corporation. Adobe Acrobat is a registered trademark of Adobe Systems Incorporated. Information in this document is
subject to change without notice and does not represent any commitment on the part of InstallShield Software
Corporation. The software described in this document is furnished under a license agreement. The software may
be used only in accordance with the terms of that license agreement. It is against the law to copy or use the software except as specifically allowed in the license. No part of this document may be reproduced or retransmitted
in any form or by any means, whether electronically or mechanically, including, but not limited to the way of:
photocopying, recording, or information recording and retrieval systems, without the express written permission
of InstallShield Software Corporation.
InstallShield Developer 7.0 Getting Started Guide
Initial Publishing July 2001
Printed in the USA
Part No. ISDGSG01–0701
Visit our Web site at http://www.installshield.com.
Record Your Product Serial Number Here:
You will need this serial number every time you contact InstallShield Software Corporation.
The serial number can be found in the About dialog, accessible from the Help menu.
September 2001
Dear InstallShield Developer Customer:
Thank you for choosing InstallShield Developer 7.0. The Getting Started Guide, Online Reference, and Knowledge Base compose the comprehensive InstallShield Developer documentation set. Please note that some information and examples might not apply to previous versions
of InstallShield products.
For additional InstallShield Developer information, please visit our Web site at
http://www.installshield.com. The latest InstallShield news, hot installation topics, technical
white papers, and downloadable files are now available to you 24 hours a day, seven days a
week.
We are committed to providing you with the most innovative software distribution technology.
As such, we welcome your comments and suggestions about InstallShield Developer and its
documentation, or any other input you might have. Your feedback is invaluable. Please contact us through the Support link of the InstallShield Web site at http://www.installshield.com.
Thank you for using InstallShield Developer.
Sincerely,
Viresh Bhatia
CEO, InstallShield Software Corporation
Bob Doyle
Product Director
Lori Erickson and Eric Thomas
Technical Writers
Robert Dickau
Technical Trainer
Table of Contents
Welcome to InstallShield Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
InstallShield Developer Features & Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
The #1 Choice for both Productivity and Advanced Capabilities . . . . . . . . . . . . . . . . . . xix
InstallShield Innovation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Smart Technology Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Key Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Product Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Efficient Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Dynamic Web Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Advanced Project Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Flexible Runtime Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Internationalization Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Comprehensive Online Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
About InstallShield Software Corporation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Fast Facts About InstallShield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
InstallShield Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
Installation Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
InstallShield Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
InstallShield Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
InstallShield Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
InstallShield MultiPlatform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Administrator Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
InstallShield AdminStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Multimedia Authoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
DemoShield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Try an InstallShield Solution Today! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Technical Support Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Online Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Help Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Context-Sensitive Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Web-Based Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
The Official InstallShield for Windows Installer Developer’s Guide . . . . . . . . . . . . . . xxviii
InstallShield Knowledge Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
InstallShield Newsgroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
InstallShield Software Corporation
v
InstallShield Customer Care—Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
Contacting InstallShield Customer Care . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
Support Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
InstallShield Professional Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
InstallShield Consulting Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
InstallShield Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
InstallShield Training Centers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi
Chapter
1 Installing InstallShield Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Recommended System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Uninstallation Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Register Your Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter
2 Setup Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
What is Windows Installer? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Benefits of Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Self-Repair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Feature Advertisement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Componentized Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rollback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Single File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Merge Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User-Accessible Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows 2000 Logo Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Clean Uninstallation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What is a Setup? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Typical Setup Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Perform File Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Display User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Create Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Register File Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Register COM, COM+, and DCOM Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Register Product for Uninstallation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
1-3
1-3
1-4
1-4
1-4
2-3
2-3
2-3
2-3
2-3
2-4
2-4
2-4
2-4
2-4
2-4
2-5
2-5
2-5
2-5
2-6
2-6
2-6
2-7
InstallShield Software Corporation
Chapter
3 Upgrading Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Standard vs. Basic MSI Setup Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Standard Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Basic MSI Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Upgrading InstallShield Professional Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Opening Your Setup Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Project Element Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Lexicon Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Project Settings Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
String Tables Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Build and System Variable Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
How Upgrading Affects Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
File Groups Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12
Registry Data Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14
Shortcut Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14
Media Information Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15
Setup Type Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16
Build Settings Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16
Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16
Upgrade Warnings and Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17
Upgrading InstallShield—Windows Installer Edition Projects . . . . . . . . . . . . . . . . . . . . 3-17
Converting a Basic MSI Project to a Standard Project . . . . . . . . . . . . . . . . . . . . . . . . . 3-18
Chapter
4 Using InstallShield Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Setup Project File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tour of the IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifying and Displaying Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Control Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dialog Layout Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MSI Debugger Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Viewbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallShield Software Corporation
4-3
4-3
4-3
4-3
4-3
4-5
4-6
4-7
4-7
4-7
vii
Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8
Organize Your Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8
General Information View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9
Project Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Summary Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Windows 2000: Information Stored in the Add/Remove
Programs Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Product Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
String Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
Subfeatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
Feature Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
Setup Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15
Default Setup Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15
Additional Setup Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16
Specify Application Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16
Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17
Merge Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19
Objects vs. Merge Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19
Associating Merge Modules with Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19
Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20
Configure the Target System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21
Shortcuts/Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22
Creating a Shortcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22
Shortcut Destinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22
Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-23
Adding Registry Data to a Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24
ODBC Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25
INI File Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26
Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-27
Design the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-28
End-User Dialogs (Basic MSI Setup Project) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-28
Dialogs (Standard Setup Project) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
Editing a Dialog’s Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
Reverting Back to the Default Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
Editing a Dialog’s Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
viii
InstallShield Software Corporation
Customize Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Files and Functions Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Script Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequences/Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setup Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Billboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Prepare for Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Build Your Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MSI Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Distribute Your Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Advanced Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Path Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Hard-Coded Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Path Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Different Types of Path Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Property Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setup Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Merge Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Files, Registry Data, and Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Advanced Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequences/Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Component-Feature Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Direct Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallShield Software Corporation
4-30
4-31
4-31
4-31
4-32
4-32
4-33
4-33
4-34
4-34
4-35
4-35
4-36
4-37
4-37
4-37
4-37
4-38
4-39
4-40
4-40
4-40
4-41
4-41
4-41
4-41
4-42
4-42
4-43
ix
Chapter
5 Advanced Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using InstallScript in Custom Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic MSI Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating and Using a Custom Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Globalizing a Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Steps to Globalize a Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Patching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Automation Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Disk Spanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Release Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Validating Your Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Viewing the Scan Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Validation Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Source Code Control Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
COM Registration Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extracting COM Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Self-Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter
6 Globalizing Your Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Steps to Globalize a Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How InstallShield Developer Determines Which Language the Setup Runs In . . . . . . . . . .
Display the Language Dialog to the User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Project’s Default Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting the Default Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What the Default Language Affects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Customizing Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
x
5-3
5-3
5-3
5-3
5-3
5-4
5-4
5-4
5-5
5-5
5-6
5-6
5-6
5-6
5-7
5-7
5-8
5-8
5-8
5-9
5-9
5-9
6-3
6-3
6-3
6-4
6-4
6-4
6-5
6-5
InstallShield Software Corporation
Installing Files of the Same Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Globalization Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Globalization Code Page Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing Code Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows NT 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter
6-5
6-6
6-6
6-7
6-7
6-7
7 Frequently Asked Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
General Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5
What is the Difference between Standard and Basic MSI Setup Projects? . . . . . . . . . . . 7-5
Similarities Between Standard and Basic MSI Project Types . . . . . . . . . . . . . . . . . . . 7-5
Standard Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5
Basic MSI Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6
Where Can I Find Information About Windows Installer Run-Time Errors? . . . . . . . . . . 7-7
How Can I Be Sure the Target Machine Has the Windows Installer Service? . . . . . . . . 7-7
Where Can I Access Updated Merge Modules? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7
Files and Folders Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7
When Do I Self-Register Files vs. Only Extracting COM Information? . . . . . . . . . . . . . 7-7
How Does Windows Installer Determine Which Files Should Be Overwritten? . . . . . . . 7-8
How Do I Associate File Types with My Program? . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8
How Do I Specify the Destination Folder for My Application? . . . . . . . . . . . . . . . . . . . 7-9
Using INSTALLDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9
Specifying File Destination Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9
Hard-Coding a Destination Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9
What is the Difference Between INSTALLDIR and MSI_TARGETDIR? . . . . . . . . . . . . . 7-10
How Do I Register a COM Server? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10
How Do I Install and Configure a Windows NT Service? . . . . . . . . . . . . . . . . . . . . . 7-10
How Do I Create an Empty Folder? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10
Basic MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10
How Do I Set a Key File for a Dynamic File Link? . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10
What Happens If I Put More Than One Executable in the Same Component? . . . . . . . 7-11
Features and Components Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11
How Do I Control the Items Appearing in a Feature’s Context Menu? . . . . . . . . . . . . 7-11
How Do I Conditionally Select A Feature? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11
InstallShield Software Corporation
xi
Standard Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic MSI Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Conditionally Hide a Feature? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shortcuts Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Create Shortcuts? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Create An Internet Shortcut? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Create a Shortcut to a Folder? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Registry Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Read Data from the Registry? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Write a Property’s Value to the Registry? . . . . . . . . . . . . . . . . . . . . . . . . .
Properties Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How do I Get or Set a Windows Installer Property in InstallScript? . . . . . . . . . . . . . .
Conditions Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Conditionally Install My Setup Based on the Operating System of the
Target Machine? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Can I Create My Setup So it Installs Files Based on the Target Operating System?
How Do I Detect Administrator Privileges? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Detect a First-time Installation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Detect If the User Has Selected a Specific Feature? . . . . . . . . . . . . . . . . . .
Standard Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Detect If the User is Running a Particular Operating System? . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xii
7-11
7-11
7-12
7-12
7-12
7-13
7-13
7-13
7-13
7-13
7-14
7-14
7-14
7-14
7-14
7-15
7-15
7-15
7-16
7-16
7-16
7-17
7-17
7-17
7-17
7-17
7-17
7-18
7-18
7-18
7-18
7-18
7-18
InstallShield Software Corporation
User Interface Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Display a License Agreement? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Validate a Serial Number? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Populate a List Box at Run Time? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Display a File-Browse Dialog Box? . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Display a Network-Browse Dialog Box? . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Why Can’t I Remove the InstallShield Label (Branding) from the Setup Dialog Boxes? .
Custom Actions Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Search for a File on the User’s System? . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Launch My Application Following Installation? . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Place a File in the .msi Database and Extract It During Run Time? . . . . . . .
Building Release Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
My Setup Does Not Fit on a Single Floppy Disk. Why? . . . . . . . . . . . . . . . . . . . . . .
Disk Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Disk Spanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Get Changes I Make in the IDE to Take Effect When I Run My Setup? . . . . .
How Do I Build My Project from the Command Line? . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Change Project Properties from the Command Line? . . . . . . . . . . . . . . . . .
How Do Users Run My Installation in Silent Mode? . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Create and Read a Response File for a Silent Installation? . . . . . . . . . . . . .
Standard Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallShield Software Corporation
7-18
7-18
7-19
7-19
7-19
7-19
7-20
7-20
7-20
7-20
7-20
7-20
7-21
7-21
7-21
7-21
7-21
7-22
7-22
7-22
7-22
7-22
7-23
7-23
7-23
7-23
7-23
7-24
7-24
7-24
7-24
7-24
xiii
Uninstallation Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Remove Files that Were Created by My Product? . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Remove Registry Data Created by My Product? . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-24
7-24
7-25
7-25
7-25
7-25
7-25
Appendix A DemoShield Browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1
What is a DemoShield Browser? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DemoShield Browser Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DemoShield Browser Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using an Existing Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Expanding DemoShield Browser Wizard Functionality . . . . . . . . . . . . . . . . . . . . . . . . .
About DemoShield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What DemoShield Can Do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DemoShield Consulting Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DemoShield Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Browser Using DemoShield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A-3
A-3
A-3
A-4
A-4
A-4
A-4
A-5
A-6
A-6
A-6
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-1
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I-1
xiv
InstallShield Software Corporation
Welcome to InstallShield Developer
Chapter Contents
Welcome to InstallShield Developer! You have purchased
the most powerful, flexible, and extensible means of setup
development available. This chapter describes some of
the many features and benefits of InstallShield Developer,
and provides information on how to get help when you
need it.
InstallShield Developer Features & Benefits. . . . .xix
The #1 Choice for both Productivity and
Advanced Capabilities . . . . . . . . . . . . . . . . .xix
InstallShield Innovation . . . . . . . . . . . . . . . . .xix
Smart Technology Choice . . . . . . . . . . . . . . .xix
Key Benefits. . . . . . . . . . . . . . . . . . . . . . . . . xx
Product Features . . . . . . . . . . . . . . . . . . . . . xx
Efficient Development . . . . . . . . . . . . . . . . xx
Dynamic Web Distribution . . . . . . . . . . . . xx
Advanced Project Control . . . . . . . . . . . . .xxi
Flexible Runtime Experience . . . . . . . . . . xxii
Internationalization Support . . . . . . . . . . xxii
Comprehensive Online Tutorial . . . . . . . . . . xxiii
About InstallShield Software Corporation . . . . xxiii
Fast Facts About InstallShield . . . . . . . . . . . xxiii
InstallShield Products . . . . . . . . . . . . . . . . . . . xxiv
Installation Development . . . . . . . . . . . . . . . xxiv
InstallShield Developer . . . . . . . . . . . . . . xxiv
InstallShield Professional . . . . . . . . . . . . . xxiv
InstallShield Express . . . . . . . . . . . . . . . . xxv
InstallShield MultiPlatform . . . . . . . . . . . . xxv
Administrator Solutions . . . . . . . . . . . . . . . xxv
InstallShield AdminStudio . . . . . . . . . . . . xxvi
Multimedia Authoring . . . . . . . . . . . . . . . . xxvi
DemoShield . . . . . . . . . . . . . . . . . . . . . . xxvi
Try an InstallShield Solution Today! . . . . . . xxvii
Technical Support Resources. . . . . . . . . . . . .
Online Help. . . . . . . . . . . . . . . . . . . . . . .
Help Library. . . . . . . . . . . . . . . . . . . . .
Context-Sensitive Help . . . . . . . . . . . . .
InstallShield Software Corporation
xxvii
xxvii
xxvii
xxvii
xvii
Web-Based Help . . . . . . . . . . . . . . . . . . . xxvii
The Official InstallShield for
Windows Installer Developer’s Guide . . . . xxviii
InstallShield Knowledge Base . . . . . . . . . . xxviii
InstallShield Newsgroups . . . . . . . . . . . . . xxviii
InstallShield Customer Care—
Technical Support . . . . . . . . . . . . . . . . . . xxviii
Contacting InstallShield Customer Care . xxviii
Support Programs . . . . . . . . . . . . . . . . .xxix
InstallShield Professional Services . . . . . . . . . . xxx
InstallShield Consulting Services . . . . . . . . . xxx
InstallShield Training . . . . . . . . . . . . . . . . . xxx
InstallShield Training Centers. . . . . . . . . .xxxi
xviii • Welcome to InstallShield Developer
InstallShield Software Corporation
InstallShield Developer Features &
Benefits
InstallShield Developer™ version 7.0 is the most advanced installation authoring
solution ever created, delivering the greatest flexibility, highest productivity, broadest
capabilities, and the maximum control. Developer gives you the best of both
worlds—the power of InstallScript combined with the end-user TCO reducing features of Windows Installer, such as application auto-repair and install on demand.
Fully control projects with InstallShield Developer features such as source code
control integration, release management, patch creation, and support for workflow
automation. Developer also enables customization of the entire end-user experience. Use One-Click Install™ technology, the graphical dialog editor, InstallScript™
customization, digital signatures, and billboard support to provide a world-class
installation experience for your customers.
The #1 Choice for both Productivity and Advanced
Capabilities
InstallShield Developer makes quick work of common installation tasks and dramatically increases efficiency, no matter how simple or complex the project may be. It
contains over 20 task-based wizards and more than 20 simplified task views.
Developer enables you to choose one of 33 runtime languages, optionally export
existing project elements to another project, and create project templates. Plus
Developer automatically adds the latest source files at build time with linked folders,
packages all required file dependencies, and adds vital third-party technologies—
with over 40 included merge modules to further increase your productivity.
InstallShield Developer offers you maximum power and flexibility by using both
InstallScript and Windows Installer tables to control the installation. Modifications
to the user interface sequence can be easily controlled via InstallScript, and installations benefit from Windows Installer features such as auto-repair and advertising.
This format is an evolution from all previous InstallShield Professional project formats.
InstallShield Innovation
InstallShield Developer includes the latest innovations and technology support,
including source code control integration, One-Click Install technology, and
InstallScript. Developer supports new and emerging technologies such as Windows
XP, .NET applications, and 64-bit applications.
Smart Technology Choice
InstallShield is the eighth-most used software in the world, an industry standard that
is backed by mature technology, award-winning support, hands-on training, professional consulting, and comprehensive offerings that only comes from InstallShield.
InstallShield Software Corporation
InstallShield Developer Features & Benefits • xix
Key Benefits
• Utilize all the power of InstallScript plus all the standards-compliance of Windows Installer in one development solution.
• Leverage the latest Microsoft technologies, such as .NET, Windows XP, and
64-bit applications.
• Provide bandwidth saving Web-based installation packages.
• Achieve high productivity with a visual development environment.
• Provide a world-class initial experience for your applications.
Product Features
Efficient Development
• Visual IDE—Merge the power of scripting with the short learning curve of a
visual development environment. Drag and drop files and registry entries from
the source to the destination folder trees. Simplified views of each task allow
you to focus on the job at hand.
• Twenty Productivity Wizards—Task based wizards simplify your development
tasks from starting VB projects to building custom releases.
• Technology Modules—Over 40 third-party technologies are included for you
to add into your projects. Review and change the contents of each module, or
create your own Merge Modules for easy sharing of setup functionality among
projects.
• File Dependency Scanning—Run automated dependency checks or walk
through your application to ensure that all of your file dependencies have been
included in your project. Automated VB project checking is also included. A
list of called files is generated for your review, prior to importing them into the
project.
• Upgrade Existing Scripts—Now convert existing InstallShield Professional
scripts (5.5 and up) to support the Windows Installer installation model, the
standard for Windows 2000 and XP logo-compliance.
• Dynamic Source Files—Eliminate the need to track every changed project file.
Automatically include the contents of watched directories at build time, based
on predefined paths and wildcard characters.
• Quick Build—Save time during testing by rebuilding only a portion of your
project.
• Project Templates—Maintain consistency across projects. Reduce work. Generate project outlines that can be used over and over again.
Dynamic Web Distribution
• One-Click Install Technology—Make Web distribution a snap! Offer users a
seamless, familiar, download and installation experience with one click on your
site. Eliminate unnecessary steps for users, such as responding to the “save as”
dialog and finding the location of the application on their system before
xx • Welcome to InstallShield Developer
InstallShield Software Corporation
•
•
•
•
installing it. Pass information to the setup from your stored data to personalize
the setup.
Intelligent Downloads—Save bandwidth by not pushing the Windows
Installer engine, or pieces of the application, unless they are required. Use the
default location for retrieval of the engine, or set and maintain your own.
Digital Signatures and Passwords—Distribute with confidence by digitally
signing and password-protecting your installations.
Advanced Compression—Optionally use the new LZX compression capability to create the smallest installation possible. Ideal for a final build before Web
distribution.
Web Deployment Wizard—With a few simple selections in the Web Deployment Wizard, automatically create a Web page that contains your complete
installation package.
Advanced Project Control
• Complete InstallScript™ Control—Take full control over your installation
with simple InstallScript functions. Leverage over 300 specialized capabilities,
without the additional hassles of library development. Customize any part of
the installation including user dialog sequence, file transfer, error handling,
reboot, and even uninstallation.
• Source Code Control Integration—Manage installation projects the same way
you manage other code. InstallShield’s SCC integration supports Microsoft
Visual SourceSafe, Rational ClearCase, Merant PVCS, and others, through the
Microsoft SCC Interface.
• Patch Creation—Use the Patch Creation Wizard to deliver small updates that
only contain changed files. Create a single update that can be applied to many
previous versions.
• Workflow Automation—The user-friendly InstallShield automation layer
makes it simple to edit virtually any element of an installation project programatically. Plus, highly specialized automation requirements can now be met
using the Windows Installer API.
• Project Debugging—Step through the user interface sequence to confirm
conditional behavior or identify trouble spots. Validate packages for internal
consistency and Microsoft guidelines. Plus, visually debug InstallScripts for
precise installations.
• Direct Table Editing—Directly change or view any Windows Installer table,
not just a subset of tables.
• Build Reports—View a summary of a build’s contents for troubleshooting or
guidance.
• Release Management—Create multiple versions of an application—such as,
Evaluation, Full, and International—from a single project. Flag specific features for inclusion in different releases.
InstallShield Software Corporation
InstallShield Developer Features & Benefits • xxi
Flexible Runtime Experience
• Fully Customizable Installer Interface—Now, for the first time, you can create
the ideal custom installation interface for your application, while maintaining
full compliance with Windows 2000 standards. Reorder and link dialogs with
simple commands. Include billboards, video and other multimedia elements
with ease.
• Visual Dialog Editor—Easily modify existing dialogs or create new dialogs
from scratch. Dialogs can be exported and imported for sharing across
projects.
• Windows XP—Support Windows XP as both a target platform in addition to
Windows 2000, NT 4, 95, 98, and Me.
• .NET Support—Extract and view .NET Key file information in the IDE. Utilize the new .NET support included in Windows Installer 2.0.
• 64-bit Application Support—Build setups for both 64-bit native and hybrid
applications that mix 32-bit and 64-bit code. Interactions with 64-bit system
folders, the 64-bit registry, and building 64-bit custom actions are all fully supported.
• Windows Installer 2.0—Full support for Windows Installer 2.0. Give endusers the total cost of ownership benefits of install on demand, auto-repair,
and installation rollback.
• Multimedia Runtime Support—Use billboards and video to market product
features and complimentary products and services.
Internationalization Support
With InstallShield Developer 7.0, you can create your setup in one of 33 supported
languages. This means that all of the end-user dialogs shown during the installation
process appear in the language that you chose when you created the setup.
Additionally, The InstallShield East and West Language Packs localize your installations according to Microsoft’s exacting translation guidelines. Both message and
resource translations are provided, eliminating hundreds of hours of translation
effort. Plus, the powerful Language Pack wizards let you easily filter local resources
and help files for each build. Just select the language you need. InstallShield’s Language Packs, and comprehensive Language Pack documentation, give you the edge
in rapidly building and distributing global installations of your software.
Language Packs start by separating the standard components of your application to
create a language-independent core. Then you visually specify which files in your
application are localized. At build-time, you then select the language and leverage
the Language Pack to manage the files and resources you need to build each localized application.
Language Packs allow you to:
• Cost-effectively provide high-quality translated installations
• Visually separate your application resources into core components and localized components
• Automatically manage all localized resources
xxii • Welcome to InstallShield Developer
InstallShield Software Corporation
• Easily build translated product versions
• Create a single product CD that supports multiple languages
Comprehensive Online Tutorial
InstallShield Developer includes a comprehensive online tutorial, covering major
aspects of setup design. This tutorial is available via the InstallShield Developer
online help.
About InstallShield Software Corporation
Founded in 1987 by Viresh Bhatia, CEO, and Rick Harold, CTO, InstallShield is
most widely recognized for standardizing the way traditional software is installed on
over 250 million PCs around the globe. Today, the company continues evolving that
standard, providing Independent Software Vendors, Corporate Developers, Systems
Administrators, and Digital Content Producers with cutting-edge technologies,
products, training and consulting services.
InstallShield products enable the distribution, management, and consumption of
software and digital content via the Internet and throughout the corporate enterprise. Our customers span every industry, from multi-national corporations to small
businesses. Despite our industry-leading position and global presence, we maintain
an entrepreneurial culture to address the full spectrum of software installation and
deployment needs.
Fast Facts About InstallShield
• Four-time member of the prestigious “Inc. 500,” Inc. Magazine’s listing of
America’s fastest growing private companies
• Recognized as one of greater Chicagoans’s fastest growing technology companies by Deloitte & Touche “Fast 50" Program
• Ranked by Media Metrix, Inc., as the sixth-most-frequently owned and eighthmost-frequently used software
• Ranked #257 in Software Magazine’s Software 500 List
• Ranked #40 in the 2000 Softletter 100, a ranking of the top 100 PC software
makers
InstallShield Software Corporation
About InstallShield Software Corporation • xxiii
InstallShield Products
InstallShield Software Corporation provides products and services that meet and
exceed industry demands for software distribution in three major categories:
Installation Development
•
•
•
•
InstallShield Developer
InstallShield Professional
InstallShield Express
InstallShield MultiPlatform
Administrator Solutions
• InstallShield AdminStudio
Multimedia Authoring
• DemoShield
Installation Development
The first. The best. The industry standard. InstallShield Software Corporation is the
undisputed leader for installation development.
InstallShield Developer
The Most Flexible and Powerful Installation Authoring Solution Ever
The best just got even better! Meet InstallShield’s new Flagship solution:
InstallShield Developer. InstallShield Developer is the most flexible and powerful
installation-authoring solution available, offering the greatest level of project control. It combines the power of InstallScript™ with Windows Installer features such
as auto-repair and install-on-demand. Create and manage projects just the way you
want using features such as source code control integration, automated authoring
and build functions, and patch creation. Developer also enables extensive customization of the end-user experience. Use the graphical dialog editor, digital signature
and password options, and billboard support to tailor the installation experience to
your customers’ needs. Over 20 task-based wizards combine ease of use with
Developer’s robust functionality. And Developer keeps you current while preparing
for the future with support for Windows XP, .NET, and 64-bit applications. Complete robust installations quickly and meet unique customization requirements as
they emerge. No challenge is too great for InstallShield Developer.
InstallShield Professional
Flexible Script-Based Installations
Scripting control and intuitive visual tools make InstallShield Professional the powerful and flexible software installation solution backed by years of development and
industry leadership. With InstallShield Professional, you can create installation packages of any complexity without utilizing the Windows Installer Service (MSI). Sim-
xxiv • Welcome to InstallShield Developer
InstallShield Software Corporation
plify complex processes. Shrink development cycles. And deliver a more flexible
end-user experience. Create and distribute reusable pieces of installation projects.
All with InstallShield Professional.
InstallShield Express
Industry-Standard Installations Out of the Box in Minutes
InstallShield Express lets you quickly point and click your way to creating installations-that means no scripting and no learning curve. With built-in support for many
third-party technologies, an easy-to-use development environment, and Web
deployment functionality, InstallShield Express provides new levels of speed and
productivity that let you go from project to setup in less than a day! And
InstallShield Express is the most economical setup-development solution available,
fitting any budget. With InstallShield Express, you just follow a visual checklist
guide to deploy genuine InstallShield setups in a day. And Express projects can be
easily upgraded to InstallShield Developer.
InstallShield MultiPlatform
Robust Installations for Solaris, Linux, AIX, OS/2, OS/400 and Windows
InstallShield now brings its experience and industry-leading expertise in Windows
installation to multiple platforms! Now the robust installation-development functionality-and the familiar InstallShield user experience-is available to developers and
users of Solaris® UNIX, Linux®, AIX®, OS/2®, and OS/400® platforms in addition to Windows. Full native support for each operating system’s model of packaging and deploying software on several platforms no longer means that developers
have to create and maintain a different process for each OS supported-with resulting higher costs, longer release cycles, and potentially reduced quality. InstallShield
MultiPlatform allows developers targeting multiple platforms to leverage one
InstallShield product and author a single installation that will deploy on multiple
platforms. The InstallShield solution offers a single, unified technology that
addresses the distinct requirements of each operating system while providing an elegant and consistent user experience. With development contributions from IBM
and Sun, InstallShield MultiPlatform shortens cycles, lowers costs, and provides
users quality installations every time.
Administrator Solutions
Software distribution and InstallShield go hand in hand. And now when Systems
Administrators take on pre-deployment challenges and manage setup packages, they
can trust the same experts their developers used to create those industry-standard
packages: InstallShield.
InstallShield Software Corporation
InstallShield Products • xxv
InstallShield AdminStudio
The Solution for Systems Administrators. Repackage. Resolve Conflicts. Customize.
InstallShield AdminStudio is the easiest and most reliable solution for repackaging
and customizing applications, as well as finding and resolving potential conflicts
between applications. It is designed specifically to meet the application pre-deployment needs of System Administrators, using wizards and a checklist interface to
guide the process.
Using InstallShield AdminStudio, you can:
• Repackage Traditional Setups—Create new setups from traditional, nonWindows Installer setups. System snapshots taken before and after the application is installed and configured are used to create a new application image.
• Author Setups/Enhance Repackaged Setups—Create or change a Windows Installer setup directly. This option is recommended for authoring your
own setups, or for making additional adjustments after the Repackaging process and prior to customization for various user group needs.
• Customize Setups—Create one or more custom installations from the same
Windows Installer package, without altering the underlying setup (per
Microsoft guidelines).
• Identify and Resolve Conflicts—Check for potential conflicts between
Windows Installer setup packages and resolve issues that could affect proper
application behavior.
Multimedia Authoring
InstallShield Software Corporation pioneered dynamic, software-specific demonstration technology. Multimedia Authoring, Technical Publications, Development,
Sales, or Marketing departments can now target their audience and show off-not just
tell-what their software can do.
DemoShield
The Quickest and Easiest Authoring Tool for Product Demos, Sales Presentations, Autorun CD
Browsers, and CBT.
Capture your audience’s attention with stylish demos that inform, entertain and sell!
DemoShield lets any PC user rapidly develop professional multimedia demos, sales
presentations, CD browsers, tutorials, and more. Use DemoShield to guide your customers through the key benefits and powerful features of your product.
DemoShield’s easy-to-use, point-and-click authoring environment helps you add
creativity to your content and clarify your user’s next steps. Plus, DemoShield’s
visual impact greatly enhances all of your strategic messages, from marketing information and setup, to documentation and training. What’s more, only DemoShield
allows you to create professional demos without having to learn complex and
unwieldy media tools.
xxvi • Welcome to InstallShield Developer
InstallShield Software Corporation
Try an InstallShield Solution Today!
Evaluation copies of all InstallShield software are available from our Web site
(http://www.installshield.com) today.
Technical Support Resources
InstallShield’s Product Support Services team hosts a wealth of options for you to
find your solution. Web-based resources such as our Knowledge Base provide quick
access to years of service at no cost, while service plans give you more robust support with our expert engineers. Take a look at your options below and see which
solution is right for you.
Online Help
When you have questions about InstallShield, first consult the online InstallShield
Help Library. Help is available both from the installation development environment’s (IDE) Help menu and directly from certain individual IDE elements.
The help resources listed below are available from within InstallShield Developer.
Help Library
The Help Library is your complete user’s guide for InstallShield Developer. This
library contains reference materials that cover every aspect of your setup development.
Context-Sensitive Help
Online help is available for every dialog box, wizard panel, and view in the
InstallShield IDE. Press the F1 key or click the Help button to view the IDE Reference help for the current dialog box.
Web-Based Help
Consult the InstallShield Web site (http://www.installshield.com) and click on
Support for immediate access to an extensive selection of useful information. The
site is a comprehensive resource of free support materials including the following:
•
•
•
•
•
•
•
Technical information and product news
Sample projects
Frequently asked questions
White papers
Documentation updates
Maintenance releases and updates for registered software
Information about consulting, support, and professional services
This information is available to you 24 hours a day, 7 days a week.
InstallShield Software Corporation
Technical Support Resources • xxvii
The Official InstallShield for Windows Installer
Developer’s Guide
This authoritative guide shows how to create and deploy software applications using
the new Microsoft Windows Installer Service (WIS) and the latest release of the
industry-leading installation tool, InstallShield Professional–Windows Installer Edition.
• This is the only official guide to the InstallShield family of Windows installation tools.
• Thorough coverage of the Windows Installer Service which includes a new
and complex set of policies and software APIs that application developers
must master to meet Microsoft Windows logo requirements.
This essential reference guide for any MSI developer is now available from retail
booksellers.
InstallShield Knowledge Base
The InstallShield Knowledge Base is located in the Support section of our Web site
(http://www.installshield.com). It contains answers to many commonly asked
questions and includes new information about InstallShield that may not appear in
the documentation. You can use the Knowledge Base search engine to search articles by phrases, numbers, platforms, and version.
InstallShield Newsgroups
The newsgroups are another excellent resource when you have questions about
InstallShield Developer. In these newsgroups, developers like you share tips and
ideas and help each other get the most out of InstallShield Developer. Visit the
InstallShield and InstallShield Developer newsgroups in the Support section of our
Web site, available at by clicking on the Support link at
http://www.installshield.com.
InstallShield Customer Care—Technical Support
Take advantage of InstallShield’s comprehensive resources that help you find the
answers you need. Connect to http://www.installshield.com and select the Support link for information about our support options if you have not already contracted for support.
Contacting InstallShield Customer Care
Whenever you contact technical support, our Support Engineers will need the following information:
• Your full name and the full name of the registered user, if different.
• Your street address, telephone number, and email address.
xxviii • Welcome to InstallShield Developer
InstallShield Software Corporation
• Your InstallShield Developer serial number. Support is available to registered
users of InstallShield Developer, so it is imperative for you to register your
software.
• The full InstallShield Developer version number. To find this number, select
About InstallShield Developer from the Help menu.
• The system information for the computer on which the problem occurred,
including the make and model of the machine and video driver, the operating
system, the amount of memory and system resources, any relevant devices or
peripherals, and any system DLLs you are using.
• A detailed description of the problem. Describe any error messages exactly as
they appear. Please list all of the steps and conditions that led to the problem.
Our Support Engineers are available via the World Wide Web
(http://www.installshield.com) or by phone if you have purchased a qualifying
InstallShield Support Plan. For more information about these plans, please consult
our Web site. Registered users of InstallShield Developer are also eligible for limited
Web-based support at no additional charge. Details can be found in the Support section of the InstallShield Web site.
Support Programs
In addition to the award-winning resources of our support Web site, InstallShield
offers a number of support plans that are fine-tuned to specifically meet your needs.
• Public Resources—Any time, day or night, access our knowledge base,
newsgroups, and the sample gallery for outstanding support resources.
• Bronze Support Plan—Unlimited support for requests submitted through
our Web site.
• Silver Support Plan—Unlimited support for requests submitted by phone
and through our Web site.
• Gold Support Plan—A dedicated phone number and Web-form give you a
priority response and preferential queuing to dedicated engineers. Additionally,
this plan allows you to participate in our Beta Program.
• Platinum Corporate Support Plan—Get personalized service that is finetuned to meet the needs of your organization. In addition to the services provided under the Gold service plan, Platinum support assigns a Customer Care
manager to oversee all of your technical issues. The Customer Care manager is
responsible for all issues submitted by your organization and holds optional
conference calls every month regarding status and resolution open issues (if
any). This plan also provides the option of having Web-based demonstrations
and product assistance through the WebEx online meeting technology.
For more information about InstallShield’s support plans, visit our Web site at
http://www.installshield.com and click Support.
InstallShield Software Corporation
Technical Support Resources • xxix
InstallShield Professional Services
InstallShield Professional Services is made up of InstallShield Consulting Services
and InstallShield Training.
InstallShield Consulting Services
No One Knows More About Installations than We Do
Bottom line: we’ve solved more than half-a-million man-hours (250 years) worth of
difficult installation challenges.
As the industry’s recognized experts, we have the unique capabilities necessary to
ensure a successful first experience for your customers, keep difficult projects from
impacting your ship dates, and lower your technical support costs.
We know the technology challenges and we own the solutions. Our teams, with the
support of InstallShield’s larger technical base of product developers, will help you
determine and implement the best solution to any and every installation and deployment challenge. Here’s just a few available solutions:
• Windows 2000 Application Migration Practice: We can deliver a jump-start
package to involve you right away or we can customize a migration and training package for your unique needs.
• Web and Network Deployment: We can help you optimize your network for
setup and installation, create personalized Internet deployment, or manage
Web updates.
• Multimedia: Go from bland, lifeless software deployment to a dynamic,
engaging experience that improves your image, eases user navigation, and presents engaging cross-selling messages.
Since 1990, we’ve been helping the industry with important projects, offering the
expertise only an industry leader can provide. Many InstallShield consultants are
former InstallShield developers, and all have thorough training and expertise. So
with InstallShield Consulting Services, you can be sure your projects are being handled by the best possible resource backed by the leaders in installation and deployment.
Contact us via the InstallShield Web site (http://www.installshield.com) today
and see what we can do for you!
InstallShield Training
Master Software Installation, Deployment, and Demonstration
Get started quickly or learn robust functionality: it’s all available from InstallShield
Training. With introductory and advanced courses, you can grasp the basics and
understand the advanced features of your product, learning how to create solutions
for complex software distribution and deployment requirements in less time.
xxx • Welcome to InstallShield Developer
InstallShield Software Corporation
The time you spend in an InstallShield Training course is focused on helping you
learn every technique and feature available in your InstallShield software solution so
that you deploy faster, author with more custom skill and control, and meet the specific, strategic requirements of your organization. Here’s just a few skills available in
several classes:
• How to take advantage of the Microsoft Windows Installer service for the
highest level of integration with the operating system.
• How to create a completely script-driven installation solution.
• How to use InstallShield’s One-Click Install™ technology to distribute applications over the Web
• How to build installation program that runs on multiple platforms, including
Windows, Linux, Solaris, AIX, and OS/2.
• How to launch applications or installation programs live from a demo.
We want to help your company deliver a more robust installation with more efficient
development and quicker time-to-market for your important applications. And we
want to help you advance your skill set, learn valuable techniques from an industry
leader, and share your experiences with fellow attendees and technical InstallShield
staff. Our goal is to provide educational excellence and “tell-a-friend” value. Every
time.
Find out more from the InstallShield Web site (http://www.installshield.com)
and sign up for a class today!
InstallShield Training Centers
InstallShield has thirteen North American training centers, plus four international
training centers to serve you.
North American Training Locations
Atlanta, GA
Austin, TX
Dallas, TX
Denver, CO
Farifax, VA
Long Beach, CA
New York, NY
Orlando, FL
Raleigh, NC
San Jose, CA
Schaumburg, IL
Toronto, ON
Woburn, MA
International Training Locations
Bristol, United Kingdom
London, United Kingdom
Naarden, Netherlands
Paris, France
InstallShield Software Corporation
InstallShield Professional Services • xxxi
xxxii • Welcome to InstallShield Developer
InstallShield Software Corporation
Installing InstallShield Developer
1
Chapter Contents
Document Conventions. . . . . . . . . . . . . . . . . . 1-3
Recommended System Requirements . . . . . . . . 1-3
Installation Procedure. . . . . . . . . . . . . . . . . . . 1-4
Uninstallation Information. . . . . . . . . . . . . . . . 1-4
Register Your Software. . . . . . . . . . . . . . . . . . 1-4
This chapter contains system requirements for
InstallShield Developer and information about the
installation and uninstallation procedures. It instructs you
how to register InstallShield Developer, and provides you
with documentation conventions for this Getting Started
Guide.
InstallShield Software Corporation
1-1
1-2
InstallShield Software Corporation
Document Conventions
To enhance readability, certain text elements are specially identified as follows:
Italic text denotes points of emphasis.
Bold text denotes commands, menu items, selectable options, Internet and
email addresses.
Monospace text denotes command line input, file listings,
scripts, and path specifications. It can appear in a shaded area,
depending on its length.
Procedures are numbered and accompanied by the step graphic in the margin. For
example:
To open a file, do the following:
1. Select Open from the File menu.
2. Navigate the file you want to open and select it.
3. Click OK.
Certain pieces of information should stand out. The note image appears in the margin for this
type of information, and the note text is set off by horizontal bars.
Tips are also set off by horizontal bars, and are accompanied by the tip graphic in the margin.
Tips are used when bits of information, such as time-saving suggestions, are presented.
Warnings about potential pitfalls appear within lines and accompanied by the warning graphic
in the margin. These warnings are set off by horizontal bars.
Recommended System Requirements
For successful installation of InstallShield Developer, your computer must meet the
following recommended system requirements:
• Windows NT 4.0 (Intel) with Service Pack 4 installed, Windows 2000, or
Windows XP
• Administrative Privileges on the system
• Microsoft Internet Explorer 5.0 or higher
• Pentium III-class PC (300 MHz or higher recommended)
• 256 megabytes of RAM or greater
• Disk Space required (including redistributable code):
• CD installation: 350 MB before installation and 200MB after the install is
complete
InstallShield Software Corporation
Document Conventions • 1-3
• Web Download: 700MB before installation and 400MB after the install is
complete
• Super VGA monitor (with the screen resolution set to at least 800 x 600, small
fonts setting)
Installation Procedure
To run the InstallShield Developer CD Browser, put the InstallShield Developer
CD into your CD-ROM drive. The CD Browser lets you install InstallShield
Developer, view the InstallShield Developer Product Overview, and learn about
DemoShield demo creation software.
Uninstallation Information
To uninstall InstallShield Developer:
1.
2.
3.
4.
5.
Select Control Panel from Settings under the Windows Start menu.
When the Control Panel opens, double-click the Add/Remove Programs icon.
From the Add/Remove Programs dialog, select InstallShield Developer.
Click Remove.
Follow the directions in the wizard for uninstallation.
Register Your Software
To be eligible for our Support Programs, be sure to register your software. Registering also ensures that you receive the latest information about product releases and
upgrades.
Register your InstallShield software in one of the following ways:
• Following installation, use the Registration form to immediately register your
product with InstallShield.
• Complete a registration form on InstallShield’s registration Web page at
http://support.installshield.com/register.
• Complete and send in the registration card included in the InstallShield
Developer box.
Following registration, record your serial number in the space provided on the second page of this guide. If you need to contact InstallShield Customer Care, they will
need this serial number to verify your product is registered.
1-4 • Installing InstallShield Developer
InstallShield Software Corporation
2
Setup Fundamentals
Chapter Contents
This chapter explains the nature of setups and how they
work. It also describes how your installation benefits from
using Microsoft’s Windows Installer service.
InstallShield Software Corporation
What is Windows Installer? . . . . . . . . . . . . . .
Benefits of Windows Installer . . . . . . . . . . .
Self-Repair. . . . . . . . . . . . . . . . . . . . . . .
Feature Advertisement . . . . . . . . . . . . . .
Componentized Installation . . . . . . . . . . .
Rollback . . . . . . . . . . . . . . . . . . . . . . . .
Single File . . . . . . . . . . . . . . . . . . . . . . .
Merge Modules . . . . . . . . . . . . . . . . . . .
User-Accessible Information . . . . . . . . . .
Windows 2000 Logo Compliance . . . . . .
Clean Uninstallation . . . . . . . . . . . . . . . .
2-3
2-3
2-3
2-3
2-3
2-4
2-4
2-4
2-4
2-4
2-4
What is a Setup? . . . . . . . . . . . . . . . . . . . . . .
Typical Setup Elements . . . . . . . . . . . . . . . .
Perform File Transfer . . . . . . . . . . . . . . .
Display User Interface. . . . . . . . . . . . . . .
Create Shortcuts. . . . . . . . . . . . . . . . . . .
Register File Associations . . . . . . . . . . . .
Register COM, COM+, and DCOM Files .
Register Product for Uninstallation . . . . . .
2-5
2-5
2-5
2-5
2-6
2-6
2-6
2-7
2-1
2-2
InstallShield Software Corporation
What is Windows Installer?
The Windows Installer service incorporates application installation and management into the basic Windows infrastructure. The operating system is then able to
track installed applications and manage components that are shared by various
applications. Windows Installer adds a layer of intelligence to the installation process, providing users with a more comprehensive view of application management.
Additionally, Windows Installer brings several new features and time-saving procedures that traditional setups lack.
This service gathers installation information from .msi files. An .msi file is a relational database. Each table in the database contains instructions and setup information. Windows Installer creates a script of actions from this database. These actions
are then executed in the order in which the installer encounters them. An .msi file is
the compiled output of InstallShield Developer project (.ism) files.
Windows Installer is a native service of Microsoft Windows 2000, Windows Me, and
Windows XP. This service can also run on Windows 95, Windows 98, and Windows
NT 4.0. If the Windows Installer service is not present on the end user’s system,
your InstallShield Developer setup can install it automatically if you configure
InstallShield Developer to do so.
Benefits of Windows Installer
In addition to providing a standardized method of handling installation and uninstallation, Windows Installer has many other benefits, such as advertisement and
rollback. The following sections describe some of the features Windows Installer
offers.
Self-Repair
By adding a few lines of code to your application, you can protect against missing
and corrupted portable executable files. If—after installation—a DLL, EXE, or
OCX file becomes corrupted or is accidentally deleted, the Windows Installer service automatically reinstalls the file.
Feature Advertisement
Windows Installer allows you to advertise features. Advertised features can appear
on an end user’s system in the form of shortcuts and registered file types, but are not
installed until needed. For example, you can advertise your help system so that no
hard disk space is taken up until the user first accesses the help. When the user clicks
a shortcut to the help for the first time or the application programmatically accesses
the help, Windows Installer installs the necessary files and launches the help system.
Componentized Installation
Your product can be installed on a feature-by-feature basis. For example, if you have
split your setup into two features (Program_Files and Help_Files), your end users
can choose to install only Program_Files and not Help_Files. Your users can also
uninstall features as necessary without removing your entire application. This aspect
InstallShield Software Corporation
What is Windows Installer? • 2-3
of Windows Installer is especially convenient for end users who have limited hard
drive space.
Rollback
When a traditional setup fails, little is done to protect the end user’s system from
harm. In traditional setups, necessary registry entries or files can be deleted without
maintaining a backup of the original configuration. The rollback capabilities in Windows Installer ensure that the end user’s system is returned to its pre-installation
state if the setup fails for any reason. During a setup, Windows Installer identifies
the files that have changed and makes a backup copy of those files. If the setup fails,
those files are returned to their previous state, leaving the system unchanged.
Single File
All of your setup files can be streamed into a single .msi file for easy distribution.
Because you do not need to ship your files separately from the installer package, this
makes deployment much less complicated. Your setup application can also be
shipped in the traditional Setup.exe format, which checks the target system for the
Windows Installer service, installs it if necessary, and then launches your compiled
.msi file.
Merge Modules
Windows Installer supports the use of merge modules, which allow you to add distinct pieces of functionality to your setup without having to recreate that aspect of
the setup every time you want to use it. For example, if your application requires a
standard Visual Basic library to function properly, you can import the merge module
that contains those Visual Basic components rather than adding all the necessary
files to your setup each time.
User-Accessible Information
The Add/Remove Programs dialog box in Windows 2000 provides information
about installed products. This information includes links to Web sites that offer support for the product and sites that host product updates. The software publisher and
product version number are also displayed here. InstallShield Developer provides
full support for these general information tables, making it easier for you to pass
information on to your end users.
Windows 2000 Logo Compliance
Use of Windows Installer is required to achieve the Windows 2000 logo. Although
this is only one factor in achieving compliance, it is an important consideration.
InstallShield Developer takes you one step closer by using the Windows Installer
service and following the Windows Installer best practices guidelines.
Clean Uninstallation
Because the Windows Installer service maintains a database of all the files that are
installed and all the changes that are made by the service. Uninstalling programs is
much more reliable.
2-4 • Setup Fundamentals
InstallShield Software Corporation
What is a Setup?
If you have ever installed software onto your computer, you have seen a setup from
the end user’s perspective. A setup program installs an application onto an end user’s
computer.
Typical Setup Elements
The typical setup performs several different functions. A setup transfers files from
the source medium to your local drive. It also makes the required registry entries,
creates shortcuts, and registers COM servers. Additionally, a setup commonly gathers information about the target machine and the end user. The elements of a setup
are described in detail below.
Perform File Transfer
File transfer involves copying files from the source medium, such as a CD or a
floppy disk, to a local drive on the end user’s machine. Depending on the configuration the end user chooses, all or only some of the files may be transferred to the
local drive. During file transfer, a setup can display billboards that provide product
information such as new features or usability tips. The setup may also display a status bar to show the progress of the file transfer process.
Display User Interface
The user interface of a setup provides information and setup configuration options
to the end user. Through the user interface, an end user can choose to install only
part of a product, choose to leave some files on the source medium, view a license
agreement, or provide information to the installer that may be necessary to ensure
proper installation configuration. The user interface can be adapted to meet your
installation needs. For example, you can prompt end users to select the preferred
setup type before starting the installation.
InstallShield Software Corporation
What is a Setup? • 2-5
Figure 2-1.
An example of a run-time dialog.
Create Shortcuts
Shortcuts are links to files and applications that the setup creates on the end user’s
machine. Shortcuts are usually placed on the desktop or in the Start menu of the target machine to provide quick and easy access to a program or its files.
Register File Associations
If your product uses a distinct file type, you must register the file type for your application on the end user’s system to ensure your end user’s system opens the file with
the proper application. For example, if your application creates and uses files with
the .foo extension, you need to register this file type during your application’s setup.
Register COM, COM+, and DCOM Files
COM servers (such as ActiveX, COM, and COM+ files) require special registration
so that applications can access the files’ interfaces. Traditionally, these EXEs, DLLs,
and OCXs contain self-registration functions that are invoked to register the files
during installation. However, relying on self-registration can cause problems; the
end user cannot always be certain of what information is being registered or that the
registry entries are removed completely when the file is uninstalled.
The Windows Installer service solves this problem by writing the necessary registry
entries during setup and then removing them when the COM component is uninstalled. This method ensures that all the COM servers are registered appropriately
whether the file is immediately installed or advertised.
2-6 • Setup Fundamentals
InstallShield Software Corporation
Register Product for Uninstallation
To uninstall a product, the operating system must know that the product is present.
To accommodate this, a setup registers an application with the operating system so
that it can be easily uninstalled. This registration is required for Windows 2000 logo
compliance.
Much of the information registered in this process is available to the end user
through the Add/Remove Programs dialog box (on Windows 2000 systems). For
example, technical support contact information, product update information, product version, and product publisher information are all registered in this process.
InstallShield Software Corporation
What is a Setup? • 2-7
2-8 • Setup Fundamentals
InstallShield Software Corporation
3
Upgrading Projects
Chapter Contents
Standard vs. Basic MSI Setup Projects . . . . . . . 3-3
Standard Project . . . . . . . . . . . . . . . . . . . . 3-3
Basic MSI Project . . . . . . . . . . . . . . . . . . . . 3-3
This chapter gives an overview of how to upgrade
projects created in InstallShield Professional and
InstallShield—Windows Installer Edition to InstallShield
Developer. It also describes the two setup project types
and covers converting a Basic MSI project into a
Standard project.
Upgrading InstallShield Professional Projects . . 3-3
Opening Your Setup Project . . . . . . . . . . . . 3-4
Project Element Changes . . . . . . . . . . . . . . 3-4
Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Lexicon Conversion . . . . . . . . . . . . . . . . 3-5
Project Settings Changes. . . . . . . . . . . . . 3-8
String Tables Changes . . . . . . . . . . . . . . 3-9
Build and System Variable Changes . . . . 3-9
How Upgrading Affects Components . . . 3-11
File Groups Effects . . . . . . . . . . . . . . . . 3-12
Registry Data Effects . . . . . . . . . . . . . . . 3-14
Shortcut Effects. . . . . . . . . . . . . . . . . . . 3-14
Media Information Effects . . . . . . . . . . . 3-15
Setup Type Effects . . . . . . . . . . . . . . . . 3-16
Build Settings Effects . . . . . . . . . . . . . . . 3-16
Aliasing . . . . . . . . . . . . . . . . . . . . . . . 3-16
Upgrade Warnings and Errors . . . . . . . . . 3-17
Upgrading InstallShield—Windows Installer
Edition Projects . . . . . . . . . . . . . . . . . . . . . . 3-17
Converting a Basic MSI Project to a
Standard Project . . . . . . . . . . . . . . . . . . . . . 3-18
InstallShield Software Corporation
3-1
3-2
InstallShield Software Corporation
Standard vs. Basic MSI Setup Projects
With InstallShield Developer, you can create a number of different types of setup
projects. In addition to the project types available in InstallShield—Windows
Installer Edition, there is now a Standard project option, which allows you to create
script-based setup projects.
Standard Project
This project type is recommended for most projects. It offers maximum power and
flexibility by using both InstallScript and Windows Installer tables to control the
installation. Modifications to the user interface flow can be easily controlled via
InstallScript, and installations benefit from Windows Installer features such as
autorepair and advertising. This format is an evolution of all previous InstallShield
Professional project formats.
Basic MSI Project
This project type is recommended in cases where the Windows Installer service
should drive the entire installation. All project control is defined in Windows
Installer tables or custom actions. InstallScript control is not available before or after
the Windows Installer service is invoked. Projects created using InstallShield—Windows Installer Edition versions 1.x and 2.x used this format.
Upgrading InstallShield Professional
Projects
InstallShield Developer is based on Windows Installer technology. When you open a
setup project created with InstallShield Professional, your project is automatically
upgraded so you can immediately work with your project in the InstallShield
Developer installation development environment (IDE).
If you have a setup project that was created using an earlier version of InstallShield Professional
(prior to version 5.5), you need to upgrade that project to 5.5 before upgrading to InstallShield
Developer. If you have a pre-5.5 project, visit the Upgrading to Developer Web site (http://support.installshield.com/help/isd/upgrade/default.asp) for assistance with upgrading your
project.
Projects created using versions of InstallShield Professional were composed of several .ini files referenced by an .ipr file. In InstallShield Developer, your setup project
is one file—an .ism file.
InstallShield Software Corporation
Standard vs. Basic MSI Setup Projects • 3-3
Opening Your Setup Project
To open an InstallShield Professional project:
1. Click the Open File button on the toolbar.
2. From the Open dialog, select a project file (.ipr) from the window.
3. Click Open to open the project in the IDE.
Your project opens in the IDE and the extension changes from .ipr to .ism. A
backup of your original .ipr project is saved as ProjectName.ipr.bak in the same
folder. After you upgrade your setup project, you can use views in the InstallShield
Developer IDE and the Direct Editor to modify your project settings.
Project Element Changes
Because of the differences in the architecture of InstallShield Professional and that
of InstallShield Developer, the elements of your upgraded setup project might translate to different properties in InstallShield Developer.
Scripts
When you upgrade a project created in InstallShield Professional, your scripts
undergo several changes.
Backup Copy
Before InstallShield Developer converts your project, it automatically creates and
saves a backup copy of your original setup script with the extension .bak.
Lexicon Change
• Function Names—In InstallShield Professional, many of the function names
began with the word “Component.” After you upgrade your project, these
function names begin with “Feature.” This is because the way in which components were used in InstallShield Professional corresponds to how features
are used in InstallShield Developer. This lexicon change occurs only in .rul and
.h files that are contained in your Script Files folder.
Script files that you include in your setup project using the #include statement
are not affected automatically by the lexicon change.
InstallShield Developer does not automatically perform a lexicon change on #include files
because these files might be shared with other projects that use InstallShield Professional.
You should use the new function names in your upgraded setup project and in
any new projects. The deprecated function names are not color-coded in your
script.
• System Variables—When you upgrade your setup project, all of your project’s
system variables are mapped to standard directories. See “Build and System
Variable Changes” on page 3-9 to learn more.
• InstallScript View—The InstallScript View contains all of your script. This
view functions similarly to the Scripts pane in InstallShield Professional.
3-4 • Upgrading Projects
InstallShield Software Corporation
• Order Dependencies—In InstallShield Developer, some functions must occur
in a specific order contingent to other functions. For example, CreateShellObjects must be called before file transfer. In 5.5, file transfer was handled by
ComponentMoveData and in 6.x, file transfer occurred after the OnMoving
event. In addition, CreateRegistrySet and CreateShellObjects must be executed
before FeatureMoveData is called.
• OnInstallingFile Event—The OnInstallingFile event was used in InstallShield
Professional 6.x. In InstallShield Developer, this event is replaced by the
OnInstallingFilesActionBefore and OnInstallingFilesActionAfter events.
• Unavailable Functions—There are some functions that were available in
InstallShield Professional, but are unavailable in InstallShield Developer.
When you upgrade your project, InstallShield Developer detects if unavailable
functions occur in your script. A warning is displayed in the output panel if
unavailable functions are detected.
Lexicon Conversion
Terminology Change
In InstallShield Professional, the functional building blocks of your installation from
the end user’s perspective were called components. With InstallShield Developer,
these building blocks are called features.
Because of this change in terminology, a number of InstallScript function names
have also changed. When you upgrade a project that you created using InstallShield
Professional, some items in your script might undergo a lexicon change or be
aliased.
Function Names
Any InstallScript function name that referred to component now refers to feature.
For example, ComponentDialog is now FeatureDialog. The parameters for these
functions have not changed. Consult the online help for specific information about
each Feature Function.
Component Function
Feature Function
ComponentAddItem
FeatureAddItem
ComponentCompareSizeRequired
FeatureCompareSizeRequired
ComponentDialog
FeatureDialog
ComponentError
FeatureError
ComponentErrorInfo
FeatureErrorInfo
ComponentFileEnum
FeatureFileEnum
ComponentFileInfo
FeatureFileInfo
ComponentFilterLanguage
FeatureFilterLanguage
InstallShield Software Corporation
Upgrading InstallShield Professional Projects • 3-5
Component Function
Feature Function
ComponentFilterOS
FeatureFilterOS
ComponentGetData
FeatureGetData
ComponentGetItemSize
FeatureGetItemSize
ComponentGetTotalCost
FeatureGetTotalCost
ComponentInitialize
FeatureInitialize
ComponentIsItemSelected
FeatureIsItemSelected
ComponentListItems
FeatureListItems
ComponentMoveData
FeatureMoveData
ComponentReinstall
FeatureReinstall
ComponentRemoveAll
FeatureRemoveAll
ComponentSaveTarget
FeatureSaveTarget
ComponentSelectItem
FeatureSelectItem
ComponentSetData
FeatureSetData
ComponentSetTarget
FeatureSetTarget
ComponentSetupTypeEnum
FeatureSetupTypeEnum
ComponentSetupTypeGetData
FeatureSetupTypeGetData
ComponentSetupTypeSet
FeatureSetupTypeSet
ComponentTotalSize
FeatureTotalSize
ComponentTransferData
FeatureTransferData
SdComponentDialog
SdFeatureDialog
SdComponentDialogAdv
SdFeatureDialogAdv
SdComponentMult
SdFeatureMult
SdComponentTree
SdFeatureTree
System Variables
The system variables that you used in projects created using InstallShield
Professional are converted to standard directories in InstallShield Developer. The
3-6 • Upgrading Projects
InstallShield Software Corporation
table below shows how the variables are mapped to the directories. Consult the
online help for specific information about standard directories.
System Variables
Standard Directories
<COMMONFILES>
[CommonFilesFolder]
<PROGRAMFILES>
[ProgramFilesFolder
<FOLDER_DESKTOP>
[DesktopFolder]
<FOLDER_PROGRAMS>
[ProgramMenuFolder]
<FOLDER_STARTMENU>
[StartMenuFolder]
<FOLDER_STARTUP>
[StartupMenu]
<SRCDIR>
[SourceDir]
<TARGETDIR>
[INSTALLDIR]
<WINDIR>
[WindowsFolder]
<WINSYSDIR>
[SystemFolder]
<WINSYSDISK>
[WindowsVolume
ComponentFileInfo (FeatureFileInfo) Flags
Flags that you used with the ComponentFileInfo (now FeatureFileInfo) function in
InstallShield Professional are converted to reflect their use with features in
InstallShield Developer.
Deprecated Flag
New Flag
COMPONENT_FIELD_DISPLAYNAME
FEATURE_FIELD_DISPLAYNAME
COMPONENT_FIELD_DESCRIPTION
FEATURE_FIELD_DESCRIPTION
COMPONENT_FIELD_HTTPLOCATION
FEATURE_FIELDHTTPLOCATION
COMPONENT_FIELD_FTPLOCATION
FEATURE_FIELDFTPLOCATION
COMPONENT_FIELD_IMAGE
FEATURE_FIELD_IMAGE
COMPONENT_FIELD_MISC
FEATURE_FIELD_MISC
COMPONENT_FIELD_SELECTED
FEATURE_FIELD_SELECTED
COMPONENT_FIELD_SIZE
FEATURE_FIELD_SIZE
COMPONENT_INFO_LANGUAGE
FEATURE_INFO_LANGUAGE
COMPONENT_INFO_OS
FEATURE_INFO_OS
COMPONENT_INFO_ORIGSIZE
FEATURE_INFO_ORIGSIZE
InstallShield Software Corporation
Upgrading InstallShield Professional Projects • 3-7
Deprecated Flag
New Flag
COMPONENT_INFO_COMPSIZE
FEATURE_INFO_COMPSIZE
COMPONENT_INFO_DATE
FEATURE_INFO_DATE
COMPONENT_INFO_DATE_EX
FEATURE_INFO_DATE_EX
COMPONENT_INFO_TIME
FEATURE_INFO_TIME
COMPONENT_INFO_ATTRIBUTE
FEATURE_INFO_ATTRIBUTE
COMPONENT_INFO_VERSIONMS
FEATURE_INFO_VERSIONMS
COMPONENT_INFO_VERSIONLS
FEATURE_INFO_VERSIONLS
COMPONENT_INFO_VERSIONSTR
FEATURE_INFO_VERSIONSTR
Project Settings Changes
The project settings contain basic information about your project—for example, the
languages that are supported by your setup are stored in the project properties.
Imported Properties
The following table explains how project settings are imported into your new
InstallShield Developer project.
3-8 • Upgrading Projects
InstallShield
Professional
InstallShield
Developer
Property Location in
InstallShield Developer
Product Name
Product Name
This property is stored in
the Product Properties view.
Author
Setup Author Name
This property is located
under Project Properties.
URL
Publisher/Product URL,
Support URL, and
Product Update URL
All three of these properties
are located under Windows
2000.
InstallationGUID
Product Code
This property is located
under Product Properties.
Version
Product Version
This property is located
under Product Properties.
Company
Publisher
This property is located
under Windows 2000.
Languages
Setup Languages
This property is located
under Project Properties.
InstallShield Software Corporation
If your setup project has support for additional languages and you do not have language packs
installed when you upgrade your setup project, the additional languages are migrated at
upgrade time, but support is not present when you open the upgraded project in the IDE. To activate support for the additional languages, you need to install the corresponding language pack
and select the supported languages from the Setup Languages property.
Properties That Are Not Imported
InstallShield Developer does not use the following properties, so they are not
imported when you upgrade your project:
•
•
•
•
Information Tab—Development Environment, Notes, Category, Description
Owner Tab—Department, Email, Summary, Copyright
Information Tab—No information from this tab is imported.
Operating System Tab—No information from this tab is imported. Windows
Installer supports all 32-bit platforms and beyond.
String Tables Changes
All string table entries that you created in InstallShield Professional are imported
into your InstallShield Developer project. For example, if you have a string table
entry for a component’s display name, it is added to your new InstallShield
Developer string table, using the same identifier that you specified in your original
project.
In InstallShield Professional, string tables were stored externally in .txt files (one per
language) and you could send those files out for translation. In InstallShield 7.0,
your project’s string tables are stored internally in the project file. Because of this,
you must export your string table to a .txt file before sending the file out to be localized. When the file is translated, you must import the .txt file into your project.
You can do one of the following to import and export your string tables:
• In the String Tables view, right-click on your string table and select “Export
String Table...” from the context menu.
• Use the Automation interface.
Build and System Variable Changes
Build variables and system variables allow you to specify a directory without having
to hard-code the path. Build variables are used during design time to point to specific directories. For example—when building your setup—if you want to point to a
file in the system folder, such as Notepad.exe, you could enter <WINDIR> for the
path to the file. These types of variables are equivalent to InstallShield Developer’s
path variables.
System variables are used at run time to point to specific directories. In this case, the
same variable, <WINDIR>, can be used to place a file on the target machine, rather
than pulling a file from the build machine and placing it in the setup. In InstallShield
Developer, these variables map to standard directories, which are surrounded by
square brackets.
InstallShield Software Corporation
Upgrading InstallShield Professional Projects • 3-9
Mapping Build Variables to Path Variables
The following table shows how InstallShield Professional build variables are
mapped to InstallShield Developer path variables:
InstallShield Professional
InstallShield Developer
<COMMONFILES>
<CommonFilesFolder>
<PROGRAMFILES>
<ProgramFilesFolder>
<WINDIR>
<WindowsFolder>
<WINSYSDIR>
<SystemFolder>
Standard Variables
Standard Path Variables
Registry Variables
Registry Path Variables
Environment Variables
Environment Path Variables
Mapping System Variables to Standard Directories
When you upgrade your setup project, the system variables used in your script are
mapped to standard directories. A lexicon change takes place within your script at
upgrade.
If—after upgrading your project—you use deprecated system variable names in your script, the
script compiles, but the variables are not color coded.
System variables are mapped to standard directories as follows:
3-10 • Upgrading Projects
InstallShield Professional
InstallShield Developer
<COMMONFILES>
[CommonFilesFolder]
<FOLDER_DESKTOP>
[DesktopFolder]
<FOLDER_PROGRAMS>
[ProgramMenuFolder]
<FOLDER_STARTMENU>
[StartMenuFolder]
<FOLDER_STARTUP>
[StartupFolder]
<PROGRAMFILES>
[ProgramFilesFolder]
<SRCDIR>
[SourceDir]
<TARGETDIR>
[INSTALLDIR]
<WINDIR>
[WindowsFolder]
<WINDISK>
[WindowsVolume]
InstallShield Software Corporation
InstallShield Professional
InstallShield Developer
<WINSYSDISK>
[WindowsVolume]
<WINSYSDIR>
[SystemFolder]
Script Variables
Directory or Property
How Upgrading Affects Components
The word component is used differently in InstallShield Professional than it is in
InstallShield Developer. In InstallShield Professional, the setup hierarchy is as follows: Setup types contain components, which contain file groups, which, in turn,
contain files.
In InstallShield Developer, setup types are the highest level of organization. Setup
types contain features. Features contain components and components contain files.
The following table illustrates how the structures correlate.
InstallShield Professional
InstallShield Developer
Components
Features
File groups
Components
Files
Files
For every component that you have in your InstallShield Professional project, a feature is created in your InstallShield Developer project. The following component
properties are converted to InstallShield Developer feature properties.
InstallShield
Professional
InstallShield
Developer
Upgrade Notes
Component Name
Feature Name
This name might not migrate exactly
as entered in your project due to
certain restrictions on feature names
in Windows Installer. For example,
you cannot have a space in a feature
name. Therefore, a name like
“Program Files” is altered to conform
to InstallShield Developer’s
standards. Additionally, feature
names must be unique in InstallShield
Developer, whereas in InstallShield
Professional, you could have two
components with the same name.
Display Name
Display Name
If this name is included in your string
table, that string table entry is
imported to InstallShield Developer.
InstallShield Software Corporation
Upgrading InstallShield Professional Projects • 3-11
InstallShield
Professional
InstallShield
Developer
Upgrade Notes
Description
Description
If this description is included in your
string table, that string table entry is
imported to InstallShield Developer.
Comment
Comment
The comments entered in your
previously created project are
imported into your InstallShield
Developer project.
Target
Destination
If you used any variables, such as
<WINDIR>, those variables are
converted to their InstallShield
Developer equivalents, as described
in “Build and System Variable
Changes” on page 3-9. In
InstallShield Professional 6.0, the
destination property is set at the file
group level, not the component level.
Regardless of whether your project
set the destination at the component
or file group level, this property is
imported to your upgraded project’s
component destination property.
Visible
Display
If the Visible property was set to Yes,
the Display property is set to Visible
and Collapsed. If the Visible property
was set to No, the Display property is
set to Not Visible.
Required
Required Feature
This property is imported directly.
File Groups Effects
File groups are the smallest unit of organization in InstallShield Professional, while
components are the smallest unit of organization in InstallShield Developer. The
differences between components in InstallShield Professional software and components in InstallShield Developer are outlined in the section “How Upgrading
Affects Components” on page 3-11.
Destination
In InstallShield Developer, all files within a component must share a common destination. In InstallShield Professional, however, that was not the case. You could have
files go to many different directories—all located within one file group. As a result,
your previously created file groups do not always have a one-to-one relationship
with the components created after you upgrade to InstallShield Developer. When a
file group is imported, all files with the same destination are grouped into common
components. Therefore, if you have three different destinations specified for files
3-12 • Upgrading Projects
InstallShield Software Corporation
within your file group, you will have three components after you upgrade to
InstallShield Developer.
Registry Data
With InstallShield Professional, each file group could have registry data attached to
it. Since those file groups are potentially split among several components in
InstallShield Developer, that registry data is included only in the first component
that is created from your file group. The remaining components do not contain that
registry data. This filtering reduces redundant registry data when installing the product.
File Group Properties
The following describes how file group properties are imported into InstallShield
Developer:
InstallShield
Professional
InstallShield
Developer
Upgrade Notes
Self-Registered
Self-Register
The Self-Register property is set at
the file level. Right-click on a file
and select Properties from the
context menu. The Self-Register
property is on the General tab.
Comment
Comments
This property is located in the
Components view.
Languages
Languages
This property is located in the
Components view.
Shared
Shared
In InstallShield Professional, if a file
group is marked as Shared, then
all the files in that file group are
marked as shared. In InstallShield
Developer, if a component’s
Shared property is Yes, only the
key file is marked as shared.
When you upgrade, if your file
group is marked as shared, a
warning appears in the output
pane. To increment the shared
reference count for multiple files,
each file requires its own
component and the file must be the
key file in its component.
Note that this
property applies
only to the key file in
a component.
InstallShield Software Corporation
Upgrading InstallShield Professional Projects • 3-13
InstallShield
Professional
InstallShield
Developer
Upgrade Notes
Uninstall
Permanent
In InstallShield Professional, if this
property is set to no, the file group
is never uninstalled. This property
is imported to the Permanent
property at the component level. If
Uninstall is set to No, then
Permanent is set to Yes. If Uninstall
is set to Yes, Permanent is set to
No.
Destination
Destination
Applies to projects created using
InstallShield Professional 6.x (in
5.x, Destination was set at the
Component level). In either case,
Destination in InstallShield
Developer is set at the component
level.
Default values are provided for the rest of your component properties, just as if you
were creating a new component in InstallShield Developer.
Registry Data Effects
When you upgrade a setup project created in InstallShield Professional to
InstallShield Developer, your registry data is imported completely. In previous versions, registry data is usually associated with a specific file group. If this is the case,
that registry data is migrated into the new component created from the file group.
In InstallShield Developer, registry data must be associated with a component.
If that file group is split across multiple components due to multiple destinations,
the registry data is added only to the first component created as a result of the
migration. If your registry data is not associated with any file group, that data is
added to a component that resides under a feature called OtherUpdatedFeature.
This might result in registry data not being installed on the target system if Windows Installer does
not install the component containing the registry data. If this is a possibility, you should create a
component for your registry data (containing only the registry data and no files) and make sure
that the component is always installed by putting the component in a feature and setting the feature’s Required property to Yes. (Note: Export the registry information to a REG file and import it
into a new component.)
Shortcut Effects
All shortcut information that relates to the Windows Explorer shell is imported into
InstallShield Developer when you upgrade a setup project that you created in
InstallShield Professional. However, shortcuts created for the Program Manager
3-14 • Upgrading Projects
InstallShield Software Corporation
shell (16-bit platforms) are not imported because Windows Installer supports only
32-bit platforms and above.
The same thing that can happen to registry data can happen to shortcuts if a component is not installed and the shortcut is contained in that component. Create a
shortcut into its own component and make sure that the shortcut is always installed.
In InstallShield Developer, the shortcut should be in the same component as the file
to which it is pointing.
Media Information Effects
In setup projects created in InstallShield Professional, you created medias to release
to your end users. When you upgrade your project to InstallShield Developer, all of
your medias are converted into releases. Each media that you built for your previously created project becomes a separate release when you upgrade.
In InstallShield Professional, as you created medias, there was a Media folder with a
separate folder created underneath it for each media you created (for example,
MyMedia1, MyMedia2). In InstallShield Developer, the releases are stored internally
in the project file. Each media from your project is imported as a release. When you
upgrade your project, InstallShield Developer creates a product configuration with
the same name as your media and then creates a release—beneath the product configuration—with the same name.
File Compression
In 5.5, you had option to set the Data As Files property (in the Media wizard) to
indicate that you want the entire build to be uncompressed. If this option is set,
InstallShield Developer imports this to the Compression property for the release. In
6.x, in addition to specifying Data As Files, you could opt to compress some components and not others. This data is imported directly into the InstallShield
Developer project.
Component Filtering
In the InstallShield Professional 6.x Media wizard, you could elect to include only
specified components in a media using the Components panel of the Media wizard.
The concept of a media-level filter does not exist in InstallShield Developer.
Instead, you can use release flags to indicate which pieces you want to include in
your builds.
When you upgrade your project, InstallShield Developer creates a release flag with
the same name as the media and this release flag is set on the feature that is to be
included in a specific release. The Release Flag property of the release is also set with
the same media name.
Media Types
In InstallShield Professional, you could select from several different media types.
InstallShield Developer imports the following media types: custom media type, CDROM, internet (One-Click Install), 1.44 MB floppy, single-image (.exe), and 2.88 MB
floppy.
InstallShield Software Corporation
Upgrading InstallShield Professional Projects • 3-15
Languages
In InstallShield Professional and in InstallShield Developer, you have the option to
enable the language dialog when you build a release. This property is imported
directly to the Languages Dialog property in the Releases view. In addition, the languages you have selected for the UI and the default language are imported directly
to the corresponding properties in the Releases view.
Setup Type Effects
Setup types—including custom setup types—in projects created using InstallShield
Professional are imported directly into InstallShield Developer. The only difference
is that—instead of including components—your setup types include features.
Both the Display Name and the Description properties in the Setup Types view are
populated using information from your setup project. Any comments you might
have entered are not imported because InstallShield Developer does not use this
property.
Build Settings Effects
The Build Settings panel contains instructions indicating how the compiler should
behave when your setup is being built. This panel contains three tabs: Run/Debug,
Compile, and Variables.
The information from the Build Settings panel is imported as follows:
• Run/Debug—No information from the Run/Debug tab is imported into your
InstallShield Developer project.
• Compile—Information from the Compile tab can be found in the Compiler
tab of the Settings dialog. To access this dialog, select Settings from the Project
drop-down menu on the toolbar.
• Variables—Information from the Variables tab can be found in the Path Variables view in 7.0.
Aliasing
In Windows Installer, identifiers cannot contain spaces and must contain only specified characters. Because of this, some of your component names, feature names, or
script-defined folder names that you used in InstallShield Professional might not be
valid in your upgraded project. To address this issue, InstallShield Developer uses
aliasing to match the old name with a new identifier.
InstallShield Developer does not perform a lexicon change for these names because they might
be used as strings within your script.
3-16 • Upgrading Projects
InstallShield Software Corporation
ISAlias Table
Aliasing information is contained in the ISAlias table in the Direct Editor.
Column Name
Information
Alias
Name string used in InstallShield
Professional.
Identifier
String that is used by InstallShield
Developer to reference the alias.
Table
Name of the table that uses the alias (for
example, Feature). This table is available
in the Direct Editor.
Upgrade Warnings and Errors
For comprehensive information about warnings and errors that may occur when
you upgrade your InstallShield Professional project to InstallShield Developer,
please consult the online help topics “Upgrade Warnings” and “Troubleshooting
Upgrade Errors.”
Upgrading InstallShield—Windows
Installer Edition Projects
If you have an InstallShield project (.ism file) that was created using InstallShield—
Windows Installer Edition, that project is automatically upgraded to a Basic MSI
project when you open it in InstallShield Developer. See “Converting a Basic MSI
Project to a Standard Project” on page 3-18 to learn how to convert your upgraded
project to a Standard project.
When you open the project, a dialog box appears to ask if you would like to upgrade
your project.
• Click Yes to upgrade your project. Your project opens in the IDE.
• Click No to leave the project unopened.
A backup copy of your original project is created and stored in the location specified
in the dialog.
Any errors that result from the upgrade are displayed in the output panel at the bottom of the IDE. For information on these errors, see the online Help Library topic
“Troubleshooting Upgrade Errors.”
You can also upgrade your setup project when you build it from the command line. Use the -u
parameter to upgrade your setup project from the command line without building it.
InstallShield Software Corporation
Upgrading InstallShield—Windows Installer Edition Projects • 3-17
Converting a Basic MSI Project to a
Standard Project
Converting your Basic MSI project to a Standard project allows you to take full
advantage of the scripting capabilities available in InstallShield Developer.
To convert your Basic MSI project to a Standard project, do the following:
1. Open your Basic MSI project in the IDE.
2. Select Convert to Standard Project from the Project drop-down menu.
3. Click Yes in the dialog that appears.
This conversion is irreversible. After you convert your Basic MSI project to a Standard project and
save it, you cannot convert your project back to a Basic MSI project.
Because a Standard project uses resource-based dialog boxes—instead of using the MSI dialogrelated tables—no MSI-based dialog boxes from your original project will be available after the
migration.
3-18 • Upgrading Projects
InstallShield Software Corporation
Using InstallShield Developer
4
Chapter Contents
Setup Project File . . . . . . . . . . . . . . . . . . . . . . 4-3
InstallShield Developer provides a complete, easy-to-use
installation development environment (IDE) for creating
your setups. The IDE provides a checklist of steps that you
need to consider as you author your setup. This chapter
takes you through these steps and gives you the
information you need to begin creating setups.
InstallShield Software Corporation
Tour of the IDE . . . . . . . . . . . . . . . . . . . . . . .
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifying and Displaying Toolbars . . . . .
Standard Toolbar . . . . . . . . . . . . . . . . . .
Control Toolbar . . . . . . . . . . . . . . . . . . .
Dialog Layout Toolbar . . . . . . . . . . . . . .
MSI Debugger Toolbar . . . . . . . . . . . . . .
Viewbar . . . . . . . . . . . . . . . . . . . . . . . . . .
Checklist . . . . . . . . . . . . . . . . . . . . . . . . . .
Views . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-3
4-3
4-3
4-3
4-5
4-6
4-7
4-7
4-7
4-8
Organize Your Setup . . . . . . . . . . . . . . . . . . . 4-8
General Information View . . . . . . . . . . . . . 4-9
Project Properties . . . . . . . . . . . . . . . . . 4-10
Summary Information . . . . . . . . . . . . . . 4-10
Windows 2000: Information Stored in
the Add/Remove
Programs Panel . . . . . . . . . . . . . . . . . . 4-10
Product Properties . . . . . . . . . . . . . . . . 4-11
String Tables . . . . . . . . . . . . . . . . . . . . 4-12
Subfeatures . . . . . . . . . . . . . . . . . . . . . 4-13
Feature Properties . . . . . . . . . . . . . . . . 4-14
Setup Types . . . . . . . . . . . . . . . . . . . . . . . 4-15
Default Setup Types . . . . . . . . . . . . . . . 4-15
Additional Setup Types . . . . . . . . . . . . . 4-16
4-1
Specify Application Data . . . . . . . . . . . . . . .
Files . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Merge Modules . . . . . . . . . . . . . . . . . . . .
Objects vs. Merge Modules . . . . . . . . . .
Associating Merge Modules
with Features . . . . . . . . . . . . . . . . . . . .
Dependencies . . . . . . . . . . . . . . . . . . . . .
4-16
4-17
4-19
4-19
Configure the Target System . . . . . . . . . . . . .
Shortcuts/Folders . . . . . . . . . . . . . . . . . . .
Creating a Shortcut . . . . . . . . . . . . . . .
Shortcut Destinations . . . . . . . . . . . . . .
Registry . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding Registry Data to a Component . .
ODBC Resources . . . . . . . . . . . . . . . . . . .
INI File Changes . . . . . . . . . . . . . . . . . . .
Environment Variables . . . . . . . . . . . . . . .
4-21
4-22
4-22
4-22
4-23
4-24
4-25
4-26
4-27
Design the User Interface . . . . . . . . . . . . . . .
End-User Dialogs (Basic MSI Setup Project)
Dialogs (Standard Setup Project) . . . . . . . .
Editing a Dialog’s Layout . . . . . . . . . . .
Reverting Back to the Default Dialog . . .
Editing a Dialog’s Behavior . . . . . . . . . .
4-28
4-28
4-29
4-29
4-29
4-29
Customize Functionality . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . . . .
Files and Functions Nodes. . . . . . . . . . .
Script Editor. . . . . . . . . . . . . . . . . . . . .
Sequences/Actions . . . . . . . . . . . . . . . . .
Sequences . . . . . . . . . . . . . . . . . . . . . .
Actions . . . . . . . . . . . . . . . . . . . . . . . .
Setup Files . . . . . . . . . . . . . . . . . . . . . . . .
Billboards . . . . . . . . . . . . . . . . . . . . . .
4-30
4-31
4-31
4-31
4-32
4-32
4-33
4-33
4-34
Prepare for Distribution . . . . . . . . . . . . . . . .
Build Your Release . . . . . . . . . . . . . . . . . .
MSI Debugger . . . . . . . . . . . . . . . . . . . . .
Distribute Your Release . . . . . . . . . . . . . . .
4-34
4-35
4-35
4-36
4-2
4-19
4-20
Advanced Views . . . . . . . . . . . . . . . . . . . . .
Path Variables . . . . . . . . . . . . . . . . . . . . .
Using Hard-Coded Paths . . . . . . . . . . .
Using Path Variables . . . . . . . . . . . . . .
Different Types of Path Variables . . . . . .
The Property Manager . . . . . . . . . . . . . . .
Setup Design . . . . . . . . . . . . . . . . . . . . . .
Features . . . . . . . . . . . . . . . . . . . . . . .
Components . . . . . . . . . . . . . . . . . . . .
Merge Modules . . . . . . . . . . . . . . . . . .
Files, Registry Data, and Shortcuts . . . . .
Advanced Settings . . . . . . . . . . . . . . . .
Sequences/Actions . . . . . . . . . . . . . . . . .
Components . . . . . . . . . . . . . . . . . . . . . .
Component-Feature Relationships . . . . .
Direct Editor . . . . . . . . . . . . . . . . . . . . . .
4-37
4-37
4-37
4-37
4-38
4-39
4-40
4-40
4-40
4-41
4-41
4-41
4-41
4-42
4-42
4-43
InstallShield Software Corporation
Setup Project File
The setup project file is your central storage file for all of the information required
to build your setup. The information that you enter into the various checklist steps is
saved to this file, including your setup’s dialog boxes, application system requirements, and files. The setup project file provides a convenient interface between
InstallShield Developer and compiled setups.
Tour of the IDE
This section discusses the IDE components and how you use them to create setups.
The terms and concepts presented here appear throughout the remainder of this
guide.
Toolbars
The installation development environment (IDE) offers several toolbars that provide quick access to frequently used menu items, and provide graphical tools for use
in the Dialog Editor. The following toolbars are available in the IDE:
•
•
•
•
Standard
Control
Dialog Layout
MSI Debugger
When you open InstallShield Developer, only the Standard toolbar is displayed. The
Control and Dialog Layout toolbars appear when you work in the Dialogs view, and
disappear when you leave that view.
Modifying and Displaying Toolbars
You can modify which toolbars are displayed and which buttons they contain from
the Customize dialog (available via the Tools menu). You can also right-click on the
toolbar area and select the toolbars you want to display.
Standard Toolbar
Below is a description of all the buttons in the Standard toolbar. All buttons are
listed below.
Clicking this button opens the Project wizard, which walks you through
creating a setup.
The New button allows you to create a blank Standard Project, Basic MSI
Project, or Merge Module project.
The Open button allows you to open project files or convert package files
(.msi) to setup projects.
The Save button saves your changes to the project file.
InstallShield Software Corporation
Setup Project File • 4-3
Click the Undo button in the Dialog editor or Script editor to reverse the last
change you made.
Click the Redo button in the Dialog editor or Script editor to restore the last
action you reversed by clicking Undo.
The Viewbar button allows you to hide or show the viewbar, which appears
on the left side of the IDE.
The Checklist button allows you to hide or show the checklist, which shows
you all the steps involved in creating a setup.
The Previous View button takes you to the view directly above the current
view as shown in the checklist.
The Next View button takes you to the view directly below the current view
as shown in the checklist.
The Back button takes you to the view you last visited in the history of your
view selections. You can click this button multiple times, as long as there are
multiple views in your view history.
The Forward button takes you to the next view in the history of your view
selections. You can continue clicking this button until you reach the view you
were at when you first clicked the Back button.
The Insert InstallScript Function button launches the Function wizard, which
eases the process of writing built-in InstallShield functions.
The Release Wizard button launches the Release wizard, which turns a
project into either a shippable Windows Installer setup package or a
completed merge module. The options you select in the wizard determine the
layout and contents of your release.
The Compile button allows you to compile your InstallScript files without
building your entire setup.
The Build button builds your release with default settings, or, if you have
already built your release, rebuilds your release with the last saved settings.
The Stop Build button cancels the current build process.
The Test button allows you to run through the user interface portion of your
setup without making any changes to your system. All custom actions are
executed. This button is available only for Basic MSI projects.
The Run button allows you to run your completed setup without leaving the
IDE.
Press the Debug InstallScript button to run the setup and debug any
InstallScript custom actions it executes. This is different from debugging MSI
packages.
Pressing the Windows Explorer button launches Windows Explorer, which is
useful for adding files in the Files view via drag-and-drop.
Launches the installed version of DemoShield, or offers you the opportunity
to install an evaluation copy.
Push this button to navigate to the Help view where you can find answers to
many of your questions regarding this product.
4-4 • Using InstallShield Developer
InstallShield Software Corporation
Control Toolbar
The Control toolbar offers you a palette of every standard control available in a
Windows Installer dialog. In previous versions of InstallShield software, it was not
docked and available only as a toolbar.
This toolbar is displayed when you edit a dialog’s layout in the Dialog editor. The
Control toolbar contains all of the buttons listed below. To draw a control on a dialog, click the control’s button, click anywhere on the face of the dialog, drag the
mouse pointer while continuing to press the mouse button, and then release the button when you’ve reached the intended dimensions of the control.
The Select Tool allows you to give focus to a control on a dialog. You can
then move, resize, delete, or align the control.
Click the Check Box button to draw this control onto the dialog.
Click the Push Button button to draw this control onto the dialog.
Click the Edit Field button to draw this control onto the dialog.
Click the Combo Box button to draw this control onto the dialog.
Click the Text Area button to draw this control onto the dialog.
Click the List Box button to draw this control onto the dialog.
Click the Radio Button button to draw this control onto the dialog. A radio
button must be added to a radio button group, below.
Click the Bitmap button to draw this control onto the dialog.
Click the Group Box button to draw this control onto the dialog.
Click the Billboard button to draw this control onto the dialog.
Click the Line button to draw this control onto the dialog.
Click the Radio Button Group button to draw this control onto the dialog.
Click the Selection Tree button to draw this control onto the dialog.
Click the Progress Bar button to draw this control onto the dialog.
Click the List View button to draw this control onto the dialog.
Click the Scrollable Text button to draw this control onto the dialog.
Click the Icon button to draw this control onto the dialog.
Click the Directory List button to draw this control onto the dialog.
InstallShield Software Corporation
Tour of the IDE • 4-5
Click the Directory Combo button to draw this control onto the dialog.
Click the Volume Cost List button to draw this control onto the dialog.
Click the Volume Select Combo button to draw this control onto the dialog.
Click the Masked Edit button to draw this control onto the dialog.
Click the Path Edit button to draw this control onto the dialog.
Click the Custom button to add a custom ActiveX control to the dialog.
Dialog Layout Toolbar
The Dialog Layout toolbar provides several tools for aligning and resizing controls
in a dialog. This toolbar is displayed when you edit a dialog’s layout in the Dialog
editor.
Most buttons on this toolbar are enabled only when you have selected more than
one control. To select multiple controls, select one, press the Shift key, and select the
other; or hold the mouse button down and drag the cursor across several controls.
The Dialog Layout toolbar contains all of the following buttons:
Select two or more controls and click the Align Left button to align all of the
selected controls with the left edge of the leftmost control.
Select two or more controls and click the Align Right button to align all of the
selected controls with the right edge of the rightmost control.
Select two or more controls and click the Align Top button to align all of the
selected controls with the top edge of the uppermost control.
Select two or more controls and click the Align Bottom button to align all of
the selected controls with the bottom edge of the lowermost control.
Select a control and click the Center Vertical button to reposition the element
in the vertical (x-axis) center of the dialog.
Select a control and click the Center Horizontal button to reposition the
element in the horizontal (y-axis) center of the dialog.
Select three or more controls on the dialog and click the Space Across button
to have them evenly distributed horizontally across the dialog.
Select three or more controls on the dialog and click the Space Down button
to have them evenly distributed vertically along the dialog.
Select two or more controls and click the Make Same Width button to resize
the width of the smaller controls to the width of the largest control.
Select two or more controls and click the Make Same Height button to resize
the height of the smaller controls to the height of the largest control.
Select two or more controls and click the Make Same Size button to make
the smaller controls the exact size of the largest control.
Select a control and click the Bring to Front button to place it on top of any
overlapping controls. See note below.
4-6 • Using InstallShield Developer
InstallShield Software Corporation
Select a control and click the Send to Back button to place it behind any
overlapping controls. See note below.
Click the Toggle Grid button to place design-time grid lines on the dialog, or
to remove the grid if it is present.
The Bring to Front and Send to Back actions are not saved when you close and reopen your setup
project. These actions are for use during design only. For example, you might have a dialog that
displays different controls based on a condition. You can use the Bring to Front and Send to Back
actions to work on these different controls while you are designing your dialog.
MSI Debugger Toolbar
Below is a description of all the buttons in the MSI Debugger toolbar. All buttons
are listed below.
Click this button to set a breakpoint on an action or dialog.
Click this button to start debugging or, while debugging, to continue
stepping through the setup.
Click this button to step over the current action or dialog.
Click this button to clear all breakpoints you have set in the MSI Debugger.
Click this button to stop debugging.
Viewbar
The viewbar allows you to navigate through various views in InstallShield
Developer. When you first open InstallShield Developer, the viewbar displays only
three items: InstallShield Today, Help, and Best Practices. Above these items, a
header bar reads “InstallShield.” This indicates that you are in the InstallShield viewbar. When you open an existing project or create a new project, two new viewbars
appear in the viewbar area: Checklist Steps and Views. To toggle between the three
viewbars, click the desired header bar and the viewbar displays the views for the
selected header bar.
Checklist
The checklist is your guide to creating a setup. The checklist lists every view necessary for creating and testing your setup. In addition to serving as a navigational aid,
the checklist also adds a check mark to the left of the view name once you have visited it. You can tell at a glance the views you have already visited, and the ones you
still need to visit.
InstallShield Software Corporation
Tour of the IDE • 4-7
Views
When creating your setup, you do the majority of work in views. The views are organized into six steps, where each step is a logical group of information that is
required to build a functional setup. To display a view, you can either click on the
name of the view in the Views viewbar or in the Checklist. Below are the steps to
consider when you create a project, and the corresponding views where you can
complete these steps.
Organize Your Setup
The first step in building anything is to lay a solid foundation. The base of your
setup is formed by specifying application information through the General Information view, creating features in the Features view, and specifying setup types in the
Setup Types view.
Figure 4-1.
Organize Your Setup view.
4-8 • Using InstallShield Developer
InstallShield Software Corporation
General Information View
The General Information view is where you set global project properties such as the
application name and support information. Most of the properties in this view are
optional. Your setup will work properly if you accept the defaults or do not provide
any values for the optional properties. Some of the information you enter in this
view is for your reference only, some is necessary to comply with Windows logo
requirements, and the rest is for setting basic setup properties. However, the following properties are required: Title, Subject, Product Name, Publisher, Product Code,
Upgrade Code, and Destination Folder.
Whenever you start a new project, you must set its General Information properties.
InstallShield Developer creates new projects with default settings, but you should
set your own properties at the start of your work so that the project includes data
specific to your needs.
The General Information view contains the following sub-views:
•
•
•
•
•
•
Project Properties
Summary Information Stream
Windows 2000
Product Properties
Merge Module Properties (only for Merge Module projects)
String Tables
InstallShield Software Corporation
Organize Your Setup • 4-9
Project Properties
InstallShield Developer 7.0 stores your project settings in a single setup project file
(.ism file). This file stores all of the information about your project. In the Project
Properties view, you can edit basic information about your setup project—including
the setup author’s name, setup languages, and any comments you want to include.
Because the project file is in a binary format, edit your project settings only in the IDE or with the
automation interface.
Summary Information
Overview
Windows Installer databases (.msi and .msm files) are implemented as COM structured storage, and every COM structured storage file contains a Summary Information stream.
The Summary Information Stream view of the IDE allows you to populate the
Summary panel for your setup package. This panel contains information about your
company and the product being installed.
To view the Summary information for an .msi or .msm file:
1. Right-click the .msi or .msm file and select Properties from the context menu.
2. Click the Summary tab to view the summary information.
Properties
To set the properties in the Summary panel, click General Information on the
checklist. Next, click Summary Information Stream to display its property sheet to
the right.
The property sheet contains the following properties:
•
•
•
•
•
•
•
•
Title
Subject
Author
Keywords
Package Code
Template Summary
Comments
Schema
Windows 2000: Information Stored in the Add/Remove
Programs Panel
The Windows 2000 Add/Remove Programs panel differs from previous Windows
operating systems in many ways. Depending on how the Windows Installer setup is
configured, the user has the option of removing, repairing, or changing the installation with the click of a button.
4-10 • Using InstallShield Developer
InstallShield Software Corporation
Windows 2000 users can see information in the Add/Remove Programs panel not
available on previous platforms. With this information, it is easier for your end users
to find technical support links and telephone numbers, product update information,
and information about your company. In order to achieve logo compliance, you will
need to provide this information to your users.
To set your project’s Windows 2000 properties, navigate to the General Information
view and select the Windows 2000 icon. Each property is listed below:
•
•
•
•
•
•
•
•
•
•
•
•
Display Icon
Disable Change Button
Disable Remove Button
Disable Repair Button
Publisher
Publisher/Product URL
Support Contact
Support URL
Support Phone Number
Read Me
Product Update URL
Windows 2000 Comments
Product Properties
A product is the top level of organization in a setup project. The setup is further
divided into features and components, which are subsets of your product. Although
a setup can contain multiple features and components, it can have only one product.
A default product is created for you when you start a new setup project. To view this
product’s properties, click the Product Properties icon on the tree. These properties
contain information such as the product name, the product code (GUID), and the
application version.
You must set the product properties before you proceed. In addition, you must populate all properties with valid values in order to comply with Windows logo guidelines.
Products contain the following properties:
•
•
•
•
•
•
•
Product Name
Product Version
Application Type
Product Code
Upgrade Code
Install Condition
INSTALLDIR (Default Product Destination Folder)
InstallShield Software Corporation
Organize Your Setup • 4-11
String Tables
A string table stores string identifiers, values, and comments for a single language.
Using identifiers from the string tables—which can be exported to text files and
translated into additional languages—instead of hard-coded strings helps you globalize your setup.
The string tables are found in the General Information view:
1. Click the General Information shortcut on the checklist to navigate to the
String Tables view.
2. Expand the String Tables folder in the Project explorer to view all of the string
tables.
When you open any new project, you will see a string table for each supported language. InstallShield provides all of the default string table entries necessary for the
standard end-user dialogs and other user interface elements. Each one begins with
IDS_.
You will also see the string table for the default language while you are working
throughout the IDE, such as in the shortcut Description property. You can edit this
string table the same as you would the default language’s string table in the Project
view. For more information, see the topic “Edit String Table Entries” in the online
Help Library.
Except for InstallScript custom actions, the string tables and identifiers themselves
are not available at run time. When you run a release, InstallShield resolves all of the
string values for the language in which the setup is running and writes only the values necessary for the current language into the setup package.
4-12 • Using InstallShield Developer
InstallShield Software Corporation
Features
A feature is a building block of an application from the end user’s perspective. It
represents a specific capability of your product—such as its help files or a part of a
product suite that can be installed or uninstalled based on the end user’s selections.
Your entire application should be divided into features that perform a specific purpose.
Figure 4-2.
Features view.
Subfeatures
Subfeatures are further divisions of a feature. Since features should be self-contained elements of an application or application suite that a user can selectively
install, it might make sense for you to organize portions of your application as subfeatures of a “parent” feature. If all features are visible, your end user can then select
which portions of a feature to install in the custom Setup Type dialog that corresponds to your project type.
• Basic MSI Project—Custom Setup
• Standard Project—SdFeatureDialog2, SdFeatureMult, or SdFeatureTree
Although you can create many levels of subfeatures, you should keep the design as simple as
possible for organizational purposes.
InstallShield Software Corporation
Organize Your Setup • 4-13
Feature Properties
Feature Properties for Both Basic MSI and Standard Projects
All features have the following properties, which you can edit to suit the needs of
your setup.
•
•
•
•
•
•
•
•
•
•
•
Display Name
Description
Remote Installation
Destination
Install Level
Display
Advertised
Required
Release Flags
Condition
Comments
Additional Feature Properties for Standard Setup Projects
The following properties apply only to Standard setup projects.
•
•
•
•
•
•
•
•
4-14 • Using InstallShield Developer
FTP Location
HTTP Location
Miscellaneous
Required Features
OnInstalling
OnInstalled
OnUninstalling
OnUninstalled
InstallShield Software Corporation
Setup Types
Setup types allow you to provide different versions of your setup to your end users.
For example, the three default setup types are Typical, Compact, and Custom. Typical might install all or most of the files included in your setup. Compact installs only
those files necessary for your application to run. Such things as multimedia demos
are not installed in order to preserve hard disk space. The custom setup type allows
the end user to select which features are installed.
Figure 4-3.
Setup Types view.
Setup types are based on features. You select the features you would like to associate
with each setup type. Then, when an end user selects a certain setup type, only those
features you associated with that setup type are installed.
Default Setup Types
• Compact—The Compact setup type usually only includes those features absolutely necessary in order for your application to run. This setup type is
designed for those people who have limited disk space, such as notebook computers.
• Typical—The Typical setup type normally includes most, if not all, of a program’s features. For example, if your setup includes multimedia tutorials, they
would be included as part of the Typical setup.
• Custom—The Custom setup type allows end users to select which features
they would like to install. Required features should be marked as such, to
ensure that they are always installed. However, features such as the online help
may not need to be installed. In these cases, the end user can select which of
the features are unnecessary to install.
InstallShield Software Corporation
Organize Your Setup • 4-15
Additional Setup Types
You can create additional setup types in this view. See the topic “Working With
Setup Types” in the online Help Library to learn how to add setup types to your
project.
The Setup Types view is available only for Standard setup projects. If your setup is a Basic MSI
installation, the Setup Types view does not appear in the IDE. To create setup types for Basic MSI
setup projects, make use of the feature’s Install Level property.
Specify Application Data
Application data includes all the files you are adding to your setup. Files can be
added using the Files view, using merge modules, or by scanning your executables
for dependencies.
Figure 4-4.
Specify Application Data view.
4-16 • Using InstallShield Developer
InstallShield Software Corporation
Files
The main purpose of most setup programs is to transfer files from the source
medium to the target destination. With InstallShield, adding files to your setup is a
simple drag-and-drop process.
Figure 4-5.
Files view.
New components may be created for you to properly handle the files you add.
Therefore, select the feature with which you want to associate any newly created
components. To set the feature, change the value of the list box at the top of the
screen until it matches the feature you would like to use. If no features exist, you
have the option of creating one when you first add files in this view. Additionally,
you can change the component/feature relationship by right-clicking on a component and selecting Properties. Then, click the Features tab to make the necessary
changes. You can add files to your setup project in one of three different ways. Each
of these methods is described below:
Drag and Drop
The most straightforward way to add files to your setup project is by using the Files
explorer in the Files view. The top two panes in this view are functionally equivalent
to Windows Explorer. The bottom two panes represent the destination for your
files. You can drag source files from the top frame to the destination folder in the
bottom frame.
Dynamic File Linking
The second way to add files to your setup is by linking to the contents of an entire
folder, or to specific files in the folder. This method allows you to point to a specific
folder, either locally or on a network, that contains files for your setup. Every time
you build your setup, the contents of the folder are added to your feature.
InstallShield Software Corporation
Specify Application Data • 4-17
Additionally, you can use wildcards to filter which files are added to your setup. See
the topic “Adding Files Dynamically” in the online Help Library for more information.
Dependency Scanning
The final way to add files to your setup is accomplished through the Dependencies
view. This view contains three wizards that can scan your setup project, a running
application, or a Visual Basic project for all dependency files and add them to your
setup. All three of these wizards can also be launched from the Project menu.
Additional Information
Setup Best Practices
When you add files to your setup in this view, components are created according to
Setup Best Practices. For example, all portable executable files (.exe, .dll, .ocx files)
are given their own component. All other files are added to the default component
for each destination directory. However, if you drag files directly to one of the components listed under a destination folder, the Setup Best Practices rules are ignored.
Key Files
A key file is a file that the Windows Installer uses to detect the component’s presence. If the key file is in its proper location, the installer assumes that the entire
component is installed correctly. Each component can have a key file. The key file is
differentiated from non-key files by the key icon. You can set a key file in either the
Components view or Setup Design view. To navigate to one of these views, rightclick on a component in the Destination pane of the Files view and select Go to
Advanced Components View.
Refresh the View
To refresh any of the panes in the Files view, give focus to the pane you want to
refresh and press F5.
4-18 • Using InstallShield Developer
InstallShield Software Corporation
Merge Modules
A merge module (or .msm file) contains all of the logic and files needed to install
distinct pieces of functionality. For example, many applications require Visual
Basic® run-time DLLs. Instead of having to include the file in a component and figure out its installation requirements, you can simply attach the Visual Basic Virtual
Machine merge module to one of your project’s features.
Figure 4-6.
Merge Modules view.
Objects vs. Merge Modules
Objects are essentially merge modules that require special customization in order to
work properly. For example, the Access object included with InstallShield requires
customization through the Access 97 Object wizard. As soon as you add an object
to your setup, its customization wizard appears. You can either customize your
object at the time you add it, or cancel the wizard and customize your object later by
right-clicking on the object and selecting Configure.
Associating Merge Modules with Features
To associate a merge module with a feature:
1. Navigate to the Merge Modules view and select the module you want to add to
your setup.
2. Select the feature or features to which you would like to add this module.
A merge module must be associated with a feature in order to be installed. You can
associate a single merge module with as many features or subfeatures as may require
it. If no features exist in your setup when you attempt to add a merge module, the
Create a New Feature dialog displays, allowing you to create a feature. If you do not
create a feature, no modules can be added to your setup.
InstallShield Software Corporation
Specify Application Data • 4-19
You should not alter another company’s merge module.
Dependencies
A file often relies on functions in other files to perform a task. However, you may
not be aware of all these other files, known as dependencies, when you include your
application’s files in your setup project.
Figure 4-7.
Dependencies view.
To help you identify dependencies, InstallShield offers three dependency scanners
that automatically add these files to your setup.
• The Static Scanner looks at many of the files you have in your setup and
checks for any dependencies they may require.
• The Dynamic Scanner monitors your system while an executable file is running. It then adds to your setup any .dll or .ocx files that are required by the
application.
• The Import Visual Basic Project scanner scans your Visual Basic project for all
dependencies and adds them to your setup project.
Any files that are added to your setup through one of these scanners are added in
accordance with Setup Best Practices.
4-20 • Using InstallShield Developer
InstallShield Software Corporation
Configure the Target System
Every setup changes the target system in some way. The simplest setups merely
copy files. More in-depth setups make registry changes, edit .ini files, or create shortcuts. InstallShield Developer provides the following subviews for making advanced
configurations:
Figure 4-8.
Configure the Target System view.
InstallShield Software Corporation
Configure the Target System • 4-21
Shortcuts/Folders
The Shortcuts/Folders view provides a simple, visual way to create your shortcuts.
Unlike when you create shortcuts in the Setup Design view, you do not need to create a feature or component before you create a shortcut in the Shortcuts/Folders
view. If a component does not already exist, InstallShield Developer automatically
creates one for you and your new shortcut belongs to this component. You can
change the component to which this shortcut belongs by changing the shortcut’s
Component property.
Figure 4-9.
Shortcuts/Folders view.
Creating a Shortcut
To create a shortcut:
1. Right-click on one of the destination directories.
2. Select New Shortcut from the right-click menu.
Your shortcut appears with a default internal name. This name is not displayed to
end users, but you might want to change it to something that is relevant to your
project.
To rename a shortcut:
1. Select the shortcut and press F2.
2. Type the new name.
Shortcut Destinations
In the Shortcuts view, there is a set of predefined destination folders under which
you can create shortcuts and subfolders. By default, InstallShield offers four standard shortcut destinations. The shortcut destinations are described below.
4-22 • Using InstallShield Developer
InstallShield Software Corporation
Programs Menu and Startup
The first two destinations—Programs Menu and Startup—are located in the Start
menu. The Programs Menu folder is the industry standard and Microsoft’s suggested method. The Startup folder should contain shortcuts to only those items that
need to be launched whenever Windows starts.
Send To
The third option, the Send To folder, is accessed when a user right-clicks on a file.
In the right-click menu is a folder called Send To. If you create a shortcut for your
program in this folder, an end-user can click on any file and send it to your program.
For example, you might want your end user to be able to open an HTML page in
Notepad. If you created a shortcut to Notepad in the Send To menu in the Shortcuts explorer, the end user could right-click on an HTML file and select Notepad
from your Send To menu. The source file for that page opens in Notepad.
Desktop
The final shortcut location is the end user’s desktop. When you create a shortcut in
the desktop folder, your program’s icon is displayed on the end user’s desktop. The
desktop is the most visible place to put a shortcut, but too many shortcut icons can
clutter the end user’s desktop.
Registry
InstallShield makes the task of modifying the end user’s registry more familiar with
the InstallShield Registry editor. Use the editor to create keys and values in much the
same way that you use the Windows Registry Editor.
Figure 4-10.
Registry view.
InstallShield Software Corporation
Configure the Target System • 4-23
All registry data must be associated with a component. This way, if the component’s
feature is selected for installation, the component’s registry data are set up on the
target system.
Adding Registry Data to a Component
In the Component list box on the top of the Registry view, select the component to
which you want to add registry data.
If you do not yet have a component created, or you would like to add registry data to
a new component:
1. Click the ellipsis button next to the list box to display the Browse for a Component dialog.
2. Click the New Component button to create a component.
3. Rename your component.
4. Click Open to have this component selected in the Registry view.
To refresh this view, press F12.
The installer automatically creates certain registry entries based on values you provide for your project and product properties. These informational keys are required
by Windows logo guidelines. Also, all of a component’s advanced settings are used
to register files on the target system.
4-24 • Using InstallShield Developer
InstallShield Software Corporation
ODBC Resources
One of the more complex areas of system configuration involves setting up ODBC
drivers, data source names (DSNs), and translators. The ODBC resource must be
properly registered on the system with all of the required attributes and, in the case
of drivers and translators, install the necessary files, including any setup DLL. This
process is greatly simplified in the ODBC Resources view, in which you can select
the drivers, data sources, and translators installed on your development system.
Figure 4-11.
ODBC Resources view.
The ODBC Resources view is exclusively for installing ODBC-related resources. To install the core
ODBC files, select the MDAC 2.5 merge module in the Objects/Merge Modules view.
InstallShield Software Corporation
Configure the Target System • 4-25
INI File Changes
Editing .ini files found on the target system can be hazardous, especially if those .ini
files are used by the operating system for standard functionality, such as Boot.ini.
With InstallShield Developer, .ini file changes can be performed in the IDE.
Figure 4-12.
INI File Changes view.
Editing an .ini file involves three steps:
1. Create an INI file reference.
2. Add a section to an INI file.
3. Add a keyword to an INI file.
Before you can create an .ini file reference, you must have at least one component
created. If you no components exist when your .ini file reference is created, the Create a New Component dialog is displayed, allowing you to create a component.
4-26 • Using InstallShield Developer
InstallShield Software Corporation
Environment Variables
Environment variables are name and value pairs that can be set on the target system
with your installation program and can be accessed by your application and by other
running programs.
Figure 4-13.
Environment Variables view.
In the Environment Variables view, you can create, set (or modify), and remove
environment variables on the target system via your installation program. To specify
environment variable properties, navigate to the Environment Variables view by
clicking the link on the checklist or selecting Environment variables from the Configure the Target System submenu of the Go menu.
For target systems running Microsoft Windows 95 or 98, the environment variables are modified
in, created in, or removed from Autoexec.bat. Environment variables are stored in the registry on
systems running Windows NT 4.0 or Windows 2000.
InstallShield Software Corporation
Configure the Target System • 4-27
Design the User Interface
The appearance of your setup is one of the main aspects that differentiates you from
your competition. You can easily customize the way your setup looks and behaves.
Using the Dialogs view, which is different between Standard and Basic-MSI projects,
you can design your own dialogs for use during your setup.
Figure 4-14.
Design the User Interface view.
End-User Dialogs (Basic MSI Setup Project)
The resources for all of your end-user dialogs are defined in the Dialogs view. Click
the Dialogs shortcut on the checklist to navigate to this view.
All of the dialogs in your Basic MSI project are found in the User Interface explorer
under the All Dialogs folder. When you start a new Basic MSI setup project,
InstallShield Developer 7.0 provides a series of default dialogs for the two User
Interface sequences that a Windows Installer package typically displays dialogs in:
the Installation sequence—with separate dialogs depending on whether the package
is being installed for the first time, reinstalled, or uninstalled—and the Administration sequence. (End-user dialogs are not usually displayed in the Advertisement
sequence.)
Although you can create dialogs in your merge module project, you cannot hook
them into a sequence until you associate your module with a setup project. Then, all
the dialogs included in your module will be available.
You can select any of these dialogs in the tree to see further options for editing its
layout or behavior in the Dialogs view.
4-28 • Using InstallShield Developer
InstallShield Software Corporation
The process of creating a new dialog and displaying it in your setup can be broken
down into the following four tasks:
1. Add the dialog to the project.
2. Edit the dialog’s layout.
3. Define the controls’ behavior (under what conditions they should be displayed, the events that their interaction should trigger, and the events that they
should subscribe to).
4. Display the dialog with a NewDialog or SpawnDialog event in another dialog’s
control or by inserting the dialog into your project’s sequences.
The Dialogs view is designed to allow you to maintain a single resource for all of the
languages supported in your project. If necessary, you may need to make languagespecific changes to the dialog.
Dialogs (Standard Setup Project)
The Dialogs view contains a list of the standard end user dialogs (including built-in
and Sd dialog functions from InstallShield Professional). The dialogs are identified
by their function names. Click on a dialog to view a sample dialog in the pane on the
right.
The dialogs names in the list are “ghosted” until you edit the layout. A ghosted
name means that the default dialog (from isres.dll) will be used in the user interface.
If you edit the layout of a dialog, its name appears in bold in the list and this dialog is
pulled from isuser.dll at runtime. If your setup project supports additional languages, those languages appear as nodes beneath the edited dialog. You can edit the
layout for each language separately.
Editing a Dialog’s Layout
To edit a dialog, do one of the following:
1. Select a dialog and click Edit dialog layout in the Dialog Preview pane on the
right.
2. Right-click on a dialog and select Edit from the context menu.
Reverting Back to the Default Dialog
If you have edited a dialog and later decide to use the default dialog instead, you can
revert back to the original dialog by right-clicking on the edited dialog and selecting
Revert from the context menu.
Editing a Dialog’s Behavior
To edit a dialog’s behavior, you need to modify the parameters for the dialog function in your script.
InstallShield Software Corporation
Design the User Interface • 4-29
Customize Functionality
By manipulating sequences and actions, using InstallScript, and specifying setup
files, you can create a customized setup that meets all of your application’s needs.
Figure 4-15.
Customize Functionality view.
4-30 • Using InstallShield Developer
InstallShield Software Corporation
InstallScript
InstallScript is a setup authoring language that is similar to the C programming language. The InstallScript view allows you to modify your setup script using the
InstallScript language. This view is similar to the Scripts pane in InstallShield
Professional.
Figure 4-16.
InstallScript view.
Files and Functions Nodes
There are two nodes in the InstallScript view:
• Files—The Files node lists all of your script (.rul) files. Click on a script file to
display the script in the Script Editor pane on the right.
• Functions—The Functions node lists all of the InstallScript functions contained in all of your script files. Click on a function to display that function in
the Script Editor pane.
Script Editor
Clicking on an item under either of the nodes in the InstallScript view displays the
Script Editor in the pane on the right of the IDE.
InstallShield Software Corporation
Customize Functionality • 4-31
Sequences/Actions
Figure 4-17.
Sequences/Actions view.
This view is available in the Advanced Views section for Standard setup projects.
Sequences
Sequences direct all of the actions performed during the installation process—from
file transfer to user interface display. These actions are given a number on the
sequence, which then executes from the smallest number to the highest. Rather than
having to manually provide a numeric value for every action, you can use the
Sequences view to insert actions into a sequence, or edit the sequence timeline.
In Standard setup projects, the installation’s user interface is generated through your script.
There are three main sequences into which you can insert your custom actions or
dialogs.
• Installation
• Advertisement
• Administration
Each of these sequences plays a different role. The Installation sequence is run during a normal installation. The Advertisement sequence runs when an application is
being advertised rather than installed. The Administration sequence is run during an
administrative installation.
4-32 • Using InstallShield Developer
InstallShield Software Corporation
Actions
As complex as Windows Installer is, it might not provide all the functionality that
you require. Microsoft® allows you to add flexibility to your setup that is not
directly supported by Windows Installer. This additional functionality is achieved
through the use of custom actions.
InstallShield supports calling a DLL function; launching an EXE; running VBScript,
JScript, or InstallScript code; and running another setup package as custom actions.
InstallShield divides the task of creating and implementing custom actions into the
following steps:
1. Create a custom action.
2. Decide when your custom action should execute.
3. Execute a custom action by inserting it into a sequence or placing it as the
result of a dialog’s control event (for Basic MSI Projects only).
Setup Files
The Setup Files view lets you add, sort, and delete setup files—files that are required
by your setup project only during the installation process. Setup files are copied to a
temporary directory on the target system when installation begins and are deleted
when the installation is complete. The support directory (SUPPORTDIR) is a
dynamic file location and might be different on every target system and even on the
same system for different installation instances.
Figure 4-18.
Setup Files view.
InstallShield Software Corporation
Customize Functionality • 4-33
To access a particular setup file during installation, you can query for the value of the support
directory (SUPPORTDIR) and then append the file name to the SUPPORTDIR value to get the complete path of the file.
Billboards
You can use billboards to pass information to your customers during the installation
process. Billboards can be used to communicate, advertise, educate, and entertain
the end user. Billboards offer information—new features of the product being
installed or other products from your company—to your end users. Each billboard
is a bitmap (.bmp) file that you can customize for complete control over the look
and feel of the file transfer.
This view is available as a part of the Setup Files view only for Standard projects.
Prepare for Distribution
The final step in creating your setup project is to build and test your installation.
InstallShield provides you with many different media types to choose from, as well
as the ability to test your setup from the IDE.
Figure 4-19.
Prepare for Distribution view.
4-34 • Using InstallShield Developer
InstallShield Software Corporation
Build Your Release
When you build a release, InstallShield Developer takes all of the information from
your setup project and compiles it into a Windows Installer setup package (.msi file)
capable of installing your product onto any supported Windows platform. When
you build a release, InstallShield Developer takes all of the information from your
merge module project and compiles it into a Windows Installer merge module
(.msm file) that you can include in a setup package.
After you have designed your project in the InstallShield installation development
environment (IDE), you are ready to build a release for testing and, ultimately, distribution to your customers. The release is built according to the options you set for it
in the Release wizard or in the property sheet in the Release view.
MSI Debugger
When you debug a release in the MSI Debugger, you can view and set Windows
Installer properties as you step through the package’s User Interface sequence.
Follow the steps below to begin going through a setup in the MSI Debugger:
• Build your release. However, there is one important restriction when you
intend on debugging the release: You cannot debug a package that is compressed inside Setup.exe.
• Navigate to the MSI Debugger view. The debugger lists every standard action
and custom action in the User Interface sequence and then every dialog in
your project.
• Set a breakpoint on an action or dialog.
• Start the debugger.
The MSI Debugger runs through each action and dialog until it reaches your breakpoint, at which point it halts execution. Now, you can view and set properties in the
Watch window and the Variable window. Finally, you can step through each of the
remaining actions, or you can stop the debugger.
Do not confuse the MSI Debugger with the InstallScript Visual Debugger, since they have completely separate purposes. You cannot debug a setup package with the InstallScript Debugger,
and you cannot debug an InstallScript custom action with the MSI Debugger.
InstallShield Software Corporation
Prepare for Distribution • 4-35
Distribute Your Release
When your setup is built and tested, the only remaining task is to distribute it to a
specified location. You can either distribute your setup to a local or network location, or to an FTP site in the Distribute view.
Figure 4-20.
Distribute Your Release view.
To distribute your setup either locally or to a network location, enter the location to
which you would like your setup disk image copied, or click the Browse button to
navigate to this location. Additionally, you can enter a username and password for
the FTP server. Then, click the Distribute to Location button. To distribute your
setup to an FTP location, enter the location of the FTP location field and click the
Distribute to FTP Site button.
To distribute your setup:
1. Navigate to the Distribute Your Setup view by clicking the Distribute Your
Setup shortcut on the checklist.
2. Click the media type that contains the build you would like to distribute. If
your setup only consists of one disk, than the contents of the Disk1 folder are
copied to the release location, but not the folder itself. If your setup spans
across multiple disks, the folders and their contents are copied to the release
location.
4-36 • Using InstallShield Developer
InstallShield Software Corporation
Advanced Views
The advanced views allow you alternative ways of creating certain aspects of your
setup, as well as setup simplifying features such as path variables and the property
manager.
Path Variables
The traditional way to link to source files in a setup project is to create a reference to
that file using a hard-coded path. For example, you might have a source file called
Program.exe located at C:\Work\Files that you want to include in your setup.
Figure 4-21.
Path Variables view.
Using Hard-Coded Paths
If you use hard-coded paths, you have to enter the entire path every time you want
to associate a source file from that directory. If you move that file to another directory, you have to change the hard-coded path as it appears in the setup project. If
your setup consisted of a small number of source files, this might not be a problem.
Some setups contain thousands of files that would all need to be remapped if you
changed the folder structure or migrated the project to a different machine.
Using Path Variables
Overview
With path variables you can define commonly used paths in a central location so
that you do not need to change every source file’s path each time you move the
project or change the directory structure. In the previous example, if you keep all of
your application’s source files in various subfolders under C:\Work\Files. You could
InstallShield Software Corporation
Advanced Views • 4-37
create one variable that points to the Files folder. Call this variable <MyFiles>. So if
you wanted to include a file that is in C:\Work\Files\Images, you would simply
enter <MyFiles>\Images. If you decided to move your files to D:\Work\Files, you
can go to one place, your variable <MyFiles>, and change the folder that it points
to.
Using the Path Variables Explorer
All path variables can be viewed and modified in the Path Variables explorer, which
can be accessed by clicking the Path Variables shortcut on the checklist. You can use
path variables in almost any location in the IDE where you link to source files, such
as in the Dialog Editor, dynamic file links, and the release location. Instead of entering the path variables yourself, you can have InstallShield recommend them whenever you browse to a path.
Path variables are used during the development of your setup project. These paths do not apply
to the target machines where the application is being installed. Rather, they are used to link to
source files for your setup project. When the project is built, those links are evaluated and the
files they point to will be built into the setup.
Different Types of Path Variables
There are four different types of path variables that you can use. Each type functions somewhat differently from the others. Regardless of the type of path variable
you use, the variable name is provided in the same manner throughout the IDE.
Variable
Type
Description
Predefined path variables are path variables which point to some of
the most commonly used folders. Unlike other types of path variables,
these values cannot be edited in the IDE. See the online Help Library
topic “Predefined Path Variables” for more information.
The values of registry-based path variables are derived from the
registry keys you created. After creating the registry key, you need to
set a path variable to this key. See the online Help Library topic
“Using Registry Path Variables” for more information.
Environment path variables are based on the values of your system’s
environment variables. You can set an environment path variable to
an existing environment variable. See the “Using Environment Path
Variables” in the online Help Library for more information.
Standard, or user-defined, path variables are defined through the
IDE. You can specify a path variable such as <MyFiles> with a value
of “C:\Work\Files”. These variables do not rely on any outside
sources, such as the registry or system paths. See “Standard Path
Variables” in the online Help Library for more information.
4-38 • Using InstallShield Developer
InstallShield Software Corporation
You also have the option of converting existing static links to path variables with the Convert
Source Paths wizard. This wizard will scan your setup project for static links and change those
links to path variables, thus enhancing the portability of your project.
The Property Manager
The Property Manager allows you to edit the Property table within the InstallShield
IDE. Windows Installer properties allow you to further customize your setup by setting properties such as the telephone number for technical support that appears in
the Add/Remove programs dialog on an end user’s machine.
Figure 4-22.
The Property Manager view.
Properties that appear in all capital letters are called public properties, and can be
changed by the end user on the command line at run time. All others must be set
before the release is built or—at run time—through a custom action or dialog’s
behavior.
InstallShield Software Corporation
Advanced Views • 4-39
Setup Design
The most important step in designing any setup is to lay out the various elements,
the building blocks of the setup. You need to think both from the end user’s perspective, as well as your own.
Figure 4-23.
Setup Design view.
You can design the entire setup hierarchy for your application visually under the
Setup Design view. This is the only view in which you can associate components
with features and subfeatures.
To go to this view, click the Setup Design shortcut on the checklist.
Features
Features are the building blocks of your application from the end user’s perspective.
They can be installed or uninstalled based on the end user’s selections. Your entire
application should be divided into discrete features that perform a specific purpose.
Features can be created in both the Setup Design view and the Features view.
To go to the Features view and design only your features, click the Features shortcut
on the checklist.
Components
Components allow you to group your application data together. Unlike features,
components constitute the developer’s view of a project—containing data such as
files, registry entries, and shortcuts. Components are associated with features in the
Setup Design view, and a component may belong to more than one feature. Components can be created in both the Setup Design view and the Components view.
To go to the Components view and design only your components, click the Components shortcut on the checklist.
4-40 • Using InstallShield Developer
InstallShield Software Corporation
Merge Modules
Merge Modules allow you to install distinct, pre-existing pieces of functionality. For
example, if your application requires Visual Basic® run-time DLLs, you can include
the Visual Basic Virtual Machine merge module, rather than attaching a file in your
setup and trying to determine its installation requirements.
Merge modules can be added to your setup in the Objects/Merge Modules view,
which can be accessed from the checklist.
Files, Registry Data, and Shortcuts
Files, registry data, and shortcuts are elements that are added to a component to
complete the hierarchy, as shown in Figure 4-23.
Advanced Settings
Advanced settings allow you to handle installation of components with special
requirements. By specifying the advanced settings, you can publish your component,
register COM servers, file extension servers, and MIME types, and so on. You can
also use the component’s advanced settings to create an application paths entry in
the registry.
Sequences/Actions
For Standard projects, the Sequences/Actions view appears under the Advanced
Views. See See “Sequences/Actions” on page 4-32 for complete information about
this view.
InstallShield Software Corporation
Advanced Views • 4-41
Components
Components are setup-authoring tools that help you organize similar application
data, such as files, registry entries, and shortcuts, into logical groups. Unlike features
they constitute the developer’s view of a project.
Figure 4-24.
Components view.
You can create and modify components to a limited extent in the Project wizard’s
Application Components panel and to a greater degree in the IDE’s Setup Design
view or the Components view. To go to the Components view and focus only on
your project’s components, click the Components shortcut on the checklist.The
Components view allows you to create, edit, and delete components in your project.
To navigate to this view, click the Components shortcut on the checklist.
Component-Feature Relationships
Components are associated with features in the Setup Design view or in the Project
wizard’s Setup Design panel. For more information, see the online Help Library
topic “Associate Components with Features.”
4-42 • Using InstallShield Developer
InstallShield Software Corporation
Direct Editor
The Direct Editor provides the ability to edit virtually all MSI tables. The Direct
Editor can run in two different modes—one allowing you to edit tables in the
project file (project edit mode), and the other allowing you to edit tables in a compiled MSI file (MSI-only mode). Project edit mode is accessible when working on an
InstallShield project (.ism) file. MSI-only mode is accessible when you open a MSI
file using the Open MSI/MSM wizard.
Figure 4-25.
Direct Editor.
When you click on a table from the tree view, the contents of that table appear in the
pane to the right of the tree. Columns can be sorted by clicking on the column headers. If you press F1 while a standard MSI table is selected, the MSI Help opens to
provide you information about that specific table. Custom tables open to the MSI
help main page. InstallShield tables open to the Direct Editor topic in the
InstallShield online help.
The functionality of the Direct Editor remains the same in both modes; you can also
add a custom table by right-clicking the Tables node and selecting the appropriate
command, add and remove records from tables, search and replace, cut/copy/paste
records or fields, and edit individual fields in the tables. Contiguous records can be
selected simultaneously for cutting or copying to the clipboard. Pasted records
appear at the bottom of the table.
You should consider the following when using the Direct Editor in project edit
mode:
• The File table displays only static data while in project edit mode. Other information may be placed into the File table at build time.
• Unlike the corresponding tables in the MSI, the Binary and Icon tables in the
.ism do not store binary data. Rather, they store links to build-source-paths.
InstallShield Software Corporation
Advanced Views • 4-43
• Column attributes for both standard tables and InstallShield tables cannot be
altered while in project edit mode. They can, however, be edited for custom
tables. Column attributes can be edited in all three types of tables in MSI direct
edit mode.
• You cannot use localizable properties in the Directory table.
When the Direct Editor is used in project edit mode, the Direct Editor appears under Advanced
Views in the Checklist and changes you make are reflected in corresponding InstallShield views
(if available). However, in MSI direct edit mode, the InstallShield Today, Help, and Direct Editor
views are the only ones available.
InstallShield Developer includes a comprehensive online tutorial, covering major aspects of setup
design. This tutorial is available from the InstallShield Developer online help.
4-44 • Using InstallShield Developer
InstallShield Software Corporation
5
Advanced Features
Chapter Contents
InstallScript . . . . . . . . . . . . . . . . . . . . . . . . . .
Using InstallScript in Custom Actions . . . . . .
Basic MSI Projects . . . . . . . . . . . . . . . . .
Standard Projects . . . . . . . . . . . . . . . . . .
Creating and Using a Custom Action. . . . . .
InstallShield Developer provides you with several
advanced features that help you create more complex
setups easily. These features greatly expand the choices
you have in creating a setup by allowing you some extra
abilities for installation. The advanced features covered in
this chapter include the ODBC view, the Merge Modules
view, and the Custom Actions view. Additionally,
preparing your setup for deployment over the Internet is
discussed.
5-3
5-3
5-3
5-3
5-3
Globalizing a Setup. . . . . . . . . . . . . . . . . . . . 5-4
Language Support . . . . . . . . . . . . . . . . . . . 5-4
Steps to Globalize a Setup . . . . . . . . . . . . . 5-4
Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5
Patching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5
Automation Interface . . . . . . . . . . . . . . . . . . . 5-6
Disk Spanning . . . . . . . . . . . . . . . . . . . . . . . . 5-6
Using the Release Wizard . . . . . . . . . . . . . 5-6
Limitations . . . . . . . . . . . . . . . . . . . . . . . . . 5-6
Validation . . . . . . . . . . . . . . . . . . . . . . . . . . .
Validating Your Setup . . . . . . . . . . . . . . . .
Viewing the Scan Results . . . . . . . . . . . . . .
Validation Messages . . . . . . . . . . . . . . . . .
5-7
5-7
5-8
5-8
Source Code Control Integration . . . . . . . . . . . 5-8
COM Registration Overview . . . . . . . . . . . . . . 5-9
Extracting COM Information . . . . . . . . . . . . 5-9
Using Self-Registration . . . . . . . . . . . . . . . . 5-9
InstallShield Software Corporation
5-1
5-2
InstallShield Software Corporation
InstallScript
InstallShield Developer supports much of the same InstallScript used in
InstallShield Professional.
InstallScript provides users of previous versions of InstallShield software the opportunity to use a familiar scripting language. Instead of having to author new DLLs or
EXEs for custom actions, you can leverage the power and ease of InstallScript to
extend the functionality of your installation package.
In a Standard setup project, you can use the InstallScript view to author your setup.
Using InstallScript in Custom Actions
Basic MSI Projects
In a Basic MSI project, you can use custom actions to run InstallScript in your setup
project.
Standard Projects
In a Standard project, you might use an InstallScript custom action to provide functionality in an execute sequence where the default event handlers are not scheduled
appropriately for your setup's needs.
Creating and Using a Custom Action
Follow the steps below to author an InstallScript custom action and execute it in
your setup:
1.
2.
3.
4.
5.
Add a blank Setup.rul to your InstallScript files.
Write an entry-point function.
Compile the script.
Create a custom action that launches your InstallScript file.
Invoke the InstallScript custom action by either including it in a sequence or
executing it as a control event (Basic MSI projects only).
6. Debug if necessary.
As with other custom actions, changes made to the system via InstallScript custom actions are not
automatically restored when the package is uninstalled. Because InstallScript custom actions are
not logged and removed by the uninstaller, you must write a corresponding custom action to
uninstall any changes your custom action makes.
InstallShield Software Corporation
InstallScript • 5-3
Globalizing a Setup
For more detailed information about globalization using InstallShield Developer, see Chapter 6
“Globalizing Your Setup.”
InstallShield supports many powerful features that allow you to easily customize
your setup for global distribution. Using these features, you can create a single setup
that is localized in any number of languages and can handle conditional installation
of language-specific files.
Language Support
In order to localize a setup in a particular language, you must purchase support for
that language from InstallShield Software Corporation. To see which languages are
supported in your edition of InstallShield Developer, navigate to the General Information view and look at the project properties. Under the Setup Languages property, click “Show only available languages.”
Check the InstallShield Web site frequently for the availability of international editions. If, for example, you have purchased an English edition of InstallShield with
no additional language support, you can create only an English setup. If you also
include setup resources or language-specific files for a second or third language,
InstallShield Developer creates only an English setup and does not include the nonEnglish files.
Steps to Globalize a Setup
Globalizing a setup primarily involves separating code from language-specific
resources and files. You may also need to distribute separate files for your setup,
such as graphics, license files, or custom actions, depending on the language in
which the setup is running. Another consideration is whether you need to install different application files depending on the target system’s locale.
InstallShield enables globalization by dividing setup authoring into the following distinct tasks:
1.
2.
3.
4.
5.
Specify the languages your setup will include.
Create a string table for each supported language.
Modify end-user dialogs as necessary for each language.
Mark any language-dependent components.
Select which languages to include in the release.
It is strongly recommended you develop multi-language installation projects on Windows NT 4,
Windows 2000, or later. Operating system limitations on Windows 9x prevent creation of an
installation program that uses multiple extended character sets or code pages.
5-4 • Advanced Features
InstallShield Software Corporation
Transforms
A transform (.mst file) is a simplified Windows Installer database that contains the
differences between two MSI databases. Transforms allow an administrator to apply
modified settings to a database when deploying an installation package.
For example, a user may need to customize a program in different ways for different
departments in their company. The traditional office suite comes with a spreadsheet
program, a word processor, and a presentation tool. The accounting department
may need only the spreadsheet and the presentation programs, while the writing
department may need the word processor and the spreadsheet. A third department
may need the entire suite of applications.
Rather than manually setting up every person in the company, a user can take the
original setup of the entire suite, customize it to the needs of each department, and
then create a transform between the two packages. A transform needs to be created
for each separate product configuration.
Once a transform has been created, it can be applied at run-time, depending on
whose machine the application is being installed. For example, you can check if the
target machine is in the accounting department. If it is, the accounting transform is
applied to the original setup, and only the spreadsheet and presentation programs
are installed.
InstallShield Developer makes the job of creating multiple configurations of your
product as easy as stepping through a wizard. The Transform wizard prompts you
for all the information required to make a transform that configures your setup to
the end users’ needs.
Patching
Patching is a streamlined process for updating earlier versions of a setup package,
thereby upgrading the application. Instead of requiring your users to uninstall outdated versions and install the newer version, you can distribute just the bits and portions of the database necessary to update your application’s files and setup to a
specific version.
A patch is delivered in the form of a patch package (.msp) file, which a user can
apply to an installed product. A patch package is capable of updating as many earlier
versions of a setup package as are required; it contains separate transforms and
instructions for updating each previous version you specify.
The following steps outline the process of creating a patch package:
1. Prepare the earlier versions and the most recent version of the setup package.
2. Run the Patch Creation wizard to define your patch and create the package.
3. Test the patch by applying it to installed versions on various systems.
InstallShield Software Corporation
Transforms • 5-5
Automation Interface
The InstallShield Help Library explains how to use the IDE to author all of the elements of your setup and then build a release. For advanced developers, InstallShield
Developer 7.0 exposes a COM interface that allows you to perform many of the
same tasks from a program, such as a Visual Basic® executable, or a script, such as a
VBScript file in Windows Scripting Host. By calling methods, setting properties,
accessing collections, and so on, through the automation layer, you can open a
project and modify its features and component data in many of the same ways that
you would in the IDE.
The highest-level object in the automation interface is ISWiProject. The first thing
you must do to access the interface is create this object. Then, you can use its
objects, methods, and properties to modify your setup project.
The automation interface affects a project only at design time, and not run time.
Disk Spanning
As programs become larger, the need for disk spanning increases. A few years ago,
this meant shipping your product on multiple floppy disks. The standard is now to
use CD-ROMs. Although the storage space on a CD is significantly more than what
is available on a floppy disk, many products require even more space. Multimedia
tutorials, vast help libraries, and graphic-rich programs can result in a product that is
larger than 650 MB—the size of a standard CD.
If your setup requires more than one floppy disk, CD, DVD, or custom-sized media
disk, you need to span it across multiple disks.
Using the Release Wizard
The only way to define how your setup spans across multiple disks is to use the
Release wizard. The wizard’s panels walk you through the process of creating your
release for any size media you choose, and lets you specify how your files will span
across multiple disks. You can also specify the compression to apply to these files.
The wizard offers you the choice of having InstallShield automatically span your
setup across disks, if necessary, or you can customize how you want your setup files
to be split. If you plan on customizing the way your setup spans across multiple
disks, refer to Disk Spanning Rules to reduce problems with your setup.
Limitations
Due to limitations of the Windows Installer service, you cannot run multi-disk setups on a non-removable drive. For example, if your setup spans two CDs, you need
to physically burn the CDs in order to test your setup. If you try to run it from a
fixed drive, the setup will fail.
5-6 • Advanced Features
InstallShield Software Corporation
Validation
Validating a project involves applying a set of internal consistency evaluator (ICE)
rules to your setup project. These ICEs are designed by Microsoft to ensure that
your resulting setup package contains a valid database that performs its actions correctly.
Validating your project is important for fulfilling Windows 2000 logo requirements because your
Windows Installer setup package must pass Msival2.exe, which uses the same ICEs. Therefore, if
you are interested in achieving Windows 2000 logo, it is recommended that you use the Windows 2000 Logo Validation suite to validate your setup package.
Validating Your Setup
To validate your setup project:
1. First complete a successful build. This build cannot be compressed into
Setup.exe, or the validation tool will not run.
2. Select Validate from the Build menu to display the Validate submenu.
3. Select the validation you want to run. The three different types of validation
are explained below.
Validation Type
Description
Full MSI Validation Suite
This validation scans your project to
ensure that all aspects of it are valid. Your
built .msi package is compared against
the ICE rules. The results of this validation
are displayed in the Validate window at
the bottom of the IDE. All warnings,
errors, and failures are displayed, listing
the violated ICE rule as well as the aspect
of your setup that broke this rule.
Windows 2000 Logo Validation Suite
The validation rules for Windows 2000
Logo are stricter than the other types of
validation. The Full MSI Validation Suite
checks if your project is valid, meaning
that it should work. The Windows 2000
Logo validation not only checks if your
project is valid, but it also checks if it
complies with Windows 2000 Logo
standards.
Merge Module Validation Suite
The Merge Module Validation tool is the
merge module version of the Full MSI
Validation suite. Your built merge module
is compared against ICE rules to help
ensure that it will function properly.
InstallShield Software Corporation
Validation • 5-7
Viewing the Scan Results
The results of the validation scan are displayed in the Validations tab of the Output
window and are saved to a text (.txt) file in a Validations folder under the release
folder. You can view this file either by navigating to your build directory, or by navigating to the Releases view and selecting the Validations folder under your release.
Validation Messages
Validation messages are broken down into three categories:
• Error Messages—Describe problems with your setup database, such as having duplicate component GUIDS.
• Warnings—Describe problems in your database that may occur in certain circumstances.
• Failures—Occur when your database has severe enough problems that the
validation tool might not be able to run.
Source Code Control Integration
InstallShield Developer features several options for managing versions of your
project file in source code control software. InstallShield Developer is capable of
interacting with any source control system that complies with the Microsoft Source
Control Interface and uses the default program on the development system. If none
is installed, the source control options are not available.
To save disk space in your source control database, InstallShield Developer converts
your setup project or merge module (.ism) file to a text (.isv) file when you first add
your project to your source control program through the IDE. Before checking a
file in to source control, InstallShield Developer updates the .isv file.
A typical scenario for using InstallShield Developer’s source code control integration is outlined below:
1.
2.
3.
4.
5.
6.
Create the InstallShield project.
Add the project to your source control program.
Check the project out of source control.
Edit the project.
Save the project.
Check the project back in to source control.
You can streamline the above process by having InstallShield Developer automatically add new
projects to source control or check out edited projects, for example. For more information, see the
Source Control tab of the Options dialog (available from the Tools menu).
5-8 • Advanced Features
InstallShield Software Corporation
COM Registration Overview
COM servers, commonly known as self-registering files, can be registered in one of
two ways:
• Extracting COM information
• Using self-registration
Extracting COM Information
When possible, it is recommended that you extract the COM information from your
COM servers, which places the COM-related information in the Class, ProgId,
TypeLib, and Registry tables of your MSI database. (You can view these tables using
the Direct Editor.)
You can extract COM information from your COM servers in either of the following ways:
• Use the Component wizard.
• Set a component’s Extract at Build property to Yes.
You can also manually add COM information to a component in the Advanced Settings view for a component.
Using Self-Registration
You can also use the built-in self-registration functions of your COM server. To use
self-registration, you can mark an individual file (.dll, .ocx, .exe, .tlb, or .olb) as selfregistering, or mark a dynamic link as self-registering.
When you mark one or more files as self-registering, the IDE adds data to the ISSelfReg table of your MSI database, and adds some custom actions related to self-registration to your installation Execute sequence. For details, see the online Help
Library topic “Self-Registration.”
InstallShield Software Corporation
COM Registration Overview • 5-9
5-10 • Advanced Features
InstallShield Software Corporation
6
Globalizing Your Setup
Chapter Contents
Language Support . . . . . . . . . . . . . . . . . . . . . 6-3
Steps to Globalize a Setup . . . . . . . . . . . . . . . 6-3
How InstallShield Developer Determines
Which Language the Setup Runs In . . . . . . . . . 6-3
Display the Language Dialog to the User . . . 6-4
InstallShield Developer supports many powerful features
that allow you to easily customize your setup for global
distribution. Using these features, you can create a single
setup that is localized in any number of languages and
can handle conditional installation of language-specific
files.
The Project’s Default Language . . . . . . . . . . . . 6-4
Setting the Default Language . . . . . . . . . . . 6-4
What the Default Language Affects . . . . . . . 6-5
Customizing Language Support . . . . . . . . . . . 6-5
Installing Files of the Same Name . . . . . . . . . . 6-5
Globalization Tips . . . . . . . . . . . . . . . . . . . . . 6-6
Globalization Code Page Requirements. . . . . .
Installing Code Pages . . . . . . . . . . . . . . . . .
Windows NT 4.0 . . . . . . . . . . . . . . . . . .
Windows 2000 . . . . . . . . . . . . . . . . . . .
InstallShield Software Corporation
6-6
6-7
6-7
6-7
6-1
6-2
InstallShield Software Corporation
Language Support
In order to localize a setup in a given language, you must purchase support for that
language from InstallShield Software Corporation. To see which languages are supported in your edition of InstallShield, navigate to the General Information view
and look at the project properties. Under the Setup Languages property, click “Show
only available languages.”
Check the InstallShield Web site frequently for the availability of international editions. If, for example, you have purchased an English edition of InstallShield with
no additional language support, you can create only an English setup. If you also
include setup resources or language-specific files for a second or third language,
InstallShield creates only an English setup and does not include the non-English
files.
Steps to Globalize a Setup
Globalizing a setup primarily involves separating code from language-specific
resources and files. You may also need to distribute separate files for your setup,
such as graphics, license files, or custom actions, depending on the language in
which the setup is running. Another consideration is whether or not you need to
install different application files depending on the target system’s locale.
InstallShield enables globalization by dividing setup authoring into the following distinct tasks:
1.
2.
3.
4.
5.
Specify the languages your setup will include.
Create a string table for each supported language.
Modify end-user dialogs as necessary for each language.
Mark any language-dependent components.
Select which languages to include in the release.
It is strongly recommended you develop multi-language installation projects on Windows NT 4 or
Windows 2000. Operating system limitations on Windows 9x prevent creation of an installation
program that uses multiple extended character sets or code pages.
How InstallShield Developer Determines
Which Language the Setup Runs In
Even though you can localize a setup in as many languages as your project supports,
InstallShield will run a setup in only one language. When Setup.exe first launches,
InstallShield determines which language to launch the setup in depending on the
languages you include in the setup or the end user’s selection, as described below.
If your setup has support for only one language, then it will always run in that language.
InstallShield Software Corporation
Language Support • 6-3
When Setup.exe initializes, it determines the target system’s language. If you selected
more than one language in the Advanced Settings panel of the Release wizard, and
one of those languages matches the target system’s language, then InstallShield
launches the setup in the target system’s language.
If the target system’s language is not present in your setup, then InstallShield
launches the setup in the default language.
Display the Language Dialog to the User
You also have the option of enabling the Language dialog so that your end user can
choose which language the setup should run in.
The Language dialog is always displayed in the default language, which you can also
set in the Setup Languages panel.
The dialog presents a list of available languages, which are the same languages you
checked in the Setup Languages panel. Once a selection is made, InstallShield
applies a transform containing all of the user interface resources for that language
and then launches the setup in the selected language.
Since the Language dialog is displayed by Setup.exe, you will need to make sure that
you create a Setup.exe in the Advanced Settings panel.
The first time you select a language in the Language Dialog, the setup will run in the proper language. However, if you then select a different language from the Language Dialog and run the
setup for a second time, it will run in the language that you chose the first time through. Therefore, once a setup has been run in a certain language, it can no longer be run in any other language on the same machine due to caching performed by the Windows Installer service.
The Project’s Default Language
One of the project’s supported languages must serve as its default language. Wherever you see a list of languages while authoring your setup (such as in the list of
string tables, the project’s Setup Languages property, or the component Languages
property), the default language is signified with a red flag.
Setting the Default Language
Initially, the default language is the language that the IDE is running in, usually
English. Follow the steps below to change the default language:
1. In the General Information view, open up the String Tables item to view the
string tables for all of your project’s languages.
2. Right-click on the language that you want to serve as the default, and select
“Make default” in the resulting context menu.
You can also set the default language by clicking the “Make default” button in the Release wizard’s Setup Language panel.
6-4 • Globalizing Your Setup
InstallShield Software Corporation
What the Default Language Affects
The default language determines all of the following:
• The strings throughout the IDE’s property sheets—such as the feature Display Name property or the shortcut Description property—are all from the
default language’s string table. You can edit the values for the default language
directly in the property sheets.
• The text in the Dialog editor that you see while editing a language-independent
dialog comes from the default language’s string table.
• The default language is the language that the setup runs in if you do not let the
end user select a language in the Language dialog. If you do display the Language dialog by selecting the Language dialog option in the Release wizard, the
Language dialog is displayed in the default language.
Customizing Language Support
If you need your setup to run in languages that are not supported by InstallShield’s
international editions, or you would like to create your own translations for some of
the supported languages, you can add support for those languages with the New
Language wizard. This wizard allows you to select the languages that you would like
to support and the projects that you would like to add these languages to. It then
adds the languages you choose to the list of available languages for your setup.
To launch the New Language wizard, select Add New Language from the Tools
menu. You must first close any open project, or the menu item is grayed out.
The New Language wizard is available only after you add an InstallShield Developer 7.0 language pack. Visit http://www.installshield.com/isd/info/language_packs.asp for information.
Installing Files of the Same Name
The Source Location property names a subfolder where this component’s files will
be stored in the source disk images, if the component’s files are not compressed.
The component’s files will be copied to this subfolder in your release image.
This property does not require a value, and in most cases, may be left blank. However, should you enter a value, it must be a valid Windows folder name.
One instance where the Source Location property could be used is when you are
creating a setup containing more than one language. In this scenario, you may have
multiple files with the same name. You can create a component for each language
and set the Source Location property for each one. With the Source Location property set, any file with the same name can be copied onto the disk in two different
locations, without the risk of being overwritten.
For example, create two components called German and English. For the first component, set the Source Location property to GermanVersion. For the second, set
InstallShield Software Corporation
Customizing Language Support • 6-5
the Source Location property to EnglishVersion. Create two files called Test.txt, giving them slightly different contents. Assign each file to a component.
When you build your setup with uncompressed files, two separate folders on the
disk images will be created, one called GermanVersion and one called EnglishVersion. Separate versions of Test.txt will be copied to each of these folders, but neither
copy will be overwritten.
The Source Location property should not be confused with the destination location. While it is
conceivable that you may want to copy both versions of the file to the user’s machine, it is more
likely that you would want to filter the files by language.
Globalization Tips
Consider these general points when designing your setup:
• The goal of global distribution is a localized product that is international in
scope and readily adaptable to specific areas of the world.
• The key to globalization is resource and code separation, plus country and language independence.
• Globalizing your setup requires a design that is simple and modular.
• Creating a worldwide specification package means incorporating global
requirements into the setup specifications from the beginning. InstallShield’s
globalization features make it an ever-present and seamless venture.
• Make bitmaps and icons culturally sensitive. What may be acceptable in one
country could be misleading or offensive in another.
• English strings are usually shorter than equivalent text strings in other languages. Translated strings grow an average of 30-40%. This implies that both
static and temporary storage areas will increase in size.
• When designing prompts, use only one-half of the available space to allow for
expansion.
• Try to avoid hard-coding element positioning and size on the screen, since
these items may change when the element is translated.
Globalization Code Page Requirements
If you plan on distributing any setups that run in a double-byte language (for example, Japanese, Greek, or Korean), you need to include the code pages for those languages. The code pages allow your system to accurately represent the characters of
those languages. If your build machine does not have the code pages installed, your
setup will not display double-byte languages properly, and the build will report an
error.
6-6 • Globalizing Your Setup
InstallShield Software Corporation
Installing Code Pages
Follow the steps below to install code pages onto your build machine.
Windows NT 4.0
1. Insert the Windows NT 4.0 CD into your CD-ROM drive.
2. Navigate to the LanguagePack directory.
3. Right-click on the code page for the language that you would like to install and
select Install from the context menu.
Windows 2000
1. Launch the Regional Options applet from the Control Panel.
2. Select the languages for which you would like to add support in the “Language
settings for the system” option.
3. Click OK to have these code pages installed.
4. When prompted, insert the Windows 2000 CD to complete the installation.
It is strongly recommended you develop multi-language installation projects on Windows NT 4,
Windows 2000, or later. Operating system limitations on Windows 9x prevent creation of an
installation program that uses multiple extended character sets or code pages.
InstallShield Software Corporation
Globalization Code Page Requirements • 6-7
6-8 • Globalizing Your Setup
InstallShield Software Corporation
Frequently Asked Questions
7
Chapter Contents
This chapter deals with some of the questions that
InstallShield Developer users most frequently ask,
grouped into the following topics. Where the techniques
or steps to perform a specific task are different in
Standard projects and Basic MSI projects, answers for
each type of project are displayed.
•
•
•
•
•
•
•
•
•
•
•
•
General
Files and Folders
Features and Components
Shortcuts
Registry
Properties
Conditions
User Interface
Custom Actions
Building Releases
Deployment
Uninstallation
If you have a question about InstallShield Developer that
is not answered here, you should check the InstallShield
Knowledge Base, available on the Support page of
InstallShield’s Web site. Your question may already be
answered there.
InstallShield Software Corporation
General Questions. . . . . . . . . . . . . . . . . . . . .
What is the Difference between Standard
and Basic MSI Setup Projects?. . . . . . . . . . .
Similarities Between Standard and
Basic MSI Project Types . . . . . . . . . . . . .
Standard Projects . . . . . . . . . . . . . . . . . .
Basic MSI Projects . . . . . . . . . . . . . . . . .
Where Can I Find Information About
Windows Installer Run-Time Errors?. . . . . . .
How Can I Be Sure the Target Machine
Has the Windows Installer Service? . . . . . . .
Where Can I Access Updated
Merge Modules? . . . . . . . . . . . . . . . . . . . .
7-5
7-5
7-5
7-5
7-6
7-7
7-7
7-7
Files and Folders Questions . . . . . . . . . . . . . . 7-7
When Do I Self-Register Files vs.
Only Extracting COM Information? . . . . . . . 7-7
How Does Windows Installer Determine
Which Files Should Be Overwritten? . . . . . . 7-8
How Do I Associate File Types
with My Program? . . . . . . . . . . . . . . . . . . . 7-8
How Do I Specify the Destination Folder
for My Application? . . . . . . . . . . . . . . . . . . 7-9
Using INSTALLDIR . . . . . . . . . . . . . . . . . 7-9
Specifying File Destination Folders. . . . . . 7-9
Hard-Coding a Destination Directory . . . . 7-9
What is the Difference Between
INSTALLDIR and MSI_TARGETDIR? . . . . . . 7-10
How Do I Register a COM Server? . . . . . . 7-10
How Do I Install and Configure a
Windows NT Service? . . . . . . . . . . . . . . . 7-10
7-1
How Do I Create an Empty Folder? . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . .
How Do I Set a Key File for a Dynamic
File Link? . . . . . . . . . . . . . . . . . . . . . . . . .
What Happens If I Put More Than One
Executable in the Same Component? . . . . .
7-10
7-10
7-10
Features and Components Questions . . . . . . .
How Do I Control the Items Appearing
in a Feature’s Context Menu? . . . . . . . . . .
How Do I Conditionally Select A Feature? .
Standard Project . . . . . . . . . . . . . . . . .
Basic MSI Project . . . . . . . . . . . . . . . . .
How Do I Conditionally Hide a Feature? . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . .
7-11
Shortcuts Questions . . . . . . . . . . . . . . . . . . .
How Do I Create Shortcuts? . . . . . . . . . . .
How Do I Create An Internet Shortcut?. . . .
How Do I Create a Shortcut to a Folder? . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
MSI . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-13
7-13
7-13
7-13
7-13
7-14
Registry Questions . . . . . . . . . . . . . . . . . . . .
How Do I Read Data from the Registry? . . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . .
How Do I Write a Property’s Value
to the Registry? . . . . . . . . . . . . . . . . . . . .
7-14
7-14
7-14
7-14
7-10
7-11
7-11
7-11
7-11
7-11
7-12
7-12
7-12
7-15
Properties Questions . . . . . . . . . . . . . . . . . . 7-15
How do I Get or Set a Windows Installer
Property in InstallScript? . . . . . . . . . . . . . . 7-15
Conditions Questions . . . . . . . . . . . . . . . . . . 7-16
How Do I Conditionally Install My Setup
Based on the Operating System of the
Target Machine? . . . . . . . . . . . . . . . . . . . 7-16
7-2
How Can I Create My Setup So it Installs
Files Based on the Target Operating
System?. . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Detect Administrator Privileges? .
InstallScript . . . . . . . . . . . . . . . . . . . . .
MSI. . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Detect a First-time Installation? . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
MSI. . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Detect If the User Has Selected
a Specific Feature?. . . . . . . . . . . . . . . . . .
Standard Project . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . .
How Do I Detect If the User is Running a
Particular Operating System? . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
MSI. . . . . . . . . . . . . . . . . . . . . . . . . . .
User Interface Questions. . . . . . . . . . . . . . . .
How Do I Display a License Agreement? . .
Standard Project . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . .
How Do I Validate a Serial Number?. . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
How Do I Populate a List Box at Run Time?.
InstallScript . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . .
How Do I Display a File-Browse
Dialog Box?. . . . . . . . . . . . . . . . . . . . . . .
How Do I Display a Network-Browse
Dialog Box?. . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
Why Can’t I Remove the InstallShield Label
(Branding) from the Setup Dialog Boxes? . .
7-16
7-17
7-17
7-17
7-17
7-17
7-17
7-18
7-18
7-18
7-18
7-18
7-18
7-18
7-18
7-19
7-19
7-19
7-19
7-20
7-20
7-20
7-20
7-20
7-20
7-21
InstallShield Software Corporation
Custom Actions Questions . . . . . . . . . . . . . .
How Do I Search for a File on the User’s
System?. . . . . . . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . .
How Do I Launch My Application
Following Installation? . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
How Do I Place a File in the .msi Database
and Extract It During Run Time? . . . . . . . .
Building Release Questions . . . . . . . . . . . . . .
My Setup Does Not Fit on a Single
Floppy Disk. Why?. . . . . . . . . . . . . . . . . .
Disk Space. . . . . . . . . . . . . . . . . . . . . .
Disk Spanning . . . . . . . . . . . . . . . . . . .
How Do I Get Changes I Make in the IDE
to Take Effect When I Run My Setup?. . . . .
How Do I Build My Project from the
Command Line? . . . . . . . . . . . . . . . . . . . .
How Do I Change Project Properties from
the Command Line? . . . . . . . . . . . . . . . . .
How Do Users Run My Installation
in Silent Mode? . . . . . . . . . . . . . . . . . . . .
Standard Projects . . . . . . . . . . . . . . . . .
Basic MSI . . . . . . . . . . . . . . . . . . . . . .
How Do I Create and Read a Response File
for a Silent Installation? . . . . . . . . . . . . . .
Standard Project . . . . . . . . . . . . . . . . .
Uninstallation Questions . . . . . . . . . . . . . . . .
How Do I Remove Files that Were Created
by My Product? . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
MSI . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Do I Remove Registry Data Created
by My Product? . . . . . . . . . . . . . . . . . . . .
InstallScript . . . . . . . . . . . . . . . . . . . . .
MSI . . . . . . . . . . . . . . . . . . . . . . . . . . .
InstallShield Software Corporation
7-21
7-21
7-21
7-21
7-22
7-22
7-22
7-22
7-22
7-23
7-23
7-23
7-23
7-23
7-24
7-24
7-24
7-24
7-24
7-24
7-24
7-25
7-25
7-25
7-25
7-25
7-3
7-4
InstallShield Software Corporation
General Questions
What is the Difference between Standard and Basic
MSI Setup Projects?
With InstallShield Developer, you have the ability to choose between two different
types of setup projects—Standard and Basic MSI—depending on the needs of your
software installation. InstallShield Developer provides the same intuitive Installation
Development Environment (IDE) for both project types, so your application’s
needs can dictate the project type and your authoring experience does not change.
Additionally, the knowledge gained by learning how to create projects of one type is
directly applicable to projects of the other type.
Similarities Between Standard and Basic MSI Project Types
Both project types create setups that meet the latest Windows Logo requirements.
Both the Standard and Basic MSI projects create installations that have the same
professional, industry-standard look and feel that your end users have come to
expect from InstallShield. They also boast the same range of productivity tools from
a Visual Basic wizard which lets you jump start the installation authoring process to
the Patch wizard which allows you to package your product updates into small redistributables. They also both use the Windows Installer service to modify the operating system so features like Application Self Repair and Install On Demand, as well
as the ability to roll the system back to the last known state in the event of a failed
installation exist for both project types.
Despite the similarities in the project types’ feature sets, there are some important
differences between Standard and Basic MSI projects. Read the descriptions below
to determine which project type is right for your software installation needs.
Standard Projects
Standard is the recommended project type for most users. This project type combines the power and flexibility of the InstallScript programming language with the
robust shell integration features of the Windows Installer.
The Script-Driven Model
With Standard projects, the runtime user interface is rendered and its flow controlled by InstallScript, while the changes that are made to the target operating system are done through Microsoft’s Windows Installer service. The model that this
project type follows is sometimes referred to as an External UI model, because it
does not use the Windows Installer’s native UI rendering capabilities. This type of
setup is also known as the script-driven model, because InstallScript acts as a driver
to the Windows Installer setup.
Using InstallScript as the installation driver has many benefits. The first is that
InstallScript’s event model allows you to create a script driven setup without writing
a single line of code. If you want to add custom functionality, you need only implement the events whose functionality you want to change. If you need more power,
you have the option of using the Custom Action wizard to insert InstallScript cusInstallShield Software Corporation
General Questions • 7-5
tom actions into any point in the Execute sequence. This allows you to run a piece
of InstallScript code at any point during the installation—even while the Windows
Installer Engine is running.
The User Interface abilities for Basic MSI projects are somewhat limited with regard
to the types of controls you can use or the kind of control you have over dialog
events. Standard projects have no such limitation—offering a wide range of standard controls along with the ability to add custom dialog controls. Dialog messaging
in the script allows you to have complete control over how your end user dialogs
behave.
Upgrading Projects Created Using InstallShield Professional
Setup projects created using InstallShield Professional (version 5.5 and later)
upgrade to the Standard project type.
Additional Features for Standard Projects
Standard projects provide a few additional features that are not available in Basic
MSI projects:
• Setup Types view—This view allows the setup developer to easily create different predefined installation configurations for your application, such as Typical or Compact. This view also allows you to select the defaults for the
Custom Setup Type.
• Billboard Support—Runtime billboard support is available only for Standard
projects. Billboards allow you to show bitmaps to the user while files are being
transferred to their machine. You can use these bitmaps to entertain or educate the user.
Basic MSI Projects
Basic MSI projects are recommended for those wanting for a pure MSI setup. They
allow you to author your setup using only the native MSI feature set. The geometry
of your setup dialogs as well as the flow of your setup user interface (UI) is authored
directly in the MSI package, and the Windows Installer Service uses its native user
interface rendering capabilities to display the UI to your end users. The advantages
of this project type are fully realized if you need to author your installation in an
open format.
Basic MSI projects have the ability to run InstallScript code in the form of custom
actions, though the type of InstallScript code that can be run is limited. These
projects also still take advantage of other robust features provided by InstallShield
Developer such as dialog authoring, the ability to call custom actions in standard
windows DLLs, and the ability to specify setup files.
Upgrading Projects Created Using InstallShield—Windows Installer Edition
Projects created using InstallShield—Windows Installer Edition upgrade to the
Basic MSI project type.
7-6 • Frequently Asked Questions
InstallShield Software Corporation
Basic MSI Projects can be easily converted to Standard projects by selecting the “Convert to Standard Project” option on the project menu. However, the conversion process does not convert any
of the custom dialog modifications you have made. The conversion process is irreversible.
Where Can I Find Information About Windows
Installer Run-Time Errors?
You can find information about Windows Installer error messages in the Windows
Installer online help, available by selecting MSI Help Library from the Help menu in
InstallShield Developer. After you open the Windows Installer help system, search
for the topic Windows Installer Error Messages.
How Can I Be Sure the Target Machine Has the
Windows Installer Service?
Although the Windows Installer service is built into Windows 2000 and Windows
Me, and later Windows operating systems, other Windows platforms require that
the service be installed before any Windows Installer setups can run on those systems. InstallShield Developer gives you the option of including the Windows
Installer service with your application setup. If the Window Installer service is not
installed on the target machine, or if an older version exists, your setup installs Windows Installer. When finished, your setup continues with your application’s installation, as you have configured it.
The Build Your Release view gives you the option of including the Windows
Installer service for Windows 95/98 and Windows NT 4. If you are unsure what
platforms your end users run, you might want to include both versions of the Windows Installer service with your setup package.
Where Can I Access Updated Merge Modules?
You can download updated merge modules from the InstallShield Merge Module
Gallery. Visit the gallery at http://support.installshield.com/download/modules.asp.
Files and Folders Questions
When Do I Self-Register Files vs. Only Extracting COM
Information?
If you need to extract COM information, you can accomplish this by setting the
Extract at Build property for the component to Yes. When this is set, InstallShield
Developer scans the component’s key file for COM registration data when you build
a release. The extracted information is placed into the setup package (.msi file) so
InstallShield Software Corporation
Files and Folders Questions • 7-7
that Windows Installer registers the COM server when it is installed or advertised.
This process only extracts COM information.
If your file contains other information that is not COM-related, you may want to set
the self register property for the file for completeness in addition to performing
COM Extraction. To do so, complete the following:
1.
2.
3.
4.
Right-click the file within Developer.
Select Properties.
Check the Self Register box.
Click OK.
How Does Windows Installer Determine Which Files
Should Be Overwritten?
When files are transferred during a setup, and an existing version of a file already
exists on the target machine, the Windows Installer service compares the version,
date, and language of the files to determine which version should remain. The following guidelines apply:
• Versioned files—In all cases, the file with the highest version is maintained,
even if the file with the higher version is one that is already on the target
machine. A file of any version is maintained over unversioned files.
• File language—All other things being equal, the file that is the same language
as the setup is maintained over different language versions of the file. The only
exception to this rule applies to multiple language files. Files with multiple languages are maintained over single-language versions of a file.
• Date—If the modified date of a file already present on the target machine is
later than the creation date of that file, the file is not overwritten. This rule
protects user preference files from being deleted during an upgrade or reinstallation.
If you enable MSI File Logging from the Settings dialog (available from the Project menu), you
can see a comprehensive listing of why files were or were not overwritten.
How Do I Associate File Types with My Program?
If your program creates or relies on custom file types, you need to associate those
file types with your program on the target machine. File types can be configured in
the File Extensions view.
To create a file extension, do the following:
1.
2.
3.
4.
7-8 • Frequently Asked Questions
Click File Extensions in the checklist.
Right-click on the File Extensions item.
Select New Extension from the context menu.
Specify the extension to match the file type you want to configure. For example, if you wanted to associate your program with text files, you would specify
InstallShield Software Corporation
the .txt extension. If you wanted to associate your program with bitmap files,
enter .bmp.
5. Configure your file association’s properties. These properties include the program with which you would like to associate this extension, the icon for all
files with this extension, and the feature that registers this file type.
How Do I Specify the Destination Folder for My
Application?
You can use the General Information property, INSTALLDIR, to specify a destination folder and the Files view to specify destination for your files. In addition, you
can specify a hard-coded destination directory in the Files view.
Using INSTALLDIR
You specify the destination folder for your application through the INSTALLDIR
property in the General Information view. This property defaults to [ProgramFilesFolder]Your Company Name\Default.
Specifying File Destination Folders
You specify the destination folder for all of your files individually when you first add
them to your project.
To specify the destination folder of a new file, perform the following:
1. Click Files in the checklist.
2. From the drop-down list at the top, select the feature with which you would
like your file to be installed.
3. Browse to your file on your system using the top half of the view.
4. Drag your file to a target folder in the lower part of this view.
Hard-Coding a Destination Directory
If you want to indicate a hard-coded destination directory for your project files, you
can do this in the Files view.
To hard-code a destination directory, do the following:
1. Click on Destination Computer in the lower-left pane
2. Select Add from the context menu. A new folder appears.
3. In the New Folder name field, type the drive letter followed by a colon (for
example, C:).
4. Press Enter.
Figure 7-1.
Create a hard-coded destination
directory.
InstallShield Software Corporation
Files and Folders Questions • 7-9
What is the Difference Between INSTALLDIR and
MSI_TARGETDIR?
INSTALLDIR represents the main product installation directory for a regular
installation, such as the user launching Setup.exe or your .msi database.
MSI_TARGETDIR represents the installation directory for an administrative installation (when the user runs Setup.exe or MsiExec.exe with the /a command-line
switch).
How Do I Register a COM Server?
The Component wizard will create components that register COM servers (self-registering files). For details, see the topics “Install a COM Server,” “Extracting COM
Registration at Build Time,” and “Self-Registration” in the online Help Library.
How Do I Install and Configure a Windows NT
Service?
The Component wizard can create components that install and configure Windows
NT Services. For details, see Install NT Services Component Type and Control NT
Service Component Type in the online Help Library.
How Do I Create an Empty Folder?
InstallScript
The CreateDir function creates an empty directory.
Basic MSI
The CreateFolder table of an MSI database (exposed in Direct Editor) enables you
to create empty directories.
For an example, see article Q103218 in the InstallShield Knowledge Base.
How Do I Set a Key File for a Dynamic File Link?
A file contained in a dynamic link cannot be the key file of a component.
To set a key file for a component containing a dynamic link, add a static link to the
desired file, and then set the static link to be the key file of the component. In the
dynamic link settings, enter the full name of the key file in the “Exclude files with
the following extensions” field.
For example, suppose you have a source directory containing several .txt files, and
you want the file called Key.txt to be the key file. First, add a static link to Key.txt to
a component, and set Key.txt as the key file. Next, create a dynamic link with the
same source folder, setting the “Include files with the following extensions” setting
to “*.txt” and the “Exclude files with the following extensions” setting to “Key.txt”.
7-10 • Frequently Asked Questions
InstallShield Software Corporation
For Dynamic File Links containing subdirectories, you cannot set a key file for any of the subdirectories’ components. The first file in each subdirectory component is automatically set to the key
file.
What Happens If I Put More Than One Executable in
the Same Component?
According to the Best Practices rules, a component should contain at most one executable, DLL, or help file. One reason for this rule is the following:
At run time, if the user chooses Repair for an installed product, Windows Installer
checks for the existence of each installed component’s key file: if the key file is missing, Windows Installer reinstalls the missing component. Therefore, if a file that is
not the key file of a component is missing, it will not be restored during Repair
mode.
Features and Components Questions
How Do I Control the Items Appearing in a Feature’s
Context Menu?
For an installation that uses MSI dialog boxes, the items appearing in a feature’s context menu (in the CustomSetup dialog box) are controlled by the Advertise, Remote
Installation, and Required properties of a feature and its components.
• To hide the item “This feature will not be available”, set the feature’s Required
property to Yes. (Note that setting Required to Yes does not prevent the user
from deselecting the feature by setting the REMOVE property at the command line.)
• To hide the item “This feature will be installed when required”, set the feature’s Advertise property to Disallow Advertise.
• The items “This feature will be installed on local hard drive” and “This feature
will be installed to run from network” are displayed based on the feature’s and
its components’ Remote Installation settings.
How Do I Conditionally Select A Feature?
Standard Project
The FeatureSelectItem function enables you to select or deselect a feature displayed
in the SdFeatureTree dialog box.
Basic MSI Project
The Condition property of each feature allows you to specify a non-default Install
Level value if the condition you specify succeeds.
InstallShield Software Corporation
Features and Components Questions • 7-11
For example, to deselect a feature if the user does not have administrator privileges:
1. Select the desired feature and click its Condition property.
2. Click the browse button.
3. In the Feature Condition Builder, add a new row with Install Level 200 and
Condition “Not AdminUser”.
4. Click OK.
At run time, if the user does not have administrator privileges (that is, if the condition succeeds), the Install Level property for the feature will be set to 200. Since the
default INSTALLLEVEL property for a project is 100, the feature will appear deselected.
How Do I Conditionally Hide a Feature?
InstallScript
The FeatureSetData function accepts a FEATURE_FIELD_VISIBLE constant
that lets you control whether a specific feature will be displayed. For example, to
hide a feature called “HiddenFeature”, include the following function call in your
script:
FeatureSetData(MEDIA,
"HiddenFeature",
COMPONENT_FIELD_VISIBLE, FALSE,
"");
Hiding a feature does not automatically deselect it. To deselect the feature so that its data will not
be installed, call FeatureSelectItem(MEDIA, "FeatureName", FALSE);.
Basic MSI
Any feature given an Install Level of zero will be hidden (and deselected). For example, to hide a feature if the user running your installation program does not have
administrative privileges:
1. Select the feature in the Features view or Setup Design view.
2. Select the feature’s Condition property, and open the Feature Condition
Builder dialog box.
3. Add a new record with Level 0 and condition “Not AdminUser”.
After rebuilding your project and running the installation, the feature will not be displayed or installed if the user does not have administrative privileges.
7-12 • Frequently Asked Questions
InstallShield Software Corporation
Shortcuts Questions
How Do I Create Shortcuts?
Shortcuts allow your end users to have quick access to your product. To create a
shortcut with InstallShield Developer, do the following:
1. Click Shortcuts/Folders in the checklist.
2. In the list of locations under the Shortcuts folder icon, right-click on the location in which you would like to place the shortcut.
3. Select New Shortcut from the context menu. If you need to create your shortcut in a subfolder of the selected location, select New Folder and repeat steps
2 and 3 until you create the final location for your shortcut.
4. Rename your shortcut. The name of the shortcut is highlighted initially, so you
can type your shortcut’s name when you create the shortcut.
5. Configure the shortcut’s properties in the property grid. These properties
include the icon file and index, the target executable for the shortcut (which
must already be included in your setup), and the hot key combination.
How Do I Create An Internet Shortcut?
An Internet shortcut is a text file with the .url extension.
For example, to create an Internet shortcut that opens the InstallShield Web site,
create a text file called InstallShield.url with the following contents:
[InternetShortcut]
URL=http://www.installshield.com
You can then place this file in a component, and install it as you would install any
other type of file. When the user launches the shortcut, the specified Web site opens
in the user’s default browser.
How Do I Create a Shortcut to a Folder?
InstallScript
The AddFolderIcon function will create a shortcut to a folder if you pass the path to
the folder in the third (szCommandLine) parameter.
For example, the following call to AddFolderIcon will create a shortcut to the Common Files folder in the user’s Programs folder:
AddFolderIcon(
FOLDER_PROGRAMS,
// where shortcut will appear
"Shortcut to INSTALLDIR",
// shortcut display name
INSTALLDIR,
// what shortcut launches
"", 0,
// icon file, index
"",
// shortcut key
NULL);
// special settings
InstallShield Software Corporation
Shortcuts Questions • 7-13
MSI
The Target field of a shortcut can contain a directory identifier inside square brackets. For example, to create a shortcut to INSTALLDIR, create a shortcut with the
following properties:
• Display Name: Shortcut to INSTALLDIR
• Advertised: No
• Target: [INSTALLDIR]
Registry Questions
How Do I Read Data from the Registry?
InstallScript
With InstallScript, you can use the RegDBGetKeyValueEx function. For example,
to read the “RegisteredOwner” value from the key
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion,
you can use code similar to the following:
function readRegisteredOwner( )
STRING svRegisteredOwner;
NUMBER nvType, nvSize;
begin
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
RegDBGetKeyValueEx(
"Software\\Microsoft\\Windows NT\\CurrentVersion",
"RegisteredOwner",
nvType,
svRegisteredOwner,
nvSize);
MessageBox(
"Registered owner is: " + svRegisteredOwner,
INFORMATION);
end;
You can set a Windows Installer property equal to the value you read using the
MsiSetProperty function.
Basic MSI
The AppSearch and RegLocator tables can read a value from the registry. To read
the “RegisteredOwner” value mentioned above, add the following record to the
AppSearch table (using Direct Editor):
7-14 • Frequently Asked Questions
Field
Value
Comments
Property
REGISTERED_OWNER
Must be a public property
Signature_
registry_sig
InstallShield Software Corporation
Next, add the following record to the RegLocator table:
Field
Value
Comments
Signature_
registry_sig
Same signature as above
Root
2
HKEY_LOCAL_MACHINE
Key
Software\Microsoft\
Windows
NT\CurrentVersion
Name
RegisteredOwner
Type
2
Registry data
After the AppSearch action runs, the REGISTERED_OWNER property will contain the data read from the registry. If the value is not found, the property will be
undefined (empty).
For more information regarding the AppSearch and RegLocator tables, see the MSI
Help Library.
How Do I Write a Property’s Value to the Registry?
At run time, Windows Installer automatically expands expressions of the form
[PropertyName] in registry data to the value of the property called PropertyName.
For example, to write the value of INSTALLDIR to the registry, create a registry
value whose data is [INSTALLDIR].
This format can also be used for registry key names and value names.
Properties Questions
How do I Get or Set a Windows Installer Property in
InstallScript?
The MsiGetProperty and MsiSetProperty functions get and set Windows Installer
properties. For an example, see “Get or Set a Property” in the online Help Library.
You must include the statement #include "iswi.h" or #include "ifx.h" in
order for the Windows Installer APIs to be available to your script.
InstallShield Software Corporation
Properties Questions • 7-15
Conditions Questions
How Do I Conditionally Install My Setup Based on the
Operating System of the Target Machine?
If you want your setup to run only on certain operating systems—Windows 2000,
for example—you can set this as an installation requirement. If the target system
does not meet the installation requirements you specify, your application cannot be
installed.
To set installation requirements:
1. Click General Information in the checklist.
2. Click Product Properties from the General Information tree.
3. Click the browse button (...) to the right of the Install Condition property to
open the Product Condition Builder dialog.
4. Click in the Condition field to add a new condition.
5. Select the correct operating system version from the properties list (VersionNT or Version9X).
6. Click on the Message field and enter a message to be displayed when the condition fails.
7. Click Add.
8. Click OK.
How Can I Create My Setup So it Installs Files Based
on the Target Operating System?
To conditionally install files based on the target operating system, do the following:
1. Select the Components view (located under Advanced Views) in the checklist.
2. Select the component containing the files you want to install conditionally
based on the operating system of the target machine.
3. Click the browse button (...) to the right of the Condition property to open the
Component Condition Builder dialog.
4. Select the correct operating system version from the Properties list (VersionNT or Version 9X).
5. Click Add.
6. Click OK
If you are working with a Standard Project, you can also select the operating system from Operating Systems property in the Component properties.
7-16 • Frequently Asked Questions
InstallShield Software Corporation
How Do I Detect Administrator Privileges?
InstallScript
In InstallScript, the expression SYSINFO.WINNT.bAdmin_Logged_On returns
TRUE if the user has administrator privileges. (The expression
Is(USER_ADMINISTRATOR, "") returns the same information.)
These expressions return TRUE on Windows 9x.
MSI
The AdminUser property is set if the user running your installation program has
administrator privileges. Therefore, you can use “AdminUser” as an Install Condition, or a condition on a feature, component, or custom action.
The AdminUser property is always set on Windows 9x.
How Do I Detect a First-time Installation?
InstallScript
In InstallScript, the MAINTENANCE variable is FALSE for a first-time installation, and TRUE for maintenance mode or uninstallation. Therefore, you can use an
if-statement like the following for any code you want to run only for a first-time
installation.
if (!MAINTENANCE) then
// code to run for first-time installation
endif;
MSI
In the Windows Installer sequences, the following conditions detect certain types of
installation:
• First-time installation: Not Installed
• Maintenance: Installed
• Uninstallation: REMOVE="ALL" (after the InstallValidate action)
InstallShield Software Corporation
Conditions Questions • 7-17
How Do I Detect If the User Has Selected a Specific
Feature?
Standard Project
In InstallScript, the function FeatureIsItemSelected returns TRUE if a feature is
currently selected in one of the feature-selection dialog boxes (such as SdFeatureTree).
Basic MSI
Windows Installer defines conditions of the form &FeatureName=n, which detect a
feature’s action state. For example, to determine if a feature called ProgramFiles is
selected to be installed locally, and it was not already installed, use the condition
“&ProgramFiles=3”.
See also the MSI Help Library page “Conditional Statement Syntax”.
How Do I Detect If the User is Running a Particular
Operating System?
InstallScript
In InstallScript, the SYSINFO structure is automatically initialized to describe the
target operating system. For specific values to check, see the online Help Library
topic SYSINFO.
MSI
The VersionNT, Version9X, ServicePackLevel, and WindowsBuild properties
describe the target operating system.
Property names are case sensitive, so Version9X and Version9x are considered to be different
properties.
User Interface Questions
How Do I Display a License Agreement?
A license agreement dialog is included as part of the default user interface. To add
your text to the license agreement, do the following:
7-18 • Frequently Asked Questions
InstallShield Software Corporation
Standard Project
1. Ensure the Setup.rul file in the InstallScript view contains a reference to sdLicense and SUPPORTDIR. By default, the code contained in the Setup.rul file
is:
Dlg_SdLicense:
szLicenseFile = SUPPORTDIR ^ "license.txt";
szTitle
= "";
szMsg
= "";
szQuestion = "";
nResult
= SdLicense( szTitle, szMsg, szQuestion,
szLicenseFile );
if (nResult = BACK) goto Dlg_SdWelcome;
2. Create a file called License.txt containing your licence agreement.
3. Select Setup Files/Billboards from the checklist.
4. Select the language you want to associate this agreement with from the Setup
Files tree. If it is to be associated with all languages, select Language Independent.
5. Right-click in the Files window and select Insert Files.
6. Locate and select the license.txt file.
7. Click Open.
Basic MSI
1. Click Dialogs in the checklist.
2. Select License Agreement in the Dialogs list (upper-left pane).
3. In the License File property, type or use the browse button to navigate to the
.rtf file you want to use.
How Do I Validate a Serial Number?
InstallScript
The SdRegisterUserEx dialog box contains a field in which you can require the user
to enter a serial number.
Because sophisticated users can open .msi databases and remove custom actions and control
events related to serial-number validation, it is recommended that you also perform serial-number validation inside your application code, prompting the user to re-enter the serial number if a
valid number is not stored on the target system.
In the Samples folder for InstallShield Developer, there is a folder called Example Custom Password Dialog containing a dialog that can serve as a starting point for more sophisticated serial
number validation.
InstallShield Software Corporation
User Interface Questions • 7-19
How Do I Populate a List Box at Run Time?
InstallScript
The CtrlSetList function associates a string list variable with a ListBox control on a
dialog box. For example:
function FillListBox( )
LIST listDays;
begin
listDays = ListCreate(STRINGLIST);
ListAddString(listDays, "Monday", AFTER);
ListAddString(listDays, "Wednesday", AFTER);
ListAddString(listDays, "Friday", AFTER);
CtrlSetList("DialogName", nListBoxId, listDays);
end;
Basic MSI
Populating a list box at run time requires you to create temporary records for the
.msi database using SQL queries. For an example, see InstallShield Knowledge Base
article Q103295.
How Do I Display a File-Browse Dialog Box?
See the InstallShield Knowledge Base article Q104325.
How Do I Display a Network-Browse Dialog Box?
InstallScript
The SelectDirEx function enables you to display a dialog box from which the user
can browse the Network Neighborhood.
prototype NetBrowse( );
function NetBrowse( )
STRING svSelectedDir[MAX_PATH + 1];
NUMBER nReturn;
begin
svSelectedDir = PROGRAMFILES;
nReturn = SelectDirEx("", "Select a directory:", "", "",
BIF_EDITBOX | BIF_RETURNONLYFSDIRS, svSelectedDir);
if (nReturn = OK) then
MessageBox("Selected directory was: " + svSelectedDir,
INFORMATION);
elseif (nReturn = CANCEL) then
MessageBox("User clicked Cancel", INFORMATION);
else
MessageBox("Error displaying dialog box", WARNING);
endif;
end;
7-20 • Frequently Asked Questions
InstallShield Software Corporation
Why Can’t I Remove the InstallShield Label (Branding)
from the Setup Dialog Boxes?
Installing your applications is InstallShield’s most important objective. Most software users recognize and trust the InstallShield name and have come to expect that
any software packaged using an InstallShield product will install flawlessly. We offer
many other locations for you to place your company logo and branding within your
setup, but the InstallShield logo cannot be removed from the setup dialogs. Further
information is included in your InstallShield license agreement.
Custom Actions Questions
How Do I Search for a File on the User’s System?
InstallScript
The FindFile and FindAllFiles functions enable you to search for existing files on
the target system. For example, an implementation of the OnAppSearch event-handler function that searches for a file called FindMe.exe in the user’s Program Files
folder might appear as follows:
function OnAppSearch( )
STRING svFoundFile;
begin
FindAllFiles(PROGRAMFILES, "FindMe.exe", svFoundFile, RESET);
MessageBox("Found FindMe.exe at: " + svFoundFile,
INFORMATION);
end;
Basic MSI
Windows Installer uses records in the Signature, AppSearch, and “Locator” tables
for instructions for searching for files on the target system. The Signature table contains information about the file to be located, and the AppSearch table specifies a
property to set to the full path of the located file, if found.
For example, to search for a file called FindMe.exe, use Direct Editor to add the following record to the Signature table:
Signature
findme_sig
FileName
FindMe.exe
(Other fields exist in Signature records in which you can specify optional version,
size, date, and language information.)
Add the following record to the AppSearch table:
Property
LOCATION_OF_FINDME
InstallShield Software Corporation
Must be a public property.
Custom Actions Questions • 7-21
Signature_
findme_sig
Same name used in Signature
table.
There are four “Locator” tables in which you can specify where Windows Installer
should begin searching for the file: CompLocator, RegLocator, IniLocator, and
DrLocator. To search for a file in a specific directory, use the DrLocator table. For
example, to search for FindMe.exe in the user’s Program Files directory, add the following record to the DrLocator table.
Signature
findme_sig
Parent
Path
[ProgramFilesFolder]
Depth
2
After the AppSearch action runs, the public property LOCATION_OF_FINDME
will contain the full path to FindMe.exe on the user’s system, if it exists, or will be
undefined if the file is not located.
How Do I Launch My Application Following
Installation?
InstallScript
The LaunchApp and LaunchAppAndWait functions launch an executable. For
example, the following code launches a copy of Program.exe in the user’s
INSTALLDIR folder, returning execution to the script when the user closes the
program’s window.
LaunchAppAndWait(INSTALLDIR ^ "Program.exe", "", WAIT);
How Do I Place a File in the .msi Database and Extract
It During Run Time?
The Setup Files view enables you to store temporary files that are to be used by your
installation program, but are not to be installed. For more information see the
online Help Library topic “Setup Files.”
Building Release Questions
My Setup Does Not Fit on a Single Floppy Disk. Why?
There are two primary reasons why your setup might not fit on a floppy disk—disk
space and disk spanning.
7-22 • Frequently Asked Questions
InstallShield Software Corporation
Disk Space
Although Microsoft ships Windows 2000, Windows Me, and Windows XP with the
Windows Installer service, all other operating systems to date do not ship with this
service. Therefore, the Windows Installer service must be installed before your
setup can run. There are two versions of this setup—one for Windows NT 4.0 and
one for Windows 9x. Each of these setups requires more than 1.4 MB of disk space.
Because of these file size requirements, it is difficult to distribute your setup program on a floppy disk if you need to distribute the Windows Installer service setups
as well.
Disk Spanning
In addition the .msi file created by InstallShield that interacts with the Windows
Installer service cannot be spanned across multiple disks and it must reside on the
first disk of your setup. Therefore, if you want to include all of your files in one
compressed .msi file, it might not fit on one floppy disk. However, if your files can
remain uncompressed, they can be included on successive disks of the setup.
How Do I Get Changes I Make in the IDE to Take Effect
When I Run My Setup?
For changes that you have made in the IDE to take effect in your setup package, you
need to rebuild it. To build your setup at any time, click the Build button in the toolbar. This creates your setup as specified by the properties for the last media type that
you have selected. If you have not configured any properties in the Build Your
Release view, then InstallShield Developer builds your setup using the default settings.
How Do I Build My Project from the Command Line?
You can build a release from the command line using ISCmdBld.exe. For commandline switches and usage examples, see the online Help Library topic “Building a
Setup from the Command Line.”
How Do I Change Project Properties from the
Command Line?
The InstallShield automation interface enables you to query and modify many
project properties from an unattended build process, using, for example, a VBScript
script or Visual Basic application.
InstallShield Software Corporation
Building Release Questions • 7-23
The framework of any script that uses the automation interface to access a project
appears as follows (you can copy this script into a text file called Framework.vbs and
then double-click the file icon):
Set oProject = CreateObject("ISWiAutomation.ISWiProject")
oProject.OpenProject "C:\MySetups\MyProject.ism"
' perform queries and changes here
oProject.SaveProject ' necessary only if modifying the project
oProject.CloseProject
How Do Users Run My Installation in Silent Mode?
Standard Projects
Running a Standard project installation in silent mode takes two steps. First, to prepare the installation for silent mode, one must create a response file by running
Setup.exe with the /r argument. Next, one runs the installation in silent mode based
on the contents of the response file by running Setup.exe with the /s argument.
Basic MSI
Basic MSI projects do not create or read response files. To set installation properties
for a Basic MSI project, run a command line such as:
msiexec /i Product.msi /qn INSTALLDIR=D:\ProductFolder
USERNAME="Valued Customer".
How Do I Create and Read a Response File for a Silent
Installation?
Standard Project
To create a response file, run Setup.exe with the -r switch, which runs your installation in “record mode”, generating a response file containing the options selected in
your installation’s user interface.
To run your installation program based on the response file, run Setup.exe with the s switch.
Uninstallation Questions
How Do I Remove Files that Were Created by My
Product?
By default, files created by your product after the installation is complete are
assumed to be user data, and are not removed when the user uninstalls your application.
7-24 • Frequently Asked Questions
InstallShield Software Corporation
InstallScript
In your script, you can call the DeleteFile and DeleteDir functions in uninstallation
event-handler functions to remove any files or directories you want removed.
MSI
Records you create in the RemoveFile table (using Direct Editor) can specify additional files to remove. For example, if your application creates a file called Product.ini inside INSTALLDIR and you want the file removed when the component
containing your main executable is removed, add a record with the following contents to the RemoveFile table:
FileKey
remove_file
Component_
ProgramFiles
FileName
Product.ini
DirProperty
INSTALLDIR
InstallMode
2
How Do I Remove Registry Data Created by My
Product?
By default, your product’s uninstaller will remove only data created by your installation program.
InstallScript
In your script, you can call the RegDBDeleteValue and RegDBDeleteKey functions
in your uninstallation event-handler functions to remove specified registry values
and keys.
MSI
The Registry explorer understands a special uninstallation flag that controls the registry data to be removed during uninstallation. In particular, using the “-” flag
(“Uninstall entire key”) on a registry key causes the key and all its values and subkeys
to be removed during uninstallation.
The RemoveRegistry table (exposed in the Direct Editor) specifies data to be removed only when
your product is installed. For details, see the MSI Help Library.
InstallShield Software Corporation
Uninstallation Questions • 7-25
7-26 • Frequently Asked Questions
InstallShield Software Corporation
DemoShield Browsers
A
Chapter Contents
What is a DemoShield Browser? . . . . . . . . . . . A-3
DemoShield Browser Wizard . . . . . . . . . . . . . A-3
DemoShield Browser Templates. . . . . . . . . . A-3
Creating Browsers . . . . . . . . . . . . . . . . . . . A-4
Using an Existing Browser . . . . . . . . . . . . . A-4
This appendix explains how to create a DemoShield
Browser using the DemoShield Browser wizard. Your
browser can launch automatically when the CD is
inserted into the CD-ROM drive to begin the installation
process in a simple and efficient way, or can serve as a
graphical “front-end” to your installation. This chapter
also provides information about the full version of
DemoShield, as well as the evaluation copy available on
the InstallShield Developer CD.
InstallShield Software Corporation
Expanding DemoShield Browser Wizard
Functionality . . . . . . . . . . . . . . . . . . . . . . . . . A-4
About DemoShield . . . . . . . . . . . . . . . . . . . A-4
What DemoShield Can Do . . . . . . . . . . . . . A-5
DemoShield Consulting Services . . . . . . . A-6
DemoShield Training . . . . . . . . . . . . . . . A-6
Creating a Browser Using DemoShield . . . . A-6
A-1
A-2
InstallShield Software Corporation
What is a DemoShield Browser?
A DemoShield browser is a demo that provides a graphical interface for your CDROM files and/or your product setup. There are several benefits to supplying a
browser with your application.
• Present a visually appealing interface for your setup. A self-launching CD
browser helps you make the setup process more enjoyable by providing an
interactive, graphical interface from which the setup can be launched. Impress
your customers by using graphics, animation, video, and sound that reflect the
overall image of your product.
• Showcase the other applications you develop. You may have developed several
applications that would be of interest to your current customers. By providing
product information within the browser, you can market these applications
directly to people who are familiar with your company.
• Provide contact information for your company. A browser allows you to
include a handy list of names, numbers, addresses, and Web site URLs that
your customers can reference quickly. Placing your general company, sales,
marketing, and technical support contact information on the CD-ROM
ensures that your customers can reach you whether or not they have access to
printed documentation or a connection to the Internet.
You used a CD Browser when installing InstallShield Developer. To take another
look at the InstallShield Developer CD Browser, insert the InstallShield Developer
CD into your CD-ROM drive.You can find other examples of CD browsers—as
well as other DemoShield projects—by visiting the DemoShield Showcase at
http://www.installshield.com/ds/info/showcase.asp.
DemoShield Browser Wizard
The DemoShield Browser Wizard enables you to create a graphical front-end to
your setup with minimal effort. Several predefined templates integrate information
collected through the panels to customize the Browser to include company- and
product-specific information. The output is stored with the corresponding release
for your installation.
The resulting Browsers are created in English. The full version of DemoShield is required to localize them to other languages.
DemoShield Browser Templates
The DemoShield Browser Wizard uses templates to create the Browser for your
installation. A template is a special type of Demo file that stores default Objects,
Scenes, and Demo properties. This ensures that the information you enter through
the DemoShield Browser Wizard always results in the same initial Browser. If you
have the full version of DemoShield, you can edit the resulting output, or even creInstallShield Software Corporation
What is a DemoShield Browser? • A-3
ate or modify templates for your own use. Each Browser theme uses a different template.
Creating Browsers
To create a Browser using the DemoShield Browser Wizard, do the following:
1. From the Releases view, select the release for which you are creating a
Browser.
2. Launch the DemoShield Browser Wizard for a release in one of the following
ways:
• Select DemoShield Browser Wizard from the Project menu.
• Right-click the release and select DemoShield Browser Wizard.
3. Provide information about your product and organization in the wizard. When
you reach the end of the wizard, click Finish.
The Browser is stored in the same directory as the release.
Using an Existing Browser
If you already have used a full version of DemoShield to create a Browser, you can
use it for your release.
To use an existing Browser, do the following:
1. Select the release this Browser is for from the Releases view.
2. In the property sheet, enter the location of the Browser in the Demo File
Name field. You can also click Browse (...) to navigate to the file.
When you build the release, the Browser specified and the DemoShield Player
(demo32.exe) will be included.
Expanding DemoShield Browser Wizard
Functionality
Creating Browsers using the templates included with the DemoShield Browser Wizard is only a small demonstration of the functionality included in the retail version of
DemoShield. Not only can you create Browsers, but also presales presentations,
product demonstrations, tutorials, and computer-based training. A limited trial version of DemoShield is included on the InstallShield CD to allow you to experience
what DemoShield has to offer.
About DemoShield
InstallShield Developer includes the DemoShield Browser Wizard to create a graphical front-end to your installation. However, this wizard contains only a tiny fraction
of the features and functionality of the full version of DemoShield—the quickest
and easiest authoring tool for product demos, sales presentations, Browsers, and
computer based training.
A-4 • DemoShield Browsers
InstallShield Software Corporation
Use DemoShield to create fully interactive demos that entice users. Make sure you
connect with your customers. Don’t just deploy. Blow them away with a totally interactive experience.
Let your customers get to know you. Even entice them with new purchasing opportunities. Create a Browser to guide your users through installation with interactive
multimedia that informs, entertains, and sells. To make it happen, you need an easyto-use, highly versatile solution that lets you build truly creative experiences that
strategically guide your audience through application installation.
DemoShield helps you create professional multimedia material in a fraction of the
time required by other products. Take a look at all the software professionals that
benefit from DemoShield's easy-to-use, point-and-click authoring environment.
For more information about the full version of DemoShield, visit the DemoShield
Web site at http://www.installshield.com/ds.
What DemoShield Can Do
DemoShield is a multimedia authoring tool that is particularly well suited to helping
you quickly create interactive CD browsers, sales presentations, product demonstrations, and computer-based training. No coding or scripting is required. DemoShield
is completely point-and-click, providing several types of objects that you can place
within a scene. Fill these objects with your media files, and set their properties as
you like. Assign actions to interactive objects such as Hot Spot objects, Button
objects, Edit Field objects, and List Box objects by following a few simple steps in
DemoShield’s Action wizard.
DemoShield’s New Demo wizard provides preformatted CD browser templates
that help you with the basic layout. These templates contain placeholders for your
graphics, text, and other objects. Fill and reformat these objects to customize your
browser.
Launch applications from within the browser. Build a “Launch Application” action
that allows your customer to launch your setup from within the browser. This feature is also useful when you are providing several evaluation copies of your products-just place a button in your browser, change the caption to indicate the product
being installed, and build the action in a few quick steps.
You can point your customer’s Web browser to any URL you wish by using the
“View Internet URL” action. Or you can give your customers control over where
their Web browsers go by creating an Edit Field object that launches the URL they
enter into it.
A free evaluation copy of the latest version of DemoShield is accessible from the
InstallShield Developer CD Browser; or you can download an evaluation copy from
the InstallShield Web site, http://www.installshield.com.
InstallShield Software Corporation
Expanding DemoShield Browser Wizard Functionality • A-5
DemoShield Consulting Services
Is your DemoShield demo up to par?
If not, DemoShield Consulting Services can provide the creative drive and technical
expertise to make your marketing visions both look and function as they should.
Our experienced team of multimedia developers and graphic artists excel in creating
enticing sales demos, installation demos, tutorials, and product overviews with the
professional edge and high-level impact expected by today’s consumer. From as little
as a new graphic interface, to as much as creating your demo from scratch,
DemoShield Consulting provides the resources and talent to fit your needs and your
budget. So don’t settle for static screenshots or buried navigation—let us take a look
at your existing demo or planning documents to see how we can help you achieve
the quality and design you require for a sophisticated demonstration solution.
Visit our Web site (http://www.installshield.com) and click the Consulting link
for more information about DemoShield Consulting Services.
DemoShield Training
DemoShield Training is designed with the multimedia developer in mind. Our
courses help users of all levels become familiar with the features and functionality
available in DemoShield. For more information, visit
http://www.installshield.com and click on Training.
Creating a Browser Using DemoShield
This list, adapted from the DemoShield Knowledge Base, outlines the steps
involved in creating a CD browser.
1. Determine the audience for the CD browser. The market for your CDROM affects how the information should be presented in the CD browser. If
the CD-ROM is for the banking industry, marble textures and subdued colors
are appropriate. If the CD-ROM is given to graphic artists, attention-grabbing
multimedia elements and vibrant colors help keep the viewer interested.
2. Determine the content included in your browser. The content for your
browser determines the interface appropriate for delivering it. Content
includes marketing copy, graphics, sounds, video, animation, and so on. Consider what you require to fulfill the purpose of the browser. Bells and whistles,
such as sound effects, can always be added later if you have extra time.
3. Design an interface that is appropriate for the content and topics. An
interface should be suited to the content and topics that the CD browser will
contain. A simple browser might have only one scene with a few buttons providing users with access to other features within the browser. If you wish to
include several scenes, be sure to provide a consistent method of navigation so
your customers can find their way to the information that interests them most.
Remember: the interface should fit the content-not the other way around.
4. Create a prototype using placeholders. A prototype of a browser takes your
ideas off paper and onto the screen. A prototype will save you a lot of grief by
giving others a chance to review your ideas before you go through the effort of
creating the entire browser. At this point in the project, the interface and layA-6 • DemoShield Browsers
InstallShield Software Corporation
out should match the final version. Any content not yet ready should be indicated with a placeholder. A placeholder is a temporary filler for content that is
not yet ready, for example, using graphics from a clip art library or scanning in
your storyboards and displaying the scanned images in place of the actual
graphics and text.
5. Put it all together. Once all the required tasks are complete you can put the
pieces together. Replace placeholders with actual content and finish the
project.
6. Perform quality assurance testing. Those testing the browser should try it
on a variety of configurations and systems that match as closely as possible
your audience’s configurations.
InstallShield Software Corporation
Expanding DemoShield Browser Wizard Functionality • A-7
A-8 • DemoShield Browsers
InstallShield Software Corporation
Glossary
G
Action
The Windows Installer service works through a series of specific executions called
actions. There are two types of actions: built-in actions (such as file transfer or
checking for disk space) and custom actions (such as launching an EXE or calling a
function in a DLL).
Advertisement
Advertisement is a type of just-in-time installation in which features are not installed
immediately during setup, but only when the installer requests them. Advertisement
can save space on a user’s hard drive.
App Paths
The registry key that Windows uses to find your application and its DLLs if their
locations are not already in the system’s path. App Paths can be set through the
Advanced Settings folder.
Context Menu
A context menu, also known as a right-click menu or a popup menu, appears when a
user right-clicks an item on the desktop, in Windows Explorer, or in an application.
End User
The term end user, in InstallShield Developer documentation, refers to the customer who installs your product onto his or her computer.
Dynamic Link Library (DLL)
A shared code-base file containing functions that can be called from other applications.
Feature
Parts of a setup from an end user’s perspective, such as a help file, a clip art package,
or program files. These are logical groupings of files and functionality that the end
user can install individually during a custom setup.
InstallShield Software Corporation
Glossary • G-1
Globally Unique Identifier (GUID)
A globally unique identifier is a long string of numbers created by InstallShield for
Windows Installer to uniquely identify your product from others. Enter string
GUIDs throughout the IDE in the format {XXXXXXXX -XXXX-XXXXXXXX-XXXXXXXXXXXX}.
.ism File
The .ism file is the working file that InstallShield Developer uses to store your
project information. When you build a release, InstallShield Developer uses the .ism
file to create an .msi file for distribution.
Merge Module
A merge module is a package containing all of the logic and files needed to install
distinct pieces of functionality such as run-time DLLs and virtual machines. Merge
modules are built once and can be added to any setup project. For detailed information on merge modules, see the online help under Merge Modules and Merge Module Authoring.
.msi File
The .msi file, created by InstallShield for Windows Installer, is the setup package in
its finished state. It includes setup resources files and can have compressed within it
all of the application’s data files. The .msi file is the one that is distributed to the end
users and the one that interacts with the Windows Installer service to install your
application.
Publishing
Publishing is a type of advertising (just-in-time installation) in which no user-interface elements are created for the component during installation, but the component
can still be installed through the Add/Remove Programs applet of the Control Panel
or when an installed component requests the published component from the
installer.
Product
Refers to the actual application or collection of files that is to be installed.
G-2 • Glossary
InstallShield Software Corporation
Project
Refers to the entire collection of source files and the .ism file that make up your
setup while it is under construction.
Registry or REG file
A text file of a predefined format that contains keys and values that can be merged
into a registry.
Reinstallation
When a product has already been installed on a machine and its setup is run again,
the setup reinstalls the product by overwriting its existing files, shortcuts, and registry entries.
Rollback
The Windows Installer service tracks all changes that are made during the installation process so that, if an error occurs and the installation is aborted, the changes
are rolled back and the target machine is restored to its original state.
Run Time
The time during which the .msi file interacts with the Windows Installer service to
install your application on the target machine.
String Table
A database that maintains the string IDs, values, and comments for a specific language.
Uninstallation
The process where the setup undoes the changes made during the installation. Uninstallation is the installation maintenance option that allows the end user to remove
the product files and reverse any changes to the machine made during the original
installation.
InstallShield Software Corporation
Glossary • G-3
G-4 • Glossary
InstallShield Software Corporation
I
Index
A
administrator privileges
detecting 7-17
Advanced views 4-37
advertise features 2-3
automation interface 5-6
B
Basic MSI project
converting to Standard project 3-18
basic MSI project 3-3
end-user dialogs 4-28
basic MSI projects
differences between Standard projects and 7-5
Basic MSI vs. Standard setup projects 3-3
Billboards view 4-34
branding 7-21
browsers A-3
creating A-4
build
command line 7-23
Build Your Release view 4-35
C
CD browser A-3
checklist 4-7
code page requirements 6-6
code pages
installing 6-7
COM information
extracting 5-9
COM registration 5-9
COM servers
registering 7-10
command-line
changing properties from 7-23
command-line build 7-23
InstallShield Software Corporation
components
adding registry data to 4-24
Components view 4-42
conditional installations 7-16
Conditionally Install 7-16
Configure the Target System view 4-21
Control toolbar 4-5
conventions 3
converting Basic MSI project to Standard project 3-18
Customize Functionality view 4-30
D
default language 6-4
setting 6-4
DemoShield A-5
DemoShield Browser A-3
templates A-3
DemoShield Browser Wizard A-3
expanding functionality A-4
Dependencies view 4-20
Design the User Interface view 4-28
destination folder 7-9
specifying 7-9
Developer
Features & Benefits xix
Developer Features
.NET Support xxii
64-bit Application Support xxii
Advanced Compression xxi
Advanced Project Control xxi
Build Reports xxi
Complete InstallScript Control xxi
Comprehensive Online Tutorial xxiii
Digital Signatures and Passwords xxi
Direct Table Editing xxi
Dynamic Source Files xx
Dynamic Web Distribution xx
Efficient Development xx
File Dependency Scanning xx
Index • I-1
Flexible Runtime Experience xxii
Fully Customizable Installer Interface xxii
Intelligent Downloads xxi
Internationalization Support xxii
Language Packs xxii
Multimedia Runtime Support xxii
One-Click Install Technology xx
Patch Creation xxi
Project Debugging xxi
Project Templates xx
Quick Build xx
Release Management xxi
Source Code Control Integration xxi
Technology Modules xx
Twenty Productivity Wizards xx
Upgrade Existing Scripts xx
Visual Dialog Editor xxii
Visual IDE xx
Web Deployment Wizard xxi
Windows Installer 2.0 xxii
Windows XP Support xxii
Workflow Automation xxi
Dialog Layout toolbar 4-6
dialogs
branding 7-21
editing behavior 4-29
editing layout 4-29
end-user in basic MSI project 4-28
reverting to default 4-29
standard setup project 4-29
Direct Editor 4-43
disk spanning 5-6
Distribute Your Release view 4-36
E
empty folders
creating 7-10
Environment Variables view 4-27
I-2• Index
F
features
associating merge modules with 4-19
conditionally hiding 7-12
conditionally selecting 7-11
determining if a user has selected a specific 7-18
Features & Benefits xix
Features view
properties 4-14
Subfeatures 4-13
views
Features 4-13
File Extensions view 7-8
file types 7-8
associating with my program 7-8
files
removing during uninstallation 7-24
searching for on the user’s system 7-21
Files view 4-17
Floppy Disk 7-22
G
General Information view 4-9
Product Properties 4-11
Project Properties 4-10
String Tables 4-12
Summary Information 4-10
Windows 2000 4-10
globalization
code page requirements 6-6
customizing language support 6-5
default language 6-4
displaying the language dialog 6-4
installing files of the same name 6-5
language support 5-4, 6-3
language the setup runs in 6-3
steps 5-4, 6-3
tips 6-6
globalizing setups 5-4
InstallShield Software Corporation
H
help resources xxvii
I
INI File Changes view 4-26
installation procedure 1-4
installations
conditional 7-16
detecting a first-time 7-17
launching applications after 7-22
INSTALLDIR 7-9
installing InstallShield Express 1-4
InstallScript 5-3
authoring custom actions 5-3
getting or setting Windows Installer properties 7-15
InstallScript view 4-31
InstallShield branding 7-21
K
key files
setting for a dynamic file link 7-10
Knowledge Base xxviii
L
Language Packs xxii
language support 6-3
customizing 6-5
launching applications following installation 7-22
license agreement 7-18
displaying 7-18
M
merge 7-7
Merge Modules 7-7
merge modules
accessing updated 7-7
associating with features 4-19
Merge Modules view 4-19
InstallShield Software Corporation
Merge Modules vs. Objects 4-19
MSI Debugger 4-35
MSI Debugger toolbar 4-7
N
newsgroups xxviii
O
Objects vs. Merge Modules 4-19
ODBC Resources view 4-25
online help xxvii
operating system
determining if a user is running a specific 7-18
Organize Your Setup view 4-8
P
patching 5-5
path variable types 4-38
Path Variables view 4-37
Prepare for Distribution view 4-34
project file 4-3
projects
upgrading from previous versions 3-1
upgrading InstallShield Professional 3-3
upgrading InstallShield—
Windows Installer Edition 3-17
Property Manager 4-39
R
register 4
registration 1-4
registry
reading data from 7-14
removing data during uninstallation 7-25
writing a property’s value to 7-15
registry data
adding to a component 4-24
Registry view 4-23
Index • I-3
Release Wizard 5-6
response file 7-24
rollback 2-4
S
Script Editor 4-31
self-registration 5-9
Sequences/Actions view 4-32
serial number
validating 7-19
setup 2-5
defined 2-5
Setup Design view 4-40
Advanced Settings 4-41
Components 4-40
Features 4-40
Files 4-41
Merge Modules 4-41
Registry Data 4-41
Shortcuts 4-41
setup elements 2-5
Setup Files view 4-33
setup project file 4-3
setup projects
Basic MSI 3-3
Standard 3-3
Standard vs. Basic MSI 3-3
Setup Types view 4-15
setups
globalizing 5-4
shortcuts 7-13
creating 4-22, 7-13
creating to folder 7-13
creating to Internet 7-13
destinations 4-22
Shortcuts/Folders view 4-22
silent mode 7-24
response file 7-24
software registration 1-4
I-4• Index
source code control integration 5-8
Specify Application Data view 4-16
specifying the destination folder 7-9
standard project 3-3
dialogs 4-29
Standard projects
converting a Basic MSI project to 3-18
standard projects
differences between Basic MSI projects and 7-5
Standard toolbar 4-3
Standard vs. Basic MSI setup projects 3-3
system requirements 1-3
T
templates
DemoShield Browser A-3
toolbars 4-3
Control 4-5
Dialog Layout 4-6
modifying and displaying 4-3
MSI Debugger 4-7
Standard 4-3
transforms 5-5
tutorial xxiii
U
uninstallation procedure 1-4
upgrading
InstallShield Professional projects 3-3
InstallShield—Windows Installer Edition projects 3-17
projects created using InstallShield Professional 7-6
upgrading projects 3-1
V
validation 5-7
viewbar 4-7
views 4-8
Advanced 4-37
Billboards 4-34
InstallShield Software Corporation
Build Your Release 4-35
Components 4-42
Configure the Target System 4-21
Customize Functionality 4-30
Dependencies 4-20
Design the User Interface 4-28
Distribute Your Release 4-36
Environment Variables 4-27
Files 4-17
General Information 4-9
INI File Changes 4-26
InstallScript 4-31
Merge Modules 4-19
ODBC Resources 4-25
Organize Your Setup 4-8
Path Variables 4-37
Prepare for Distribution 4-34
Registry 4-23
Sequences/Actions 4-32
Setup Design 4-40
Setup Files 4-33
Setup Types 4-15
Shortcuts/Folders 4-22
Specify Application Data 4-16
W
Windows Installer 2-3
benefits 2-3
componentized installation 2-3
feature advertisement 2-3
including 7-7
rollback 2-4
self-repair 2-3
Windows Installer properties
getting or setting in InstallScript 7-15
Windows Installer run-time Errors 7-7
Windows Installer service
ensuring the target machine has it installed 7-7
wizard
DemoShield Browser A-3
InstallShield Software Corporation
Index • I-5
I-6• Index
InstallShield Software Corporation