Sei sulla pagina 1di 27

5/23/13 Application Packaging Basics & FAQ

applicationpackagingbasics.blogspot.in 1/27
25th December 2012
* What is Application Repackaging?
It is the process of capturing the changes made by an Installation Program (Package) and it is
designed to support company standards and distribution methods.
* What are the steps of Repackaging?
o Review the packaging requirements
o Analyze the vendor package (Review)
o Repackage the application (Scripting)
o Customize the package
o Test the package
o Release the package to end users
* Why it is required & problems in Legacy Installation?
o Customized Installation
o Reduce Cost
o Self Repair
o Source Resiliency
o Unattended Install
o High Support Costs
o Fragile Installs & Uninstalls
o Difficult & labor Intensive to deploy
* What applications should not be repackaged & Why?
o Existing MSI packages should be deployed as they are.
o If you repackage an application and find that it references the MSI.DLL file, it is better not to
repackage the application.
o Microsoft Office 2000 and XP are good examples.
o Applications containing system files managed by the Windows File Protection features of
Windows 2000 and later are also to be avoided, such as Internet Explorer, Windows Service
Packs and certain hotfixes.
All these applications are hard coded to use the Windows Installer service, and may make calls
back to certain locations within the original MSI package.
* What are the types of Packaging tools?
o Wise for Windows Installer
o Install Shield
o SMS Installer
o Marimba
* What are the types of Deployment tools?
Application & Packaging Basics (FAQ)

