software application packaging overview

Upload: david4wood

Post on 14-Apr-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Software Application Packaging Overview

    1/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    1 | P a g e

    PACKAGINGOVERVIEW

  • 7/29/2019 Software Application Packaging Overview

    2/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    2 | P a g e

    Application & Packaging Basics (FAQ)

    * 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 & Uninstallso 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

  • 7/29/2019 Software Application Packaging Overview

    3/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    3 | P a g e

    o Marimba

    * What are the types of Deployment tools?o Microsoft Systems Management Server (SMS)

    o Altiris Client Management Suite

    o Altiris Notification Server Consoleo 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 Advertisingo 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 typeso 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) programso Snapshot : Scan the computer before and after the installation and record thedifferences between the first scan and the second.

  • 7/29/2019 Software Application Packaging Overview

    4/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    4 | P a g e

    * 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 theinstallation.

    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, systemdirectory. 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)

    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.

  • 7/29/2019 Software Application Packaging Overview

    5/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    5 | P a g e

    * 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

  • 7/29/2019 Software Application Packaging Overview

    6/46

  • 7/29/2019 Software Application Packaging Overview

    7/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    7 | P a g e

    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

    + ADDLOCAL (Features to be Installed locally during Run Time)

    + ADDSOURCE (Features to be run from source)

    + INSTALLLEVEL (Which features to be Installed)

  • 7/29/2019 Software Application Packaging Overview

    8/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    8 | P a g e

    * 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 Dllor 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.

    * 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

    o /C Continue (ignore) access denied errors

    o /G user : perm where access rights granted can be: R

  • 7/29/2019 Software Application Packaging Overview

    9/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    9 | P a g e

    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 : FIn 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 ARPCOMMENTSo ARPCONTACT

    o ARPINSTALLLOCATION

    o ARPNOMODIFY

    o ARPNOREMOVE

    o ARPNOREPAIR

    o ARPPRODUCTICON

    o ARPREADME

    o ARPSIZE

    o ARPSYSTEMCOMPONENT

    o ARPURLINFOABOUT

    o ARPURLUPDATEINFO

    * 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

  • 7/29/2019 Software Application Packaging Overview

    10/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    10 | P a g e

    * 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.

    * 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

  • 7/29/2019 Software Application Packaging Overview

    11/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    11 | P a g e

    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 transformEmbedded 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 anunsecured 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

  • 7/29/2019 Software Application Packaging Overview

    12/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    12 | P a g e

    * 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 directoryo 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 InstallationActions

    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

  • 7/29/2019 Software Application Packaging Overview

    13/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    13 | P a g e

    * What are the types of Sequences in the Custom Actions?o Normal User Interface

    o Normal Execute Immediate / Deferredo 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 & 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 theinstallation 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 onlyThis Action should be executed during the Installation of the Commit script.

    o Deferred ExecutionSystem ContextDeferred 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

  • 7/29/2019 Software Application Packaging Overview

    14/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    14 | P a g e

    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; theaction 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.

  • 7/29/2019 Software Application Packaging Overview

    15/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    15 | P a g e

    o Asynch, no wait

    Windows Installer runs the custom action simultaneously with the main installation. It

    doesnt wait for completionof the custom action and doesntcheck the exit code also.

    * 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

  • 7/29/2019 Software Application Packaging Overview

    16/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    16 | P a g e

    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)?o Group policy (Active Directory)

    o Software Update Services (SUS)

    o Windows Update Web site

    o Systems Management service (SMS)

  • 7/29/2019 Software Application Packaging Overview

    17/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    17 | P a g e

    * 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 asElevated UserYOU CAN CREATE THROUGH GPEDIT.MSC IN THE RUN COMMAND OR REGISTRYKEYS

    HKEY_LOCAL_MACHINE\SOFTWARE\POLICIES\MICROSOFT\WINDOWS\INSTALLER

    TYPE :DWORDKEY: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.

  • 7/29/2019 Software Application Packaging Overview

    18/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    18 | P a g e

    * 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 centrallymanage 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.

    * What are the other tools which are used during the testing & solving the

    Issues in the Application?o Picture Taker

  • 7/29/2019 Software Application Packaging Overview

    19/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    19 | P a g e

    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).(Alternative product: InstED!)

    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 drivehas 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

  • 7/29/2019 Software Application Packaging Overview

    20/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    20 | P a g e

    * 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 UpgradeA major update is a product update with a large number of changes. There is no

    limitation for 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 MSIwith 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.

  • 7/29/2019 Software Application Packaging Overview

    21/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    21 | P a g e

    * 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 validationo 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 theFeatureComponents 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 roamingscenarios.o ICE57- Validates that individual components do not mix per-machine and per-userdata.o ICE59- Checks that advertised shortcuts belong to components that are installed bythe 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

  • 7/29/2019 Software Application Packaging Overview

    22/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    22 | P a g e

    * 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 & 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 theregistry 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.

  • 7/29/2019 Software Application Packaging Overview

    23/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    23 | P a g e

    * 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]

  • 7/29/2019 Software Application Packaging Overview

    24/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    24 | P a g e

    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]

    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?

  • 7/29/2019 Software Application Packaging Overview

    25/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    25 | P a g e

    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

  • 7/29/2019 Software Application Packaging Overview

    26/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    26 | P a g e

    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.o Dynamic Scanner :The Dynamic Scanner monitors the system for dynamicallyloaded 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 utilitytool 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.

  • 7/29/2019 Software Application Packaging Overview

    27/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    27 | P a g e

    * 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=

    * TransformsThe 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 Installerneeds 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)

    secure -read only

  • 7/29/2019 Software Application Packaging Overview

    28/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    28 | P a g e

    Microsoft Windows InstallerMicrosoft 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:

    Assigningan application. You can assign a .MSI package to either a computer or auser. 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.

    Publishingan application. You can publish a .MSI package to users only. Thisprovides 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.

  • 7/29/2019 Software Application Packaging Overview

    29/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    29 | P a g e

    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. TheInstaller 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 fileEach 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.

    Because the database is relational, changes made to one table are propagatedautomatically 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 tablesthat 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.

  • 7/29/2019 Software Application Packaging Overview

    30/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    30 | P a g e

    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?TheADDLOCAL, ADDSOURCE, andADVERTISEproperties can be used to install only acertain number of known features. The following command-line script would be used

    to install the "Sports" and "News" features of the example.msi package locally on the

    machine.

    MSIEXEC /I EXAMPLE.MSI ADDLOCAL=SPORTS,NEWS /QB

    THE FOLLOWING COMMAND-LINE SCRIPT WOULD ADVERTISE THE "SPORTS" FEATURE AND INSTALL

    THE "NEWS" FEATURE TO RUN FROM SOURCE.

    MSIEXEC /I EXAMPLE.MSI ADVERTISE=SPORTS ADDSOURCE=NEWS /QB

    Another important thing to remember is that feature names are case-sensitive.

    What is a managed application?

    Ans: A managed application is an application where the systemadministrator exerts some level of control over the installation and

  • 7/29/2019 Software Application Packaging Overview

    31/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    31 | P a g e

    maintenance of the product. Managed applications are often used todeploy software to large numbers of users or machines. Managedapplications are a way for system administrators to allow users toinstall authorized software in locked-down environments where users

    generally do not have the rights to install software.

    An application is considered managed if it is:

    Installed or advertised to a user by a member of the Administrators group. Installed or advertised per-machine by a member of the Administrators groupAssigned or published on Windows 2000 and later by an Administrator. Marked as managed by another software and deployment management sy

    the management system used, but generally requires an administrator's actio

    An installation package cannot declare itself "managed." Whether ornot an application is managed is controlled by the systemadministrator.

    Note that "managed" is different from "elevated." An elevatedapplication is an application that can run with system privileges wheninstalling. All managed applications are elevated, but applications can

    be elevated without being managed by means of theAlwaysInstallElevated policy. Due to its security implications, thispolicy is disabled by default and requires careful consideration beforeuse.

    What are the differences between a 'deferred' custom action and

    an 'immediate' custom action?

    Deferred custom actions can only be sequenced between theInstallInitialize and InstallFinalize actions in execute sequence tables.Immediate custom actions, on the other hand, can be sequencedanywhere within any of the sequence tables.

  • 7/29/2019 Software Application Packaging Overview

    32/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    32 | P a g e

    Deferred custom actions cannot access the installation database. Infact, deferred custom actions have very limited access to theinstallation session because an installation script can be executedoutside of the installation session that created it. Immediate customactions have access to the installation database and can read and setinstallation properties, modify feature and component states, and addtemporary columns, rows, and tables among other things.

    While both deferred and immediate custom actions can run in thecontext of the user initiating the installation, only deferred customactions can run elevated using the system context.

    Deferred custom actions are not executed immediately. Instead theyare scheduled to run later during the execution script. The executionscript isn't processed until the InstallExecute, InstallExecuteAgain, orInstallFinalize action is run.

    When should I use a deferred custom action instead of animmediate custom action?

    Deferred custom actions should be used when the custom actionmust make a change to the system or call another system service.

    Additionally, only deferred custom actions can run in an elevatedcontext. If your custom action requires elevated privileges in order torun, your custom action needs to be marked as deferred.

    Note: Custom actions marked to run in the system context(msidbCustomActionTypeInScript +msidbCustomActionTypeNoImpersonate) will only run in the systemcontext if the installation itself is elevated.

    Additionally, when making a change to the system by means of a

  • 7/29/2019 Software Application Packaging Overview

    33/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    33 | P a g e

    custom action, you should also include a rollback custom action thatcan undo the change.

    What are the differences between small, minor, and majorupdates?

    A small update is a product update that changes a few files orpossibly adds some new content. A minor update is a product updatethat makes enough changes to warrant changing the product versionfor the product, whereas a major update is a product update with alarge number of changes that warrants a change in the product code.This table summarizes what changes in each update and the possibledistribution vehicles for each.

    It's sometimes easier to think of a small update as a "hotfix" or QuickFix Engineering (QFE) update, a minor update as a service pack, anda major update as a product upgrade.

    Small and minor updates can be considered almost equal in that theonly real difference is that a minor update has a change to theProductVersion whereas a small update does not. The rules that theyfollow and application of the patch are the same. Application of smalland minor update patches requires explicit reinstallations. Majorupdates are not subject to that limitation and a reinstallation is notrequired for patch application. Additionally small and minor updatepatches are limited in the changes that can be made to the feature-component structure for the package. Significant changes can bemade to the feature-component structure in the scope of a majorupdate.

  • 7/29/2019 Software Application Packaging Overview

    34/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    34 | P a g e

    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 ofStandard Actionsstarting with

    Beginand ending with ExecuteAction. ExecuteActionis the one

    that triggers the execute sequence. At the end of theinstallation 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 ofStandard Actionsthat

    starts with Beginand 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

    http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984
  • 7/29/2019 Software Application Packaging Overview

    35/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    35 | P a g e

    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 InstallFinalizewill 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 beplaced after the ExecuteActionstandard 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

  • 7/29/2019 Software Application Packaging Overview

    36/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    36 | P a g e

    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.

    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. Thecommit script is executed after the InstallFinalizestandard 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.

  • 7/29/2019 Software Application Packaging Overview

    37/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    37 | P a g e

    Path Variables

    Define commonly used paths in a central location so that you do notneed to change every source file's path each time you move theproject or change the directory structure. In the previous example, ifyou keep all of your application's source files in various subfoldersunder C:\Work\Files, you could create one variable that points to theFiles folder.

    If you want to include a file that is in C:\Work\Files\Images, you enter\Images. If you move your files to D:\Work\Files, you cango to one place, your variable .

    All path variables can be viewed and modified in the Path Variables

    explorer in the Path Variables view. You can use path variables inalmost any location in InstallShield where you link to source files,such as in the Dialog Editor, dynamic file links, and the releaselocation. Instead of entering the path variables yourself, you can haveInstallShield recommend them whenever you browse to a path. Pathvariables are used during the development of your installation project.These paths do not apply to the target machines where theapplication is being installed. Rather, they are used to link to sourcefiles for your installation project. When the project is built, those linksare evaluated and the files they point to will be built into theinstallation.

    There are four types of path variables that you can use. Each type

  • 7/29/2019 Software Application Packaging Overview

    38/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    38 | P a g e

    functions somewhat differently from the others. Regardless of thepath variable type you use, the variable name is provided in the samemanner throughout InstallShield.

    Types of Path Variables

    VariableType

    Description

    Predefined

    Path

    Variables

    Predefined path variables are path variables that pointto some of the most commonly used folders. Unlikeother types of path variables, these values cannot beedited in InstallShield.

    SeeRegistry

    Path

    Variables

    The values of registry-based path variables are

    derived from the registry keys you created. Aftercreating the registry key, you need to set a pathvariable to this key.

    Environment

    Variables

    Environment path variables are based on the valuesof your system's environment variables. You can setan environment path variable to an existingenvironment variable.

    Standard

    PathVariables

    Standard, or user-defined, path variables are definedthrough InstallShield. You can specify a path variable

    such as with a value of C:\Work\Files.These variables do not rely on any outside sources,such as the registry or system paths.

    Standard Actions

    A Windows Installer installation is run as a sequence of events,

    called Standard Actions. In between

  • 7/29/2019 Software Application Packaging Overview

    39/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    39 | P a g e

    them, you can schedule your ownCustom Actions.

    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:

    InstallUISequence

    Standard Action Description

    Begin starts the UI sequence (when the dialogs are shown)

    PrepareDlg "PrepareDlg" dialog is shownAppSearch performs the searches in theSearchpage

    FindRelatedProduct

    s

    older or newer versions of the package are searched

    its Product Code is placed in the "OLDPRODUCTS" p

    LaunchConditions evaluates the launch conditions

    CCPSearchvalidates that qualifying products are installed on a

    performed

    RMCCPSearchvalidates that qualifying products are installed on a

    performed

    CostInitialize determines the disk space required by the install pro

    FileCost determines the disk space required by each file in th

    CostFinalize ends the disk space costing and resolves the folders

    MigrateFeatureStat

    es

    during an upgrade it reads the feature states in the

    these feature states in the new version.

    WelcomeDlg "WelcomDlg" dialog is shown

    ResumeDlg "ResumeDlg" dialog is shown

    MaintenanceWelco "MaintenanceWelcomeDlg" dialog is shown

    http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984
  • 7/29/2019 Software Application Packaging Overview

    40/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    40 | P a g e

    meDlg

    PatchWelcomeDlg "PatchWelcomeDlg" dialog is shown

    ProgressDlg "ProgressDlg" dialog is shown

    ExecuteAction starts the Execute sequence (when the actual installa

    InstallExecuteSequence

    Before Initialization

    Standard Action Description

    Begin starts the Execute sequence (when the actual installa

    AppSearch performs the searches in theSearchpage

    FindRelatedProduct

    s

    older or newer versions of the package are searched

    its Product Code is placed in the "OLDPRODUCTS" p

    LaunchConditions evaluates the launch conditions

    CCPSearchvalidates that qualifying products are installed on a

    performed

    RMCCPSearch validates that qualifying products are installed on a performed

    ValidateProductID sets the ProductID property to the full product ident

    CostInitialize determines the disk space required by the install pro

    FileCost determines the disk space required by each file in th

    IsolateComponents

    installs a copy of a component (commonly a shared

    for use by a specific application (typically an .exe). Th

    from other copies of the component that may be ins

    on the computer

    CostFinalize ends the disk space costing and resolves the folders

    SetODBCFolders checks for existing ODBC drivers on the system and

    http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984
  • 7/29/2019 Software Application Packaging Overview

    41/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    41 | P a g e

    each new driver to the location of an existing driver

    MigrateFeatureStat

    es

    during an upgrade it reads the feature states in the o

    these feature states in the new version

    InstallValidate

    verifies that all volumes to which cost has been attri

    for the installation. It also notifies the user if one or m

    or removed are currently in use by an active process

    RemoveExistingPro

    ductsupgrades an older version of the package if one is fo

    Before File Installation

    Standard Action Description

    InstallInitialize marks the beginning of the sequence of actions w

    AllocateRegistrySpaceensures that an appropriate amount of free regist

    registry.

    ProcessComponentsregisters and unregisters components, their key p

    clients

    MsiUnpublishAssembl

    ies

    unpublishes the assemblies installed by the packa

    uninstall

    Uninstall removes components

    UnpublishComponent

    s

    removes information about components publishe

    during an uninstall

    UnpublishFeaturesremoves selection-state and feature-component m

    the system registry. Runs only during an uninstallStopServices stops services which use "Stop"control operation

    DeleteServices removes services which use "Delete"control oper

    UnregisterComPlus removes COM+ applications from the registry. Ru

    SelfUnregModules unregisters all modules which usedself registratio

    http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984
  • 7/29/2019 Software Application Packaging Overview

    42/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    42 | P a g e

    during an uninstall

    UnregisterTypeLibrari

    esunregisters type libraries from the system. Runs o

    RemoveODBCremoves the ODBC data sources, translators and d

    uninstall

    UnregisterFontsremoves registration information about installed f

    only during an uninstall

    RemoveRegistryValue

    s

    removes registry entries created in theRegistryp

    uninstall

    UnregisterClassInfomanages the removal of COM class information fr

    only during an uninstall

    UnregisterExtensionInf

    o

    manages the removal of extension-related inform

    registry. Runs only during an uninstall

    UnregisterProgIdInfomanages the unregistration of OLE ProgId inform

    only during an uninstall

    UnregisterMIMEInfo unregisters MIME-related registry information froduring an uninstall

    RemoveINIValuesremoves INI files or entries created in theFiles an

    during an uninstall

    RemoveShortcutsremoves the shortcuts created in theFiles and Fo

    an uninstall

    RemoveEnvironmentS

    trings

    modifies or removes the environment variables cr

    page. Runs only during an uninstall

    RemoveDuplicateFilesremoves files created byFile Duplicationoperatio

    uninstall

    RemoveFiles removes the files created in theFiles and Folders

    http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984
  • 7/29/2019 Software Application Packaging Overview

    43/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    43 | P a g e

    uninstall

    RemoveFoldersremoves the folders created in theFiles and Folde

    uninstall

    CreateFolders creates the folders specified in theFiles and Folde

    MoveFiles moves or copies files which useFile Moveoperati

    Before Finalization

    Standard Action Description

    InstallFiles installs the files specified in theFiles and Folderspag

    PatchFiles

    patches files included in the patch. Runs only during

    DuplicateFiles duplicates the files which useFile Duplicationoperat

    BindImagebinds each executable or DLL that must be bound to

    is not used by packages created with Advanced Insta

    CreateShortcuts creates the shortcuts specified in theFiles and Folde

    RegisterClassInfo manages the registration of COM class information w

    RegisterExtensionI

    nfo manages the registration of extension related inform

    RegisterProgIdInfo manages the registration of OLE ProgId information

    RegisterMIMEInfo registers MIME-related registry information with the

    WriteRegistryValue

    screates the registry values specified in theRegistryp

    WriteINIValues creates INI files or entries specified in theFiles and F

    WriteEnvironmentS

    tringscreates or modifies the environment variables create

    RegisterFonts registers fontsmarked for registration

    InstallODBC installs ODBC drivers, translators and data sources

    RegisterTypeLibrari registers type libraries with the system

    http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984
  • 7/29/2019 Software Application Packaging Overview

    44/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    44 | P a g e

    es

    SelfRegModules registers the modules which useself registration

    RegisterComPlus registers COM+ applications

    InstallServices installs services specified in theServicespage

    StartServices starts services which use "Start"control operationsin

    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 theUsers and G

    RegisterProductregisters the product information with the installer a

    Programs. Also, it caches the MSI package

    PublishComponent

    smanages components which need to be published

    MsiPublishAssembl

    iespublishes the assemblies installed by the package

    PublishFeatures writes each feature's state into the system registry

    PublishProduct

    manages the advertisement of the product informati

    action publishes the product if the product is in adve

    is being installed or reinstalled

    InstallIIS manages the elements created in theIISpage

    InstallFinalizeruns a script that contains all operations spooled sin

    Also, it marks the end of the Execute sequence

    * 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

    http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984http://www.blogger.com/blogger.g?blogID=2559650086942045984
  • 7/29/2019 Software Application Packaging Overview

    45/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    45 | P a g e

    + /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

    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 messagesp - 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*

  • 7/29/2019 Software Application Packaging Overview

    46/46

    Insert Company Logo Here

    Packaging overview Rev. 1.01

    Author: David Wood

    o Update Options

    + /update

    + /uninstall

    + /p - Applies a Patch

    o Repair Options (Repairs a product)

    + /f p - only if file is missingo - 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