Application Packaging Using Install Shield
Application Packaging Using Install Shield
• Santhosh J
• Aug 2010
Agenda
Introduction
Application packaging concepts
Types of installers
► Legacy installers
► Basic MSI installers
► Installscript MSI installers
InstallShield - Overview
InstallScript - Basics
Custom Dialogs
Extending InstallShield functionalities with external DLLs
Upgrade installer using InstallShield
Patch installer using InstallShield
Agenda (Continued)
Silent install
Merge modules & Transforms - Overview
InstallShield best practices
Debugging
Support tools
Summary
Introduction
Powerful IDE
MSI Direct editor
Setup debugger
Easy configurations
Simple and easily understandable scripting language
Supplies enough templates to create basic setups – Saves
time
Efficient support systems
Wider community groups
Editions of InstallShield
InstallShield Project types
InstallScript project
► The run-time user interface is rendered and its flow controlled by InstallScript
► The changes that are made to the target operating system are done through
InstallScript engine
► This does not have any reliance on Windows Installer.
► Using InstallScript as the installation driver has many benefits.
— Simpler event model.
— Custom functionalities can be created by writing separate functions.
— InstallScript projects have literally no limitations. It offers a wide range of
standard controls along with the ability to add custom dialog controls.
— Dialog messaging in the script enables you to have complete control over how your
end-user dialogs behave.
Basic MSI Project
► A Basic MSI project uses Windows Installer as it’s engine
► Basic MSI projects have the ability to run InstallScript code in the form of
custom actions, though the type of InstallScript code and the number of
functions that can be run are limited.
InstallShield Project Types
InstallScript MSI
► InstallScript MSI project uses both InstallScript and Windows Installer tables.
► The InstallScript MSI project type uses InstallScript to control the installation
and Windows Installer to handle core functions.
► It is designed for installations requiring a highly customized user interface.
► 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 User Interface (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.
InstallShield Project Types
Merge modules
► Merge modules are pluggable modules.
► It is not executable
Quick Patch
► Recommended for installation authors who want updates to their end users.
► QuickPatch authoring provides an alternative to creating a patch configuration
in the Patch Design view even though it provides less customization.
Transforms
► A transform (.mst file) is a simplified Windows Installer database that contains
the differences between two MSI databases.
► Transforms enable an administrator to apply modified settings to a database
when deploying an installation package.
InstallShield event flow
Installation Maintenance
How to display dialogs?
FOLDER_DESKTOP SRCDIR
FOLDER_PROGRAMS
SRCDISK
FOLDER_STARTMENU
FOLDER_STARTUP SUPPORTDIR
MEDIA TARGETDIR
MODE TARGETDISK
PRODUCT_GUID
UNINSTALL_STRING
PROGRAMFILES
SELECTED_LANGUAGE WINDIR
SHELL_OBJECT_FOLDER WINDISK
WINSYSDIR
String manipulation functions
GetDir
GetDisk
NumToStr
StrToNum
ParsePath
StrCompare
StrFind
StrGetTokens
StrLength
StrLengthChars
StrRemoveLastSlash
StrSub
StrToLower, StrToUpper