5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 2/27
o Microsoft Systems Management Server (SMS)
o Altiris Client Management Suite
o Altiris Notification Server Console
o HP Radia/IBM Tivoli
* What is Windows Installer?
It is a built-in Operating System service for Installing and Managing Applications. It provides a
standard method for developing, customizing, installing and updating applications.
* Benefits of the Windows Installer?
o Advertising
o Installation on Demand
o Repair (Self-healing)
o Rollback (Transactional operations)
o Managed Shared Resources
o Installation in locked-down environments
* What are the types of Setup Captures in Wise / Install shield?
In wise there are three types
o Virtual Capture : Creates a clean virtual OS on your computer, and the installation is redirected in
the clean virtual OS.
o SmartMonitor : Watches the installation and records the changes the installation performs.
o Snapshot : Scan the computer before and after the installation and record the differences
between the first scan and the second.
In Install Shield there are two types
o Installation Monitor : Repackager watches lower-level system activities and records related
changes made to the system by the setup(s) programs
o Snapshot : Scan the computer before and after the installation and record the differences
between the first scan and the second.
* MSI Installation Mechanism (Background Mechanism)?
o Acquisition
The Installer first installs the feature and then progresses through the actions specified in the
sequence tables of the installation database. These actions query the installation database and
generate a script that gives a step-by-step procedure for performing the installation.
o Execution
The installer passes the information to a process with elevated privileges and runs the script.
o Rollback
If an installation is unsuccessful, the installer restores the original state of the computer. When the
installer processes the installation script, it simultaneously generates a rollback script. In addition to
the rollback script, the installer saves a copy of every file it deletes during the installation. These
files are kept in a hidden, system directory. Once the installation is complete, the rollback script and
the saved files are deleted.
* What is a MSI?
MSI is Microsoft Windows Installer. It is an installation, in the form of a single file. It is actually a
database that contains several tables (80+). Each of these tables contains instructions and set-up
information. In wise there are 120 (87+33) tables.
* Structure of MSI?
o Products (Collection of Features)
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 3/27
o Features (Collection of Components)
o Components (Collection of files and Registries)
* What is Product?
Product is an Application.
* What is Feature?
Features are buckets for Components. Windows Installer configuration commands operate only on
Features (installing, advertising, Uninstalling). Self-healing, install-on-demand and user profile fix-up
operate at the Feature level.
* What is Component?
Components are collections of resources that are always installed or removed as a unit from a
user's system. A resource can be a file, registry key, shortcut, or anything else that may be
installed. Every component is assigned a unique component code GUID.
* What is Registry, Tell the Structure & types of Registry?
The Registry is a single place for storing information about the Windows OS (Hardware & Software).
Structure
+ Root Keys / Subtrees
+ Subkeys
+ Hives
+ Entries
Types
+ Machine-Specific (HKCR, HKLM, HKCC, HKU)
+ User-Specific (HKCU, HKU)
Root Keys
+ HKEY_CLASS_ROOT (HKCR)
+ HKEY_LOCAL_MACHINE (HKLM)
+ HKEY_CURRENT_CONFIG (HKCC)
+ HKEY_CURRENT_USER (HKCU)
+ HKEY_USERS (HKU)
* What are Shortcuts & Types?
Shortcuts are the entry points to the applications installed on the system which is normally points to
a file.
o Advertised (File should be Installed by the Application)
o Non Advertised (File that is not part of Installation. It is also called Command Line shortcuts)
* What are INI File & its format?
INI files are plain-text files that contain configuration information. "INI" stands for initialization.
[Section]
Keyname=value
* What are Services & its types?
A windows service is a background process which is loaded by the Service Control Manager of the
OS.
o Win32 Service (Win32 services are the services which is running by the executable file installed
by the Application).
o System or Kernel Services (Kernel services are the services which are used by the OS to
communicate to the hardware devices).
* Where is Service information stored?
Most of the Service information is stored in the windows registry
HKLM\System\CurrentControlSet\Name of the Service
* In the MSI, which tables contain information about the service details?
o ServiceInstall (Service Details)
o ServiceControl (Controlling the service during Installation & UnInstallation)
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 4/27
* What is ODBC & DSN and its types?
ODBC means Open Database Connectivity. The purpose of ODBC is to allow the user to access
data from any application.
The layer between the application and the DBMS called DSN.
o System DSN (DSN will be available for all users)
o User DSN (DSN will be available for that particular user)
* What is File Association?
The Windows operating system recognizes file types and associates them with programs based on
their file extension.
A file that carries no extension or no associated program is called Orphaned.
* What is Environment Variable & its types?
Environment Variables are the variables that are set by the Operating System & Application.
o System Variable (Available for all users)
o User Variable (Available for that particular user)
* What is Property & types of Properties, give some Examples?
Properties are global variables that the Microsoft Windows Installer uses during an installation.
o Private
The installer can be use only internally (values cant be changed during the run time).
# Manufacture, ProductCode, ProductID, ProductName, ProductVersion
o Public
The installer can be uses both internally & externally (values can be changed during the run time
also).
# INSTALLLEVEL, .
o Restricted Public
The user cant change the value both internally & externally due to security purposes.
# ALLUSERS, REBOOT, REINSTALLMODE
* What is the Use of the following Properties?
+ ALLUSERS (Null, 1, 2)
User - Per-user, Not valid, Per-user
Admin - Per-user, Per-machine, Per-machine
+ REBOOT (Force, Suppress, ReallySuppress)
Always prompt for a reboot at the end of the installation.
Suppress prompts for a reboot at the end of the installation. But the user can still prompt by using
ForceReboot action.
Suppress all prompts for reboots during the installation.
+ REINSTALLMODE (to specify the type of reinstallation of the Application)
p - If file is missing
o - If file is missing or if an older version is installed.
e - If file is missing or an equal or older version is installed.
d - If file is missing or a different version is installed.
c - If file is missing or the stored checksum doesn't match the calculated value.
a - Force all files to be reinstalled.
u - Rewrite all required user specific registry entries.
m - Rewrite all required computer-specific registry entries.
s - Overwrite all existing shortcuts.
v - Run from source and re-cache the local package. Do not uses the v reinstall option for the first
installation of an application or feature.
+ REINSTALL (List of features to be Installed)
+ RebootRequired (Prompts for Reboot)
Yes - Prompt for Reboot
No - Wont Prompt for Reboot
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 5/27
+ ADDLOCAL (Features to be Installed locally during Run Time)
+ ADDSOURCE (Features to be run from source)
+ INSTALLLEVEL (Which features to be Installed)
* What is Merge Module?
Merge modules are a mechanism in Windows Installer that allows companies to prepackage and
share standard component definitions. Merge modules are used to deliver shared code, files,
resources, registry entries and setup logic to applications as a single compound file.
* What are all Merge Module tables?
ModuleSignature, ModuleComponents, ModuleDependency, ModuleExclusion,
ModuleAdminUISequence, ModuleAdminExecuteSequence, ModuleAdvtUISequence,
ModuleAdvtExecuteSequence, ModuleIgnore, ModuleInstallUISequence,
ModuleInstallExecuteSequence, ModuleSubstitution, ModuleConfiguration
* How the Merge Module is working (Background mechanism)?
Merge Module is working by checking the version, size & date of the file. If the file is Dll or OCX, it
will check the version, other files like text it will check the Size & Date. It works by the Mechanism of
Shared Dlls Count concept which is stored in the Registry information
HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDlls\
* You can create Merge Module for text file, how?
Yes you can create Merge Module for the text file also. It will works by the mechanism of checking
the file Size & Date.
* What are the types of Installation modes?
All Windows Installer package should be Installed by the following command line
Msiexec /Option [Optional Parameter]
o Install Options
+ /I - Installs a product
+ /j - Advertise a product
u - Advertises to the current user
m - Advertises to all users of machine
g - Language identifier
t - Applies transform to advertised package
+ /a - Administrative Installation
+ /x - UnInstalls a product
o Display Options (during Installation & UnInstallation)
+ /quiet - no user interaction
+ /passive - unattended mode
+ /q - sets user interface level
n - No UI
n+ - No UI except for a modal dialog at the end
r - Reduced UI with no modal dialog at the end
b - Basic UI
b! - Basic UI with hide cancel button
b+ - Basic UI with a modal dialog at the end
b+! Basic UI with a modal dialog at the end & hide cancel button
b- - Basic UI with no modal dialog at the end
b-! - Basic UI with no modal dialog at the end & hide cancel button
f - Full UI
+ /help - help information
o Restart Options
+ /norestart - Do not restart after the Installation
+ /promptrestart - Prompts the user for restart if necessary
+ /forcerestart - Always restart the computer after Installation
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 6/27
o Logging Options (Writes logging information into a logfile at the specified existing path. Default is
'iwearmo')
+ /l - I - Status messages
w - Nonfatal warnings
e - All error messages
a - Start up of actions
r - Action-specific records
u - User requests
c - Initial UI parameters
m - Out-of-memory or fatal exit information
o - Out-of-disk-space messages
p - Terminal properties
v - Verbose output
x - Extra debugging information
+ - Append to existing log file
! - Flush each line to the log
* - Log all information, except for v and x options
+ / log Equivalent of /l*
o Update Options
+ /update
+ /uninstall
+ /p - Applies a Patch
o Repair Options (Repairs a product)
+ /f p - only if file is missing
o - If file is missing or an older version is installed (default)
e - If file is missing or an equal or older version is installed
d - If file is missing or a different version is installed
c - If file is missing or checksum does not match the calculated value
a - forces all files to be reinstalled
u - All required user-specific registry entries (default)
m - All required computer-specific registry entries (default)
s - All existing shortcuts (default)
v - Runs from source and reaches local package
o Others
+ /m Generates an SMS status .mif file
+ /? Or /h Displays the copy rights for
Windows Installer
+ /y Calls the system function DllRegisterServer to self-register modules passed in on the command
line.
+ /z Calls the system function DllUnRegisterServer to Unregister modules passed in on the
command line.
+ /c Advertises a new instance of the product
+ /n Specifies the particular instance of the product
* How to give Permission for files, folders & Registry keys in MSI?
In the MSI, we can give permissions through Lock Permission table.
* How to give Permission for files, folders & Registry keys through VB Script & what is
the syntax?
We can give permission for files & folders through VB Script by using the CACLS & XCACLS
commands. CACLs should only run on NTFS partitions.
CACLS Changes Access Control ListS
Cacls [/T] [/E] [/C] [/G user: perm] [/R user [...]] [/P user: perm [...]] [/D user [...]]
o /T Changes ACLs of specified files in the current directory and subdirectories
o /E Edit ACL instead of replacing it
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 7/27
o /C Continue (ignore) access denied errors
o /G user : perm where access rights granted can be: R
C F (read, change, full control)
o /R user Revoke specified user's access rights (only valid with /E)
o /P user: perm Replace specified user's access rights. Permission can be: N R C F (none,
read, change, full control)
o /D user Deny specified user access
E.g. cacls c:\myfile.txt /E /G : F
In VB Script the syntax as
On Error Resume next
Set Wshell = CreateObject (Wscript.Shell)
Wshell.Run cacls c:\myfile.txt /E /G : F
* How to disable ARP Details during the Installation through Command line, tell some
ARP properties?
msiexec /i ARPSYSTEMCOMPONENT=1
o ARPAUTHORIZEDCDFPREFIX
o ARPCOMMENTS
o ARPCONTACT
o ARPINSTALLLOCATION
o ARPNOMODIFY
o ARPNOREMOVE
o ARPNOREPAIR
o ARPPRODUCTICON
o ARPREADME
o ARPSIZE
o ARPSYSTEMCOMPONENT
o ARPURLINFOABOUT
o ARPURLUPDATEINFO
* During Installation how to take a back up copy of the Application through Command
line?
I never tried check it out.
* What is Dll Cache folder?
During the process of SFC (System File Checker) or WFP (Windows File Protection), it will scan
all the protected files (.SYS, .DLL, .EXE, .TTF, .FON, and .OCX extensions) to verify their
versions. If the versions are not correct, it will replace the particular files from the back up folder
called DLL Cache folder.
* What is SFC?
SFC means "System File Checker." It is a command-line utility that scans the operating system's
files to ensure that they are the correct ones (original Microsoft files). But it can be run or
scheduled manually only.
During the process, it will scan all the protected files (.SYS, .DLL, .EXE, .TTF, .FON, and .OCX)
to verify their versions. If the versions are not correct, it will replace the particular files from the
back up folder called DLL Cache folder
* What is Windows File Protection (WFP)?
WFP is also one Utility tool which will do automatically.
Some applications will replace the system files (SYS, .DLL, .EXE, .TTF, .FON, and .OCX) with
different files of the same name or with same file with different versions. If the files are in a
protected folder, then Windows File Protection automatically determines which file was affected,
and looks up the file signature in a catalogue file to see if the file is the correct Microsoft
version, and if it is digitally signed. If it is not, then the correct file will be copied over it from
either the winnt\system32\dllcache folder, or from the Windows CD.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 8/27
* How Do I Control Windows File Protection (WFP)?
All registry settings for WFP/System File Checker are located in HKEY_LOCAL_MACHINE\
SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon.
By default, only Administrators and System will be able to modify these settings.
SFCDisable (REG_DWORD)
0 = enabled (default).
1 = disabled, prompt at boot to re-enable (debugger required).
2 = disabled at next boot only, no prompt to re-enable (debugger required).
SFCScan (REG_DWORD)
0 = do not scan protected files at boot (default).
1 = scan protected files at every boot.
2 = scan protected files once.
SFCQuota (REG_DWORD)
n = size (in megabytes) of dllcache quota.
FFFFFFFF = cache-protected system files on the local hard drive.
SFCShowProgress (REG_DWORD)
0 = System File Checker progress meter is not displayed.
1 = System File Checker progress meter is displayed (default).
SFCDllCacheDir (REG_EXPAND_SZ)
Path = local location of dllcache directory (default is %Systemroot%\system32\dllcache).
* What is Advertisement?
It means that, the Availability of an application to users or others with out actually the full
Installation. There are two types of Advertising
o Assigning
An Application appears (shortcuts, files & registries) to a user or others, when an Application is
assigned. When the user tries to open, it is installed upon demand.
o Publishing
No Entry points appear to a user or others, when an Application published to the group. It is
activated only if the group Application activates the published Application i.e. Installation on
Demand.
* What is Advertised Feature & Component?
If a Feature or Component is advertised, only the interfaces required for loading and launching
the application are installed to the user or others. If a user activates an advertised interface the
installer then proceeds to install the necessary Components & Features.
* What is Installation on Demand?
When a user or application activates an advertised feature or product, the installer proceeds
with installation of the needed components.
* What is Transform?
A transform is a windows installer file with the extension (.MST). It should be used along with a
MSI to customize or change the installation package without modifying the MSI. The installer can
only apply transforms during an installation.
* What are the types of Transform?
o Embedded transform
Embedded transforms are stored inside the .msi file of the package.
o Secured transform
Secured transforms are stored locally on the user's computer in a location where, on a secure
file system, the user does not have write access. Such transforms are cached in this location
during the installation or advertisement of the package. During subsequent installation-on-
demand or maintenance installations of the package, the installer uses the cached transforms.
o Unsecured transform
Transforms that have not been secured are called unsecured transforms. To apply an
Classic Flipcard Magazine Mosaic Sidebar Snapshot Timeslide
Application Packagin Application Packagin
search
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 9/27
unsecured transform, pass the transform file names in the TRANSFORMS property or command
line string during the installation.
* How to Create Transform in Wise / Install Shield?
In Wise Package Studio, by using Install Tailor or New Project - other templates - Transform
In Install Shield Admin Studio, by using the New Project - Transform
* How many Transform can be created for one Vendor MSI?
Any Number
* How many Transforms can be supplied in the Command line?
Any Number
* What is Custom Action?
The Microsoft Windows Installer provides many built-in actions for performing the installation
process. For some cases the developer writes an action to execute his own installation is called
custom action
* What are the types of Custom Actions?
o DLL file stored in a Binary table stream
o DLL file that is installed with a product
o EXE file stored in a Binary table stream
o EXE file that is installed with a product
o Displays a specified error message and returns failure, terminating the installation
o EXE file having a path specified by a property value
o EXE file having a path referencing a directory
o JScript file stored in a Binary table stream
o JScript file that is installed with a product
o JScript text specified by a property value
o JScript text stored in this sequence table
o VBScript file stored in a Binary table stream
o VBScript file that is installed with a product
o VBScript text specified by a property value
o VBScript text stored in this sequence table
o Property set with formatted text
o Directory set with formatted text
o Installation of a package nested inside of the first package. See Nested Installation Actions
o Installation of a package that resides in the first applications source tree. See Nested
Installation Actions
o Installation of an application that is advertised or already installed. See Nested Installation
Actions
* What are the types of Sequences in the Custom Actions?
o Normal User Interface
o Normal Execute Immediate / Deferred
o Administrative User Interface
o Administrative Execute Immediate / Deferred
o Advertisement Execute Immediate / Deferred
* What are the types of Conditions in the Custom Actions and what is the use?
o Not Installed - During Installation only
o REMOVE - During UnInstallation only
o NOT REMOVE - During both Install & UnInstall
* What are the types of In Script options in the Custom Actions?
o Immediate Execution
Immediate custom actions, can be sequenced anywhere within any of the sequence tables. It
has access to the installation database (read & set installation properties, modify feature &
Send feedback
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 10/27
component states, add temporary columns, rows, and tables).
o Deferred Execution User Context
Deferred custom actions can only be sequenced between the InstallInitialize and InstallFinalize
actions in execute sequence tables. It doesnt have access to the installation database.
Deferred custom actions are not executed immediately. Instead they are scheduled to run later
during the execution script. The execution script isn't processed until the InstallExecute,
InstallExecuteAgain, or InstallFinalize action is run.
If the Current User doesnt have the elevated privileges (Custom actions make changes in the
system directly), the custom actions should run in Deferred Execution in User Context only.
o Rollback only
This Action should be executed during the Installation of the Rollback script or if the Installation
is Unsuccessful
o Commit only
This Action should be executed during the Installation of the Commit script.
o Deferred Execution System Context
Deferred custom actions can only be sequenced between the InstallInitialize and InstallFinalize
actions in execute sequence tables. It doesnt have access to the installation database.
Deferred custom actions are not executed immediately. Instead they are scheduled to run later
during the execution script. The execution script isn't processed until the InstallExecute,
InstallExecuteAgain, or InstallFinalize action is run.
If the Current User have the elevated privileges (Custom actions make changes in the system
directly), then it should run in Deferred Execution in System Context only.
* What is the difference between Immediate Execute / Deferred Execute in the
Custom Actions?
o Immediate custom actions, can be sequenced anywhere within any of the sequence tables
Deferred custom actions can only be sequenced between the InstallInitialize and InstallFinalize
actions in execute sequence tables
o Immediate custom actions have access to the Installation database
Deferred custom actions doesnt have access to the Installation database
o Immediate custom actions can only run in the User Context
Deferred custom actions can run both in the context of the user and elevated using the system
context.
* What is the difference between Deferred in System Context / Deferred in User
Context in the Custom Actions?
If the Custom action which installs or modify a file under the INSTALLDIR or Installation should
be run in Deferred in User Context
If the Custom action which installs or modify the system file directly should be run in Deferred
Execution in System Context
* What are the types of Processing Options in the Custom Actions and what is the
use?
o Synchronous
Windows Installer runs the custom action synchronously to the main installation. It waits for the
custom action to complete successfully before continuing the main installation.
o Synchronous, ignore exit code
Windows Installer runs the custom action synchronously to the main installation. It waits for the
custom action to complete before continuing the main installation; the action can be either
success or fail.
o Asynch, wait at end of sequence
Windows Installer runs the custom action simultaneously with the main installation. At the end it
waits for the exit code from the custom action before continuing.
o Asynch, no wait
Windows Installer runs the custom action simultaneously with the main installation. It doesnt wait
for completion of the custom action and doesnt check the exit code also.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 11/27
* What are the types of Scheduling Options in the Custom Actions and what is the
use?
o Always Execute
This action execute in all sequences
o Run first time
This action execute only the first time Windows Installer encounters it.
o Run once per process
This action execute only one time either Execute sequence that should not run if the installation
is running in silent mode.
o Run only if UI sequence was run
This action execute only if either Execute sequence is run following User Interface sequence.
* What is Launch Condition?
Launch Condition is used to check system requirements on the destination computer
* What is App Search?
App Search action is used to search for existing versions of products (Files, Registry, INI,
Directory & Component)
* What is Isolated Component, why we are using and its types?
It means that to prevent overwriting of previous versions of shared components, and ensures
that other applications do not overwrite your version of shared components.
o Manifest file concept
o Local file concept
* What is the MSI Assembly tables & its use?
MSI Assembly tables specify Windows Installer settings for Microsoft .NET Framework
assemblies and Win32 assemblies. It is used for the registration of .Net Assembly files.
When installing assemblies to the global assembly cache, the installer cannot use the same
directory structure. Assemblies can exist only once in the assembly cache. Assemblies are
added and removed from the assembly cache atomically
* What is the latest version of Windows Installer?
The latest version of Windows Installer is 4.0
* What is the difference between Wise Package Studio & Install Shield Admin Studio?
Both tools are more or less same, but as per my knowledge for capturing part Install Shield is
good, it wont capture unnecessary files & registry keys and for editing the MSI or .wsi or .ism,
Wise is better because Wise GUI is good.
I found lot of bug in Install Shield only
o GUI part
o Shortcut Icon (other than executable files)
o Directory table (INSTALLDIR)
o Create unnecessary entries while editing the MST
o Product language property wont change in the MSI after the compilation, default 1033
o Create unwanted component & create folder entry while editing any component
o Component names
o It wont validate the MSI if that MSI is installed in the local system
* What is Conflict Management?
When two or more applications install the same system files (DLLs, .VBXs, and .OCXs), Windows
registry, and other items. To detect, Conflict Management should be use and for resolve the
software conflicts, Application Isolation concept should be use
* What are the types of Deployment (Software Distribution)?
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 12/27
o Group policy (Active Directory)
o Software Update Services (SUS)
o Windows Update Web site
o Systems Management service (SMS)
* What is Software Distribution?
One of the more critical aspects to managing a Windows environment is the ability to deploy new
applications, updates, upgrades & patches. Distributing new or updated software is called as
Software Distribution.
* What is Group Policy (GPO) & how to set it?
Administrators use Group Policy to define options for managing, configuration of servers,
desktops, and groups of users. It is used to set policies across a given site, domain, or range of
organizational units.
Use gpedit.msc in the run command to set the policy.
* What is Elevated User & how to create it?
If the user having the privileges of MSI features (Windows Installer) is called as Elevated User
You can create through gpedit.msc in the run Command or registry keys
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer
Type : DWORD Key: AlwaysInstallElevated Value : 1
* What is Wrapper MSI?
It means that the Application (MSI) is packaged by calling the Exe (Executable file) inside the
MSI (Internally calling the source or exe).
* What is Lock down environment?
Software restriction policies provide administrators with a Policy-driven mechanism to identify
software running on computers in a domain, and control its ability to execute.
This policy can be used to block malicious scripts, help lockdown a computer, or prevent
unwanted applications from running.
* How do deploy the Package?
o Group policy (Active Directory)
o Software Update Services (SUS)
o Windows Update Web site
o Systems Management service (SMS)
* What is IntelliMirror?
IntelliMirror management technologies is a set of powerful features for change and configuration
management. It ensures that users data, software, and personal settings are available when
they move from one computer to another, and persist when their computers are connected to
the network.
Microsoft divides IntelliMirror's features into the following four categories:
o User Data Management :. IntelliMirror supports the mirroring of user data to the network and
local copies of selected network data.
o Software Installation and Maintenance : IntelliMirror allows you to centrally manage software
installation, repairs, updates, and removal.
o User Settings Management : IntelliMirror allows you to centrally define computing environment
settings for both users and workstations.
o Remote Installation Services : IntelliMirror allows you to image workstations with the Windows
2000 Professional operating system
* What is Active Directory?
Deploying applications through the Active Directory is done through the use of group policies,
and therefore applications are deployed either on a per user basis or on a per computer basis.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 13/27
* What are the other tools which are used during the testing & solving the Issues in
the Application?
o Picture Taker
o Windows Install Master
o Install rite
o RegMon
o FileMon
o CsDiff
o Icon Extractor & Icon Builder
o RegExtractor
o WiLogUtl
o WiseComReg
o ResourceW2K
* What is Orca tool & what is the purpose and Advantages?
This tool is a Microsoft product. It is used for edit the MSI Databases (tables).
o No limitation for the table entries
o Easy to edit the Databases
o If you edit any tables and give save, only those tables will be modified, but in Wise or Install
Shield all the tables will change
* Why multiple MSIExec is running during the Installation?
Windows Installer uses a client-server model for performing installations. Additionally for security
reasons, Windows Installer hosts DLL and script custom actions in a "sandbox" process.
Depending on how the install was initiated, one of the MSIExec processes can be the client
process (Current User). Another MSIExec process is Windows Installer service (System).
* Which drive your Application will Install, C drive has less space and D drive has more
space? Why & how to solve?
It will install D drive only due to Windows Installer features.
We can solve by adding WindowsVolume entry in the directory table as parent of
TARGETDIR
* What is a Patch?
Patching is a streamlined process for updating earlier versions of a Windows Installer setup
package i.e. when you update only files that already exist in your installation package. Only the
package code is changed.
* What is Upgrade?
Upgrade is a process of updating the earlier versions of a Windows Installer setup package i.e.
Adding, changing & deleting new Files & Registries. But here product code, product version &
package code should be changed.
* What are the types of Upgrades and what is the difference?
o Small Update
A small update is a product update that changes a few files or possibly adds some new content.
But there is a limitation for the changes that can be made to the feature-component structure for
the package. Only the package code is changed. It is also called as a "Hotfix" or Quick Fix
Engineering (QFE).
o Minor Upgrade
A minor update is a product update that makes enough changes. But there is a limitation for the
changes that can be made to the feature-component structure for the package. The package
code & product version is changed for the product. It is also called as a Service Pack.
o Major Upgrade
A major update is a product update with a large number of changes. There is no limitation for
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 14/27
the changes that can be made to the feature-component structure for the package. The
package code, product code & product version is changed for the product. It is also called as a
"Product Upgrade.
* How you validate the MSI?

In Wise Package Studio, by using Package Validation option by selecting the MSI with the
default Cub file or Browse your own Cub file.
In Install Shield, by Build - Validate- Default Cub file or Browse your own Cub file.
* What is ICE?
It means Internal Consistency Evaluation. ICEs are used to validate installation packages.
* Give some ICE Error number and tell how to solve the ICE Errors?
There are totally 96 ICE Errors and 14 ICEM Errors in the Windows Installer. Some examples are
as follows
o ICE03 - Basic data and foreign key validation
o ICE18 - Validates the KeyPath column of the Component table when it is NULL.
o ICE21 - Validates that all components in the Component table map to a feature in the
FeatureComponents table.
o ICE33 - Checks for entries in the registry table that belong in other tables.
o ICE38 - Validates that components installed under the user's profile use a registry key under
HKCU as their key path.
o ICE64 - Checks that new directories in the user profile are removed in roaming scenarios.
o ICE57 - Validates that individual components do not mix per-machine and per-user data.
o ICE59 - Checks that advertised shortcuts belong to components that are installed by the
target feature of the shortcut.
oICE81
oICE50
* What are the File types of Application Packaging?
o WSI - Microsoft Windows Installer Project file
o ISM - Install Shield Project file
o MSI - Microsoft Windows Installer
o MST - Microsoft Transform
o PCP - Windows Installer Patch Project file
o MSP - Microsoft Windows Installer Patch
o WSM - Microsoft Windows Installer Merge Module
Project file
o MSM - Microsoft Windows Installer Merge Module
o EXE - Executable file
* How to install the .Exe file through silent mode?
Normally all the .Exe file can be Installed silently by / s. But it depends up on the .EXE file
behavior.
* How to register the DLL manually?
By using the command line option regsvr32. For example
1. regsvr32 Dll name For Register the Dll
2. regsvr32 /u For Unregistered the Dll
3. regsvr32 /s For Silent register
* What is COM Component?
The Component which is having the COM information entries is called as COM Component. If
the component is COM Component, it should have entries in the Class, ProgID, Registry &
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 15/27
Typelib tables in the MSI.
For example most of the merge module components are called as COM Component
(MSCOMCTL.ocx, COMCTL.ocx )
* How the COM Component is working (Mechanism)?
COM Component is working by the mechanism of Windows Installer Tokens. It is nothing but
Advertising.
This token triggers the Windows Installer to check for the key files of the relevant feature and
parent features of an MSI. If these tokens are deleted the self healing mechanism is not
invoked. Windows installer tokens should never be part of the registry table of an MSI. They are
created at install time by the msiexec service due to the way the MSI has been authored using
advertising.
These tokens exist in 3 forms.
o Tokens within .lnk files that indicate to the OS that they are Windows Installer advertised
shortcuts.
o Tokens for advertised file extensions.
o Tokens for advertised COM Dll information.
They have the following structure.
Your browser may not support display of this image.
* What are the default Windows Installer properties?
o [AdminToolsFolder]
C:\Document and Settings\Current User\Start Menu\Programs\Administrative Tools\
o [AppDataFolder]
C:\Document and Settings\Current User\Application Data\
o [CommonAppDataFolder]
C:\Document and Settings\All Users\Application Data\
o [CommonFilesFolder]
C:\Program Files\Common Files\
o [DesktopFolder]
C:\Documents and Settings\Current User\Desktop\
o [FavoritesFolder]
C:\Documents and Settings\Current User\Favorites\\
o [FontsFolder]
C:\Windows\Fonts\
o [LocalAppDataFolder]
C:\Documents and Settings\Current User\Local Settings\Application Data\
o [MyPicturesFolder]
C:\Documents and Settings\Current User\My Documents\My Pictures\
o [NetHoodFolder]
C:\Documents and Settings\Current User\NetHood\
o [PersonalFolder]
C:\Documents and Settings\Current User\My Documents\
o [PrintHoodFolder]
C:\Documents and Settings\Current User\PrintHood\
o [ProfilesFolder]
C:\Documents and Settings\Current User\
o [ProgramFilesFolder]
C:\Program Files\
o [ProgramMenuFolder]
C:\Documents and Settings\Current User\Start Menu\Programs\
o [RecentFolder]
C:\Documents and Settings\Current User\Recent\
o [SendToFolder]
C:\Documents and Settings\Current User\SendTo\
o [StartMenuFolder]
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 16/27
C:\Documents and Settings\Current User\Start Menu\
o [StartupFolder]
C:\Documents and Settings\Current User\Start Menu\Programs\Startup\
o [System16Folder]
C:\Windows\System\
o [SystemFolder]
C:\Windows\System32\
o [TempFolder]
C:\Documents and Settings\Current User\Local Settings\Temp\
o [TemplateFolder]
C:\Documents and Settings\Current User\Templates\
o [WindowsFolder]
C:\Windows\
o [WindowsVolume]
C:\
* What are the default Environment settings in XP?
o ALLUSERSPROFILE
C:\Documents and Settings\All Users
o APPDATA
C:\Documents and Settings\current User\Application Data
o CommonProgramFiles
C:\Program Files\Common Files
o COMPUTERNAME
System Name
o ComSpec
C:\Windows\system32\cmd.exe
o HOMEDRIVE
C:
o HOMEPATH
C:\Documents and Settings\Current User
o ProgramFiles
C:\Program Files
o SystemDrive
C:
o SystemRoot
C:\Windows
o TEMP
C:\Documents and Settings\USERNAME\Local Settings\Temp
o USERNAME
Current User
o USERPROFILE
C:\Documents and Settings\Current User
o Windir
C:\Windows
* What is Package Code?
The Package Code is a GUID identifying a particular Microsoft Windows Installer package. It
associates an .MSI file.
* What is Product Code?
The Product Code is a GUID identifying a particular Application or product.
* What is the difference between Static & Dynamic scanning?
o Static Scanner : This scanner looks at all the files included in the project and checks for any
dependencies. It then recommends all the possible dependencies and allows you to add them to
the project.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 17/27
o Dynamic Scanner : The Dynamic Scanner monitors the system for dynamically loaded files in
memory while running the application file. Use the dynamic scanner to launch your application
and test the controls in the application. Some of these controls load files in the memory that are
picked by the dynamic scanner. This scanner then recommends all these files in the form of a
list from which you select or deselect files. All the selected files are added to the project by this
scanner. The dynamic scanner is more robust than the static scanner and certainly picks more
dependencies.
* What is the Event Viewer, how to open & what is it use?
It is a Windows utility tool in the OS. You can open by giving eventvwr in the run command
also.
It is used to view all exceptional events occur in the OS and also for the System administrator to
track the performance of the OS.
* What is VB Script?
VB Script is a Microsoft Scripting language that means it is a lightweight programming language.
It is a light version of Microsoft's programming language Visual Basic. It is used to add
interaction for the web page projects.

* What is Wise Script?
I never worked on.
* Tell some objects in the VB Script & when & why it is used in the Application?
o Class Object :- Provides access to the events of a created class
o Dictionary Object :-Object that stores data key, item pairs
o Err Object :-Contains information about run-time errors
o FileSystemObject Object :-Provides access to a computer's file system
o Match Object :-Provides access to the read-only properties of a regular expression
match
o Matches Collection :-Collection of regular expression Match objects
o RegExp Object :-Provides simple regular expression support
* How to install only one particular feature during the Installation through Command
line?
msiexec /i ADDLOCAL=

* Transforms
The installation process can be manipulated by applying transforms (.mst) to the installation database. A
transform makes changes to elements of the database. For example, Windows Installer can use a
transform file to change the language in the user interface of an application. The Windows Installer
transform files modify the installation package file at installation time, and can therefore dynamically
affect the installation behavior.
Customization transforms, much like patches, remain cached on the computer. These transforms are
applied to the base package file whenever Windows Installer needs to perform a configuration
change to the installation package. Transforms are applied at initial installation; they cannot be applied
to an already installed application.
Custom Actions :InstallExecuteSequence
Merge Modules & Nested Executables :as a.msm file component, Avoids version conflicts
self heal or self repair
Transforms
.mst file
Secure, unsecure, embeded
defualt -unsecure (can modify)
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 18/27
secure -read only
Microsoft Windows Installer

Microsoft included Windows Installer as a core service (msiexec.exe) within Windows 2000 to install,
repair, and remove software based on instructions contained in .MSI files.

These .MSI files are basically database files that contain all the information an application needs in
order to install a packaged application. Then once you package your application you can deploy it using
Group Policy by one of two methods:
Assigning an application. You can assign a .MSI package to either a computer or a user. If you assign it
to a computer, the packaged application installs the next time the computer reboots. If you assign it to a
user, the application typically installs when the user tries to run it from the Start menu or tries to open a
file that has a file extension associated with the application.

Publishing an application. You can publish a .MSI package to users only. This provides the user with
an option within Add or Remove Programs in Control Panel that lets them manually install the application
if they want to.
This tool fully complies with Microsofts .MSI standards while also extending the capabilities of .MSI
packages without making changes to their native format. The result is a powerful tool that can be used to
deploy legacy, Web-based, and .NET applications quickly and easily.
The Msiexec.exe program is a component of Windows Installer. This program uses a dynamic link
library, Msi.dll, to read the package files (.msi), apply transforms (.mst), and incorporate command-line
options. The installer performs all installation-related tasks: copying files onto the hard disk, making
registry modifications, creating shortcuts on the desktop, and displaying dialog boxes to query user
installation preferences when necessary.
Each package (.msi) file contains a relational type database that stores all the instructions and data
required to install (and uninstall) the program across many installation scenarios. For example, a
package file could contain instructions for installing an application when a prior version of the application
is already installed. The package file could also contain instructions for installing the software on a
computer where that application has never been present.

The Installer is actually a relational database. This database consists of the Installer package
(data1.msi). This package contains information such as the installation sequence, system
dependencies, destination folder paths, setup properties, component to feature relationship, and overall
installation options. This database is never actually changed or written to. Instead, it uses what is called
a Transform file (.mst) to apply customizations that you desire, to transform the database from its default
state. The Installer doesn't stop there. It also is used for post-installation features such as Detect and
Repair, Add/Remove programs, Run From Network and Install on First Use options. It is also used to
give Elevated Rights (which is not turned ON by default) to an application on Windows NT so the user
doesn't have to be a member of the local NT Administrator group. Overall, the Installer technology
creates a higher level of customization than has ever been attempted before. Windows Installer
technologies are divided into two parts that work in combination: a client-side installer service
(Msiexec.exe) and a package file (.msi file). Windows Installer uses the information contained within a
package file to install the application.

Installation package file
Each package (.msi) file contains a relational type database that stores all the instructions and data
required to install (and uninstall) the program across many installation scenarios. For example, a
package file could contain instructions for installing an application when a prior version of the application
is already installed. The package file could also contain instructions for installing the software on a
computer where that application has never been present.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 19/27

Because the database is relational, changes made to one table are propagated automatically throughout
the database. This is a very efficient process for introducing consistent changes into the installation
process that simplifies customizing a large application or group of applications. The Windows Installer
database tables reflect the general layout of the entire group of applications, including:
Available features
Components
Relationships between features and components
Necessary registry settings
The Windows Installer database (.msi file) consists of multiple interrelated tables that together compose
a relational database of the information necessary to install a group of features. The following table
describes the groups of related tables:

Group Description
Core table group Describes the fundamental features and components of the application& installer
package.
File table group Contains the files associated with the installation package.
Registry table group Contains the registry entries.
System table group Tracks the tables and columns of the installation database.
Locator table group Used to search the registry, installer configuration data, directory tree, or .ini files
for the unique signature of a file.
Program installation group Holds properties, bitmaps, shortcuts, and other elements needed for the
application installation.
Installation procedure group Manages the tasks performed during the installation by standard actions
and custom actions.
How do I install only the features I want?
The ADDLOCAL, ADDSOURCE, and ADVERTISE properti es can be used to i nstal l onl y a certai n number of known features. The fol l owi ng
command-l i ne scri pt woul d be used to i nstal l the "Sports" and "News" features of the exampl e.msi package l ocal l y on the machi ne.
msi exec /i exampl e.msi ADDLOCAL=Sports,News /qb
The fol l owi ng command-l i ne scri pt woul d adverti se the "Sports" feature and i nstal l the "News" feature to run from source.
Msi exec /i exampl e.msi ADVERTISE=Sports ADDSOURCE=News /qb
Another i mportant thi ng to remember i s that feature names are case-sensi ti ve.

What is a managed application?
Ans: A managed appl i cati on i s an appl i cati on where the system admi ni strator exerts some l evel of control over the i nstal l ati on and
mai ntenance of the product. Managed appl i cati ons are often used to depl oy software to l arge numbers of users or machi nes. Managed
appl i cati ons are a way for system admi ni strators to al l ow users to i nstal l authori zed software i n l ocked-down envi ronments where users
general l y do not have the ri ghts to i nstal l software.
An appl i cati on i s consi dered managed i f i t i s:
Instal l ed or adverti sed to a user by a member of the Admi ni strators group.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 20/27
Instal l ed or adverti sed per-machi ne by a member of the Admi ni strators group.
Assi gned or publ i shed on Wi ndows 2000 and l ater by an Admi ni strator.
Marked as managed by another software and depl oyment management system. The exact method depends on the management
system used, but general l y requi res an admi ni strator's acti on.
An i nstal l ati on package cannot decl are i tsel f "managed." Whether or not an appl i cati on i s managed i s control l ed by the system
admi ni strator.
Note that "managed" i s di fferent from "el evated." An el evated appl i cati on i s an appl i cati on that can run wi th system pri vi l eges when
i nstal l i ng. Al l managed appl i cati ons are el evated, but appl i cati ons can be el evated wi thout bei ng managed by means of the
Al waysInstal l El evated pol i cy. Due to i ts securi ty i mpl i cati ons, thi s pol i cy i s di sabl ed by defaul t and requi res careful consi derati on before
use.
What are the differences between a 'deferred' custom action and an 'immediate' custom action?

Deferred custom acti ons can onl y be sequenced between the Instal l Ini ti al i ze and Instal l Fi nal i ze acti ons i n execute sequence tabl es.
Immedi ate custom acti ons, on the other hand, can be sequenced anywhere wi thi n any of the sequence tabl es.
Deferred custom acti ons cannot access the i nstal l ati on database. In fact, deferred custom acti ons have very l i mi ted access to the i nstal l ati on
sessi on because an i nstal l ati on scri pt can be executed outsi de of the i nstal l ati on sessi on that created i t. Immedi ate custom acti ons have
access to the i nstal l ati on database and can read and set i nstal l ati on properti es, modi fy feature and component states, and add temporary
col umns, rows, and tabl es among other thi ngs.
Whi l e both deferred and i mmedi ate custom acti ons can run i n the context of the user i ni ti ati ng the i nstal l ati on, onl y deferred custom
acti ons can run el evated usi ng the system context.
Deferred custom acti ons are not executed i mmedi atel y. Instead they are schedul ed to run l ater duri ng the executi on scri pt. The executi on
scri pt i sn't processed unti l the Instal l Execute, Instal l ExecuteAgai n, or Instal l Fi nal i ze acti on i s run.
When should I use a deferred custom action instead of an immediate custom action?

Deferred custom acti ons shoul d be used when the custom acti on must make a change to the system or cal l another system servi ce.
Addi ti onal l y, onl y deferred custom acti ons can run i n an el evated context. If your custom acti on requi res el evated pri vi l eges i n order to run,
your custom acti on needs to be marked as deferred.
Note: Custom acti ons marked to run i n the system context (msi dbCustomActi onTypeInScri pt + msi dbCustomActi onTypeNoImpersonate) wi l l
onl y run i n the system context i f the i nstal l ati on i tsel f i s el evated.
Addi ti onal l y, when maki ng a change to the system by means of a custom acti on, you shoul d al so i ncl ude a rol l back custom acti on that can
undo the change.

What are the differences between small, minor, and maj or updates?

A smal l update i s a product update that changes a few fi l es or possi bl y adds some new content. A mi nor update i s a product update that
makes enough changes to warrant changi ng the product versi on for the product, whereas a maj or update i s a product update wi th a l arge
number of changes that warrants a change i n the product code. Thi s tabl e summari zes what changes i n each update and the possi bl e
di stri buti on vehi cl es for each.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 21/27
It's someti mes easi er to thi nk of a smal l update as a "hotfi x" or Qui ck Fi x Engi neeri ng (QFE) update, a mi nor update as a servi ce pack, and
a maj or update as a product upgrade.
Smal l and mi nor updates can be consi dered al most equal i n that the onl y real di fference i s that a mi nor update has a change to the
ProductVersi on whereas a smal l update does not. The rul es that they fol l ow and appl i cati on of the patch are the same. Appl i cati on of smal l
and mi nor update patches requi res expl i ci t rei nstal l ati ons. Maj or updates are not subj ect to that l i mi tati on and a rei nstal l ati on i s not
requi red for patch appl i cati on. Addi ti onal l y smal l and mi nor update patches are l i mi ted i n the changes that can be made to the feature-
component structure for the package. Si gni fi cant changes can be made to the feature-component structure i n the scope of a maj or update.

Custom actions
Custom actions are actions entirely defined by the user. They can be executable files, dynamic linked libraries,
Visual Basic scripts or JavaScript files. They can be scheduled at any time during the installation.
Basically, an installation process consists of two sequences: Installation User Interface Sequence and
Installation Execute Sequence. In Advanced Installer, these sequences are located in the Custom Actions page,
under the Project Details tree.
In the User Interface Sequence only immediate custom actions can be used. It contains a list of Standard
Actions [http://www.blogger.com/blogger.g?blogID=2559650086942045984] starting with Begin and ending with
ExecuteAction. ExecuteAction is the one that triggers the execute sequence. At the end of the installation
process, the installer returns from the execute sequence in the UI Sequence. It does that in order to execute the
actions that may be specified after ExecuteAction. The installation process ends with the ExitDialog.
The Execute Sequence contains a list of Standard Actions [http://www.blogger.com/blogger.g?
blogID=2559650086942045984] that starts with Begin and ends with InstallFinalize. It also can contain all types
of custom actions: immediate, deferred, rollback and commit actions. In Advanced Installer, the Execute
Sequence standard actions are organized in three categories:
Before Initialization
Before File Installation
Before Finalization
In the "Before Initialization" category only immediate actions can be used. The sequence that starts with the
InstallInitialize standard action and ends with InstallFinalize will be gone through twice. The first time the installer
scans all the actions contained by the Execute Sequence and it creates the installation script used for the actual
install. The second time, based on the installation script, the installer executes all the actions contained by the
package only if their conditions were true when the script was built. For example, it will start/stop services, it will
write/modify registries, create shortcuts and it will install the files on the target machine.
When the installation script execution is done, the installer returns to the User Interface Sequence in order to
display the exit dialog and/or execute any custom actions that may be placed after the ExecuteAction standard
action.
As mentioned above, there are four types of actions:
immediate actions
deferred actions
rollback actions
commit actions
The immediate actions can be used anywhere in the Install UI Sequence and in the Execute Sequence, but for
the second one there is a phase where immediate actions can no longer be used. That is when the installation
script is triggered. The immediate actions should not modify the target machine since those changes cannot be
rolled back.
The deferred actions, can run only during the installation script execution. The deferred actions should be the
only ones that makes changes on the local machine. This is why each deferred action must have a rollback
action so that the changes it makes can be undone if the setup fails or is canceled.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 22/27
The rollback actions are used when the application is installed, but something went wrong and the installation
must be rolled back. While the installation script is executed, the installer builds a rollback script. After every
standard action is executed, the installer adds a rollback command to the rollback script.
The commit actions are the opposite of the rollback actions. The commit script is executed after the
InstallFinalize standard action when everything ended successfully. Its purpose is to delete the backup files
created by the rollback script.
For each of the deferred, rollback and commit actions you have an additional option: With no impersonation.
This is related to the current user's rights set by the User Account Control (only for Windows Vista or above)
when running the package. A normal user can run a custom action that requires administrator rights only if the
With no impersonation option is set for it.
Al l path vari abl es can be vi ewed and modi fi ed i n the Path Vari abl es expl orer i n the Path Vari abl es vi ew. You can use path vari abl es i n
al most any l ocati on i n Instal l Shi el d where you l i nk to source fi l es, such as i n the Di al og Edi tor, dynami c fi l e l i nks, and the rel ease l ocati on.
Instead of enteri ng the path vari abl es yoursel f, you can have Instal l Shi el d recommend them whenever you browse to a path. Path vari abl es
are used duri ng the devel opment of your i nstal l ati on proj ect. These paths do not appl y to the target machi nes where the appl i cati on i s
bei ng i nstal l ed. Rather, they are used to l i nk to source fi l es for your i nstal l ati on proj ect. When the proj ect i s bui l t, those l i nks are eval uated
and the fi l es they poi nt to wi l l be bui l t i nto the i nstal l ati on.
There are four types of path vari abl es that you can use. Each type functi ons somewhat di fferentl y from the others. Regardl ess of the path
vari abl e type you use, the vari abl e name i s provi ded i n the same manner throughout Instal l Shi el d.
Types of Path Variables
Variable Type Description
Predefined Path Variables [ms-
its:C:Program%20FilesCommon%20FilesInstallShieldAdminStudioHelp0409IHelpPreDefPathVariables.htm]
Predefined
path variables
are path
variables that
point to some
of the most
commonly
used folders.
Unlike other
types of path
variables,
these values
cannot be
edited in
Path Variables
Defi ne commonl y used paths i n a central l ocati on so that you do not need to change every source fi l e's path each ti me you move the
proj ect or change the di rectory structure. In the previ ous exampl e, i f you keep al l of your appl i cati on's source fi l es i n vari ous subfol ders
under C:\Work\Fi l es, you coul d create one vari abl e that poi nts to the Fi l es fol der<MyFi l es>.
If you want to i ncl ude a fi l e that i s i n C:\Work\Fi l es\Images, you enter <MyFi l es>\Images. If you move your fi l es to D:\Work\Fi l es, you can go
to one pl ace, your vari abl e <MyFi l es>.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 23/27
InstallShield.
See Registry Path Variables [ms-
its:C:Program%20FilesCommon%20FilesInstallShieldAdminStudioHelp0409IHelpRegPathVariables.htm]
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.
Environment Variables [ms-
its:C:Program%20FilesCommon%20FilesInstallShieldAdminStudioHelp0409IHelpEnviroPathVariables.htm]
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.
Standard Path Variables [ms-
its:C:Program%20FilesCommon%20FilesInstallShieldAdminStudioHelp0409IHelpStandardPathVariables.htm]
Standard, or
user-defined,
path variables
are defined
through
InstallShield.
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.
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 24/27
Standard Actions
A Windows Installer installation is run as a sequence of events, called Standard Actions. In
between
them, you can schedule your own Custom Actions [http://www.blogger.com/blogger.g?
blogID=2559650086942045984] .
The standard actions used by Advanced Installer can be shown by using the "Show Standard
Action" button on the toolbar of the "Custom Actions" page and they are:
Standard Action Description
Begin starts the UI sequence (when the dialogs are shown)
PrepareDlg "PrepareDlg" dialog is shown
AppSearch
performs the searches in the Search [http://www.blogger.com/blogger.g?
blogID=2559650086942045984] page
FindRelatedProducts
older or newer versions of the package are searched. If an older version is
found, its Product Code is placed in the "OLDPRODUCTS" property
LaunchConditions evaluates the launch conditions
CCPSearch
validates that qualifying products are installed on a system before an
upgrade is performed
RMCCPSearch
validates that qualifying products are installed on a system before an
upgrade is performed
CostInitialize determines the disk space required by the install process
FileCost
determines the disk space required by each file in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page
CostFinalize ends the disk space costing and resolves the folders in the project
MigrateFeatureStates
during an upgrade it reads the feature states in the old version and then
sets these feature states in the new version.
WelcomeDlg "WelcomDlg" dialog is shown
ResumeDlg "ResumeDlg" dialog is shown
MaintenanceWelcomeDlg "MaintenanceWelcomeDlg" dialog is shown
PatchWelcomeDlg "PatchWelcomeDlg" dialog is shown
ProgressDlg "ProgressDlg" dialog is shown
ExecuteAction starts the Execute sequence (when the actual installation is performed)
Standard Action Description
Begin starts the Execute sequence (when the actual installation is performed)
AppSearch
performs the searches in the Search [http://www.blogger.com/blogger.g?
blogID=2559650086942045984] page
FindRelatedProducts
older or newer versions of the package are searched. If an older version is
found, its Product Code is placed in the "OLDPRODUCTS" property
LaunchConditions evaluates the launch conditions
CCPSearch
validates that qualifying products are installed on a system before an
InstallUISequence
InstallExecuteSequence
Before Initialization
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 25/27
upgrade is performed
RMCCPSearch
validates that qualifying products are installed on a system before an
upgrade is performed
ValidateProductID sets the ProductID property to the full product identifier
CostInitialize determines the disk space required by the install process
FileCost
determines the disk space required by each file in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.
IsolateComponents
installs a copy of a component (commonly a shared DLL) into a private
location for use by a specific application (typically an .exe). This isolates
the application from other copies of the component that may be installed
to a shared location on the computer
CostFinalize ends the disk space costing and resolves the folders in the project
SetODBCFolders
checks for existing ODBC drivers on the system and sets the target directory
of each new driver to the location of an existing driver
MigrateFeatureStates
during an upgrade it reads the feature states in the old version and then sets
these feature states in the new version
InstallValidate
verifies that all volumes to which cost has been attributed have sufficient
space for the installation. It also notifies the user if one or more files to be
overwritten or removed are currently in use by an active process
RemoveExistingProducts upgrades an older version of the package if one is found
Standard Action Description
InstallInitialize marks the beginning of the sequence of actions which change the system
AllocateRegistrySpace
ensures that an appropriate amount of free registry space exists in the
registry.
ProcessComponents
registers and unregisters components, their key paths and the component
clients
MsiUnpublishAssemblies
unpublishes the assemblies installed by the package. Runs only during an
uninstall
Uninstall removes components
UnpublishComponents
removes information about components published by the package. Runs
only during an uninstall
UnpublishFeatures
removes selection-state and feature-component mapping information from
the system registry. Runs only during an uninstall
StopServices
stops services which use "Stop" control operations
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] in the
package
DeleteServices
removes services which use "Delete" control operations
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] in the
package.
UnregisterComPlus
removes COM+ applications from the registry. Runs only during an
uninstall
SelfUnregModules
unregisters all modules which used self registration
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] during
install. Runs only during an uninstall
UnregisterTypeLibrariesunregisters type libraries from the system. Runs only during an uninstall
RemoveODBC
removes the ODBC data sources, translators and drivers. Runs only
during an uninstall
UnregisterFonts
removes registration information about installed fonts from the system.
Before File Installation
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 26/27
Runs only during an uninstall
RemoveRegistryValues
removes registry entries created in the Registry
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.
Runs only during an uninstall
UnregisterClassInfo
manages the removal of COM class information from the system registry.
Runs only during an uninstall
UnregisterExtensionInfo
manages the removal of extension-related information from the system
registry. Runs only during an uninstall
UnregisterProgIdInfo
manages the unregistration of OLE ProgId information with the system.
Runs only during an uninstall
UnregisterMIMEInfo
unregisters MIME-related registry information from the system. Runs only
during an uninstall
RemoveINIValues
removes INI files or entries created in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.
Runs only during an uninstall
RemoveShortcuts
removes the shortcuts created in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.
Runs only during an uninstall
RemoveEnvironmentStrings
modifies or removes the environment variables created in the Environment
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.
Runs only during an uninstall
RemoveDuplicateFiles
removes files created by File Duplication [http://www.blogger.com/blogger.g?
blogID=2559650086942045984] operations. Runs only during an uninstall
RemoveFiles
removes the files created in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.
Runs only during an uninstall
RemoveFolders
removes the folders created in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.
Runs only during an uninstall
CreateFolders
creates the folders specified in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.
MoveFiles
moves or copies files which use File Move
[http://www.blogger.com/blogger.g?blogID=2559650086942045984]
operations
Standard Action Description
InstallFiles
installs the files specified in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page
PatchFiles patches files included in the patch. Runs only during a patch installation
DuplicateFiles
duplicates the files which use File Duplication
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] operations
BindImage
binds each executable or DLL that must be bound to the DLLs imported by it.
This is not used by packages created with Advanced Installer
CreateShortcuts
creates the shortcuts specified in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page
RegisterClassInfo
manages the registration of COM class information with the system
RegisterExtensionInfomanages the registration of extension related information with the system.
RegisterProgIdInfo manages the registration of OLE ProgId information with the system
RegisterMIMEInfo registers MIME-related registry information with the system
Before Finalization
5/23/13 Application Packaging Basics & FAQ
applicationpackagingbasics.blogspot.in 27/27
WriteRegistryValues creates the registry values specified in the Registry
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page
WriteINIValues
creates INI files or entries specified in the Files and Folders
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page
WriteEnvironmentStrings
creates or modifies the environment variables created in the Environment
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page
RegisterFonts
registers fonts marked for registration [http://www.blogger.com/blogger.g?
blogID=2559650086942045984]
InstallODBC installs ODBC drivers, translators and data sources
RegisterTypeLibrariesregisters type libraries with the system
SelfRegModules
registers the modules which use self registration
[http://www.blogger.com/blogger.g?blogID=2559650086942045984]
RegisterComPlus registers COM+ applications
InstallServices
installs services specified in the Services [http://www.blogger.com/blogger.g?
blogID=2559650086942045984] page
StartServices
starts services which use "Start" control operations
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] in the
package
Rollback performs installation rollback in case of an error
Install installs or removes components
Commit removes rollback information
RegisterUser
creates users and groups specified in the Users and Groups
[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page
RegisterProduct
registers the product information with the installer and with Add/Remove
Programs. Also, it caches the MSI package
PublishComponents manages components which need to be published
MsiPublishAssembliespublishes the assemblies installed by the package
PublishFeatures writes each feature's state into the system registry
PublishProduct
manages the advertisement of the product information with the system. This
action publishes the product if the product is in advertise mode or if any
feature is being installed or reinstalled
InstallIIS
manages the elements created in the IIS [http://www.blogger.com/blogger.g?
blogID=2559650086942045984] page
InstallFinalize
runs a script that contains all operations spooled since the installation
started. Also, it marks the end of the Execute sequence
Posted 25th December 2012 by VU3RJY

0
Add a comment

Potrebbero piacerti anche