Pages

Showing posts with label application packaging interview questions. Show all posts
Showing posts with label application packaging interview questions. Show all posts

Friday 3 August 2012

RESTRICTED PUBLIC Properties


Following are the list of Restricted Public Properties


PROPERTY
DESCRIPTION
ACTION
Reflects the top-level action being performed. Will be either INSTALL, ADVERTISE, or ADMIN.
AFTERREBOOT
Set to 1 after a reboot initiated by the ForceReboot action
ALLUSERS
The ALLUSERS property determines whether a per-machine or per-user installation is done on Windows NT or Windows 2000 (it has no effect on Windows 95 or Windows 98). By default, all installations are per-user. If ALLUSERS is set to 1 and the user has administrative   privileges, a per-machine installation is performed; if the user does not have administrative privileges, an error is returned. If ALLUSERS is set to 2 and the user has administrative privileges, a per-machine installation is performed; if the user does not have  administrative privileges, a per-user installation is performed.
EXECUTEACTION
Set to the name of the top-level action being executed, for example INSTALL or ADMIN.
EXECUTEMODE
Set to None for a dry run that does not actually make any changes to the user’s system. Set to Script to run the installation script. Any other value defaults to the Script setting.
FILEADDDEFAULT
Comma-delimited list of files to be installed in their default state.
FILEADDLOCAL
Comma-delimited list of files to be installed locally.
FILEADDSOURCE
Comma-delimited list of files to be installed to run from source.
INSTALLLEVEL
The level for which features are selected to install by default. Defaults to 1 if not set.
LIMITUI
Set to 1 to limit the user interface to the Basic level.
LOGACTION
Semicolon-separated list of actions for which action data messages will be logged.
NOCOMPANYNAME
Set this to 1 to suppress the Installer’s automatic filling in of the COMPANYNAME property. Useful if your application needs to be sure it collects the current company name itself.
NOUSERNAME
Set this to 1 to suppress the Installer’s automatic filling in of the USERNAME property. Useful if your application needs to be sure it collects the current username itself.
PATCH
Full path of the current patch package (if any).
PRIMARYFOLDER
The main directory for the installation.
PROMPTROLLBACKCOST
Specifies how the installer should handle low-disk conditions if running with no UI or the basic UI. Set to P to prompt the user to disable rollback, D to disable rollback without prompting, or F to fail with a warning that there is not enough disk space.
REBOOT
This property allows you to control some of the reboot-prompting behavior. If set to “Force,” the Installer automatically prompts for a reboot after install. If set to “Suppress,” the Installer doesn’t prompt for a reboot unless it executes a ForceReboot action. If set to “ReallySuppress,” the Installer doesn’t prompt for a reboot even for a ForceReboot action.
REINSTALL
Comma-delimited list of features to be reinstalled.
REINSTALLMODE
A string of letters showing the actions to be performed by a reinstall. The default is “omus.”
RESUME
Set to 1 when the current installation is a resumption of a previously suspended installation.
SEQUENCE
Specifies the name of a table to be used by the SEQUENCE action.
SHORTFILENAMES
Set this property to 1 to force the Installer to use short names for files and directories.
TRANSFORMS
List of transforms to be applied during the installation.
TRANSFORMSATSOURCE
Set this property to 1 to indicate that transforms are stored at the root directory of the installation.
TRANSFORMSSECURE
Set to 1 to cache transforms in a location where the user does not have write access.
































































































Sunday 15 July 2012

SUBINACL command to set File permission

Following is the command used to set Full Control permission to Users group


SUBINACL.EXE /file "C:\Program Files\VNDesktop\settings.xml" /grant=Users=F



Command to Register EXE

Command to register an executable 
MyFile.exe /REGSERVER


Command to Unregister an executable
MyFile.exe /UNREGSERVER



Command to register DLL using MSIEXEC


The following example shows how you can use the msiexec /y command:


msiexec /y my_file.dll


/y   Calls the system API DllRegisterServer to self-register modules passed on the command line.



The following example shows how you can use the msiexec /z command:


msiexec /z my_file.dll


/z   Calls the system API DllUnRegisterServer to unregister modules passed on the command line.

INSTALLLEVEL Property in MSI



Below are the list of features present in MSI and their Levels are highlighted


Now, Lets goto Property Table and locate property INSTALLLEVEL, its value is 100



We can disable a feature by changing its Level value higher than INSTALLLEVEL value.


In the following snapshot HPIO feature level is set to 110 and hence it is disabled.









Wednesday 11 July 2012

Application Packaging Interview Questions - Miscellaneous


  • How to set a shortcut to install only on Windows7
  • How to set a component to install only if .Net Framework 4.0 full is installed
  • How to set a component to install only if operating system is 64bit ?
  • If there are two MSIs, a.msi and b.msi , how to package the application such that a.msi installs on WinXP and b.msi doesnt install, but in Windows7 both MSIs install
  • What is the use of Advertizing a shortcut?
  • How to set a condition in MSI to install only if desktop screen resolution is above 1280x720
  • How to set a custom action inside MSI to run CA after completing installation of MSI?
  • How to create a package, to check for microsoft office apps, and if they are running prompt a message to user to close them, wait for 1min, if user doesn't close office apps. Force close them and install MSI. After installation is complete, display a message a to user that Office apps can be used now and the message shouldn't be closed until user clicks OK button

Tuesday 3 July 2012

Get MSI property value using VBScript



Following script displays the INSTALLDIR property value present inside MSI



Dim objWshShell, str
set objWshShell = CreateObject("WScript.Shell")
str = Session.Property("INSTALLDIR")
MsgBox(str)
set objWshShell = nothing


MSI Property Precedence


The installer sets properties using the following order of precedence. A property value in this list can override a value that comes after it and be overridden by a value coming before it in the list. 


1. Properties specified by the operating environment. 


2. Public properties set on the command line. 


3. Public properties listed by the AdminProperties property set during an administrative installation. 


4. Public or private properties set during the application of a transform. 


5. Public or private property that set by authoring the Property table of the .MSI file.



Monday 2 July 2012

Differences between WindowsXP and Windows7



WindowsXP: User profiles are stored in C:\Documents and Settings
Windows7: User profiles are stored in C:\Users


WindowsXP: All Users Profile is stored in C:\Documents and Settings\All Users location
Windows7: All Users profile is stored in C:\ProgramData location


WindowsXP: User Account Control is absent
Windows7: User Account Control is present to avoid unwanted changes to System locations


WindowsXP: No Session Zero isolation
Windows7: Session Zero isolation present. Please refer to following URL for more information on Session Zero isolation
http://windowsteamblog.com/windows/b/developers/archive/2009/10/01/session-0-isolation.aspx




Friday 29 June 2012

Application Packaging Interview Questions - Scripting

Following are questions related to Scripting in Application Packaging

VBScripting



  • What is On Error Resume Next
  • What is Option Explicit
  • What are different objects available in VBScripting?
  • What object is used to perform operations on Files/Folders?

WiseScripting


  • How to get environment variable value into a variable?
  • How to add/edit/remove registries?
  • function to delete Files?
  • How to check if OS is 32bit or 64bit ?
  • can we execute VBscript inside Wisescript?
  • how to pass values from VBScript to WiseScript?
  • How to execute MSI using WiseScript?
  • How to check if MSI installation using Wisescript is successful or failure?
  • How to display a message while MSI installation is happening using WiseScript?
  • How to check if a process is running using WiseScript?
  • How to check if file/directory exists using WiseScript?
  • How to check if a file is in use?
  • How to pause wisescript execution for sometime?
  • How to set the name of output file generated using WiseScript?
  • How to copy files from one location to another location using WiseScript?
  • What is the different between INST and '.'(DOT)
  • How to stop execution of WiseScript?
  • How to read Registry values using WiseScript?
  • How to get current Date and Time using WiseScript?
  • Can a wisescript runs another wisescript?
  • How to install files on the system using WiseScript?
  • How to install files if doesn't exist using WiseScript?



Search this blog for Answers on various queries




Application Packaging Interview Questions - Miscellaneous

Following are miscellaneous queries


Miscellaneous:


  • What is component Isolation?
  • What is Conflict Management?
  • How to delete/create registry from each user profile?
  • How to delete/copy files to each user profile?
  • When do you use ActiveSetup?
  • When does Run key gets executed?
  • When does ActiveSetup actually run?
  • What change has to be done to run ActiveSetup again after few days?
  • How to Set a file as hidden during MSI installation?
  • Name few silent switches possible for setup.exe's?
  • How to create response files?
  • What is NestedMSI installation?
  • How to package an application which contains multiple MSIs, lets say 5 MSIs?
  • Disadvantage of NestMSI Installation?
  • Lets say a package(MSI+MST) is installed, then MST is modified and now I want to update the existing installation with changes in modified MST? ( How to do it without uninstalling the package)
  • What is meant by A in 'famus' switch in Repair command? When to use it?
  • How to access MSI properties in Deferred Execution custom action?
  • When to choose between Execute Immediate and Deferred sequences?
  • What are all the sequences available in MSI?
  • What is the significance of SelfReg Table?
  • What is the disadvantage of SelfReg Entries?
  • What to do when a MSI contains SelfReg Entries?
  • How to disable advertizement of shortcuts ?
  • What is destination directory for shortcut?
  • What is working directory for shortcut?
  • Is it possible to create a shortcut for a file that is present in pre-requisite package?
  • How to uninstall a MSI using shortcut? Please provide all the shorcut entries?
  • How to install only one feature of MSI through command line ?
  • Name ARP related MSI Properties?
  • What is LockDown Environment ?
  • Why multiple msiexec.exe processes run during MSI installation?
  • What is Source Resiliency?
  • Command to register a DLL file manually?
  • How to disable the setup.exe requirement for installing the msi?
  • What is INSTALLLEVEL property? and its significance?
  • How do you install 2 MSI’s.  After installation of 1st MSI the machine has to reboot and upon start of the machine 2nd MSI installation has to be trigerred. Once installation of 2nd MSI is completed the User has to notified with a Message that 2 MSIs Installation has been completed. How do you perform the Task? 
  • How do you create a Response File?  Where the response file will be created ?
  • What steps to be kept in mind while packaging Addin Applications?
  • How to update Hosts file?
  • How to package driver applications?
  • How to install fonts using MSI? through Registries Or MSI Tables?
  • Condition to check if feature is installed?
  • What is Rollback?
  • Syntax of ProductVersion Property? 


Search this blog for Answers on various queries




Thursday 28 June 2012

Application Packaging Interview Questions - Advanced Part II


Following are questions at Advanced Level


Troubleshooting:

  • What is the use of FileMon, RegMon, ProcMon?
  • What is Orca Tool? and its Advantage?
  • What tables entries are changed when a file is added to MSI?
  • How to add file to MSI using Orca?
  • How to capture a setting of an application?
  • What if application goes for self healing everytime user launches the shortcut? What is the reason? How to overcome it?
  • What are the possible ways to check whats wrong with application if application is not launching?
  • How to identify if app requires permissions ?
  • How do you set permissions?
  • What are the tools available to set permissions?
  • Tell me the Command to set modify permissions to Users group using CACLS
  • What is the use of LockPermissions Table?
  • What is the disadvantage of LockPermissions Table?
  • What is MsiLockPermissionsEx Table?
  • Name few snapshotting tools?

Properties:

  • What is a Property and PROPERTY?
  • Difference between Property and PROPERTY?
  • Name few Private Properties
  • Name few Public Proerties
  • What are mandatory properties inside MSI?
  • What is SecureCustomProperties ?
  • What are Restricted Publick Properties?
  • How to suppress system reboot using property?

ICE Errors:

  • What are ICE Errors?
  • Why is it required to resolve ICE Errors?
  • What is ICE03 Error? How to resolve it?
  • What is ICE57 Error? How to resolve it?
  • What is ICE43 Error? How to resolve it?
  • What is ICE64 Error? How to resolve it?
  • What is ICE99 Error? How to resolve it?
  • What is ICE09 Error? How to resolve it?
  • What is ICE18 Error? How to resolve it?
  • Where are the rules defined for package validation stored?
  • Can we create cub files?



Search this blog for Answers on various questions




Application Packaging Interview Questions - Advanced

Following are few questions at Advanced Level


MSI Standard and Custom Actions

  • Explain MSI Execution in relation to StandardActions?
  • What is the standard action responsible to check disk space ?
  • What is the standard action marking the beginning of Installation/Uninstallation?
  • What is Execute Immediate?
  • What is Execute Deferred?
  • Different between Execute Immediate and Execute Deferred?
  • Options available to add VBScript Custiom Actions?
  • Where is VBScript stored in MSI, if "Call VBSCript From EmbeddedCode" option is used?
  • Where is VBScript stored in MSI, if "Call VBSCript From installation" option is used?
  • Where is VBScript stored in MSI, if "Call VBSCript From InstalledFiles" option is used?
  • Where is VBScript stored in MSI, if "Call VBSCript From Property" option is used?
  • What are the Conditions available to run custom actions during Installation, Repair, Uninstallation?
  • Condition to a customaction during Upgrade?
  • What are Processing Options for Custom Actions?
  • What is Synchronous?
  • What is Synchronous Ignore Exit Code?
  • What is Asynchronous?
  • What is Asynchronous no Wait?
  • What are the options available to run a EXE in Custom Action?
  • Where is EXE stored, if "Execute Program from Destination" Option is used?
  • Where is EXE stored, if "Execute Program from installation" Option is used?
  • Where is EXE stored, if "Execute Program from Installed Files" Option is used?
  • Where is EXE stored, if "Execute Program from Path" Option is used?
  • What are different Inscript Options available?
  • How to extract binary information from MSI?

MSI Command Line Options:

  • MSI installation command in Full UI mode?
  • MSI installation command in semisilent mode?
  • MSI installation command in semisilent mode without cancel button?
  • MSI installation command in totally silent mode?
  • Command to install MSI and MST?
  • Can we install multiple MSTs together?
  • How to pass property values in commandline?
  • How to install specific features using commandline?
  • What is MSI Repair?
  • What is the Command to perform Repair?
  • What is the Command to perform Repair using ProductCode?
  • What are F, M, O, U, S, P, A, V, switches in MSI Repair?
  • What is the Command to Uninstall MSI?
  • What is the Command to Uninstall MSI using ProductCode?
  • Can we install MSI using ProductCode?
  • If MSI and MST are installed, What happens if Transform path is not provided during uninstallation?
  • If MSI and MST are installed, Is it Mandatory to provide transform path in uninstallation command? 

Self healing and MSI Repair

  • What is Self healing?
  • How to prevent MSI from self healing?
  • What are the advantages of self healing?
  • How to make an MSI support self healing?
  • What are the Entry points to trigger selfhealing?
  • What are the MSI Tables which support Advertizing?
  • Difference between Selfhealing and Repair?
  • If the MSI is installed and then deleted from its location, Is it possible to Repair using ProductCode and SelfHeal successfully?

MSI Log file generation

  • What is a log File?
  • What is the use of Logfile?
  • Command to generate log file for an MSI during Installation, Repair, Uninstallation?
  • What are the most common Retun codes in Log file?
  • What are the return codes for successful installation?
  • What is meant by Return code '0' in log file?
  • What is meant by Return Code '3010' in log file?
  • How to check which features are installed using logfile?
  • How to check if there is an error during installation using log file?
  • How to check which features are not installed using logfile?
  • How to check which components are not installed using logfile?
  • What is Administrative Installation? (AIP)
  • Command for Administrative Installation?

Search the blog for Answers on various queries





Application Packaging Interview Questions - Basic Level Part II

Following are few questions at Basic Level Part II


Transforms

  • What is a Transform?
  • Why is it required to create MST?
  • How to merge the content of MST into MSI?
  • Can you install transform alone?
  • Command to install MSI and MST?
  • Types of Transforms?
  • What is embedded transform?
  • What is secured transform?
  • What is unsecured transform?

Upgrades

  • What is upgrade?
  • Different Types of Upgrades?
  • Minimum requirements for Major Upgrade?
  • Importance of UpgradeCode in MajorUpgrades?
  • Standard actions associated with Major Upgrade?
  • What is Action Property?
  • How to set Upgrade entry such that any older verison application has to be removed if it shares same UpgradeCode?
  • Where are Upgrade entries stored in MSI Tables?
  • What is the significance of RemoveExistingProducts?
  • What is the Ideal location of RemoveExistingProducts?
  • What is a Minor Upgrade?
  • What is a Patch?
  • For what purpose patches are created?
  • FileExtension of Patch?
  • Minimum requirements for Patch?
  • How to create Patches using WisePackageStudio or Installshield?
  • Can we delete files of app using Patches natively?
  • Can we see entry in ARP for Patches? How?
  • Can we Remove/Uninstall Patches alone?
  • Is there a option to remove pathces?
  • If MSI repair is trigerred after installing Patches, then will repair restore Original MSI files OR new Patch files?
  • Can you create Patches for VendorMSIs? What are the effects if you crate MSPs for VendorMSIs?


SystemSearch and LaunchConditions

  • What is SystemSearch?
  • Process of creating entry in SystemSearch to search for a file, registry?
  • What the MSI tables associated with SystemSearch?
  • What is a LaunchCondition and what is its usage?
  • What is the MSI Table associated with LaunchConditions?
  • What is the standard action associated with SystemSearch?
  • What is the standard action associated with Launch Conditions?
  • What is AppSearch?
  • What is the difference between SystemSearch and AppSearch?
  • What is the order of AppSearch and LaunchCondition standard actions?

Search this blog for Answers on various queries 






Application Packaging Interview Questions - Basic MSI Packaging



Following are queries related to Basic MSI Packaging


Components

  • What are Critical resources inside MSI?
  • What is a component?
  • What are Component Rules?
  • What is a KeyPath?
  • What are Component Attributes? 8, 16, 24 etc
  • What is a SharedDLL Component?
  • What is a Permanent Component?
  • What are sharedDLLs ?
  • What is the location of SharedDLLs in registry?
  • Can we set conditions to components?
  • Can a component have sub component
  • What are RED Components?
  • Why RED Components appear in MSIs?
  • How to resolve RED Components?
  • What is Component Assignment?
  • Is it possible to have a component assigned to multiple features?
  • How to associate a component to multiple features?
  • How to set a component not to install?
  • How to set a component install only on WindowsXP?

  • How to suppress reboot of an MSI
  • How to suppress reboot prompt in MSI?
  • How to suppress reboot of WiseScript?
  • What is sourcelist property?
  • What are different language codes?
  • What is the language code for English?
  • What is Per-User Installation?
  • What is Per-Machine Installation?
  • What is Determined by user access installation?
  • What is the property associated with PerUser,Permachine, Determined by user access installation? and its values?
  • What is preferred ALLUSERS=0 or 1 or 2?


MergeModules

  • What are MergeModules
  • Can you install a MergeModule alone?
  • Extension of MergeModule?
  • Can you create MergeModule?
  • Where are MergeModules stored on computer with WisePackageStudio and Installshield?
  • What does MergeModules Contain?
  • Does MergeModules contain Features?
  • Does MergeModules contain Components?
  • Does MergeModules contain files/registries?
  • What are mergemodules related MSI Tables?
  • Difference between MSI and MSM ?
  • Name mergemodule template file in WisePackageStudio
  • Can we open mergemodules using WisePackageStudio or Installshield?

  • Where are file entries stored inside MSI?
  • Where are file contents stored in MSI?
  • What is the option to create MSI and external Cab files in WisePackageStudio and Installshield?
  • What is the option to create MSI and external uncompressed files in WisePackageStudio and Installshield?
  • Maximum number of files MSI can hold?
  • What are Files related MSI Tables?

  • What is the Advantage of INI files being present in INI Table?
  • What is the Disadvantage of INI Files present in File Table?
  • Why does it take longer time to install if more INI files are present in MSI?
  • What is the syntax of INI file?

  • Where are Environment Variables stored in MSI Tables?
  • What is the good practice of Environment Variables? Registry or Tables?
  • What are the attributes to be set for Environment Variables?
  • Different Types of Environment Variables?
  • Where can we find Environment variables on the system?

  • What are ODBC Related tables in MSI?
  • What is the good practice for OCBC etnries in MSI? Registry or Tables?
  • When does application contain ODBC entries?

  • What is the good practice for Services? Registry or Tables?
  • What are the tables related to Services?
  • How to stop a service?
  • How to start a service?
  • How to install Drivers?
  • What are signed drivers?
  • What are unsigned drivers?
  • When does application contain drivers?

Search this blog for Answers on various queries.





Application Packaging Interview Questions - Basic Level




Following are few queries at Basic Level


  • Name available Packaging/Repackging Tools?
  • How to convert EXE to MSI? using WisePackageStudio and AdminStudio?
  • What are snapshot methods available in WisePackageStudio SetupCapture?
  • What are snapshot methods available in AdminstudioStudio Repackager?
  • What are exclusion lists ?
  • How to capture changes during installation in drives other than system drive?
  • What is relative path?
  • What is absolute path?
  • What is the use of having relative paths over absolute paths?
  • What is SmartMonitor?
  • What is VirtualCapture?
  • What is InstallationMonitoring in AdminStudio Repackager?
  • What does WSI file contain?
  • What does .IRP file contain?

Search this blog for answers on various queries.

Application Packaging Interview Questions - Windows Installer




Following are few questions on Windows Installer
  • What is Windows Installer
  • Benefits of Windows Installer
  • What is the latest version of Windows Installer?
  • What is Application Packaging
  • What is Application Repackaging?
  • Differences between Windows Installer and Legacy Applications?
  • Why Application Packaging is required?
  • What are the effects if Application Packaging is not implemented in Organizations?
  • What is the significance of Windows Installer Service?

Note: Search this blog for answers for different queries.

Tuesday 26 June 2012

Application Packaging Interview Questions - Windows Basics



Application Packaging Interview Questions related to Windows Basics


Windows Basics

  • Explain Windows Installer(MSI) architecture
  • Can we make Operating system not to install MSIs?
  • How to set Windows to create log files automatically when MSIs are installed?
  • What is the use of MSIs present in C:\Windows\Installer folder?
  • How to identify if a setup is installing drivers?
  • What is a host file? Can we include host file inside MSI?
  • What are Environment Variables, and what is their usage?
  • Name the locations where Environment Variables can be found on Windows OS?
  • How to find whether a Setup is a Legacy or MSI?
  • Disadvantages of Legacy apps?
  • Advantages of MSI apps?
  • Disadvantages of MSI apps?
  • What is the use of Windows Installer Service?
  • What is ActiveSetup?
  • Is ActiveSetup part of MSI or Windows OS?
  • What is Run Key?
  • What is the difference Run, RunOnce and ActiveSetup?
  • What is a File Association or File Extension?
  • What is a ProgID?
  • What is Windows Registry or simply Registry?
  • How are HKCR and HKLM related?
  • How are HKCU and HKU related?
  • What is SID? and what is present inside SID?
  • What is the location of ARP entries in Registy?
  • Where are services located in registry?
  • What is ODBC? 
  • What ODBC entries are required by an application to successfully connect to Database?
  • Versions of WindowsXP, Vista, 7, 2003 Server, 2008 Server Operating Systems?
  • Difference between WindowsXP and Windows7?
  • Is it possible to install MSI file on  clean Windows98 system? and why?
  • When was MSI technology came into existence?
  • What is Event Viewer?
  • command to identify SID of currently logged in user?
  • Can we install two MSIs at a time? and why?
  • Registry Path for ProductCodes of MSIs installed on Windows?
  • What is System Account on Windows?
  • Which is master account on Windows?
  • What is the extension of shortcut file ?
  • How to remove small "arrow" mark for shortcuts on desktop?
  • How to make an application not to create an entry in Add/Remove Programs?
  • How to hide Remove Button for application entry in ARP using Registry?
  • How to hide Change/Modify Button for application entry in ARP using Registry?
  • How to hide Repair Button for application entry in ARP using Registry?
  • Location of AllUsers desktop shortcuts on WindowsXP and Windows7?
  • Location of AllUsers StartMenu shortcuts on WindowsXP and Windows7?
  • What are Local, LocalLow, Roaming folders on Windows 7? and how they are related to WindowsXP folders?
  • What is UAC in Windows7?
  • What is session zero isolation in Windows7?
  • How to set UAC not be displayed for installing MSIs?
  • Differences between 32it and 64bit Operating Systems?
  • How to identify if a application is 32bit or 64bit ?
  • Where are 32bit files stored in 64bit OS?
  • Where are 32bit application related registries stored on 64bit OS HKLM registry?
  • How to detect if OS is 32bit or 64bit?
  • Command to Shutdown computer on WinXP and Win7?
  • Command to Restart computer on WinXP and Win7 ?
  • What is DLL hell?
  • What is Windows File Protection? What is the location where Windows protected files are stored?
  • What is File Versioning?
  • If a machine has DLL of version 2.0 and your application has same DLL with version 3.0, what happens to the file during installation ? 


Search this blog for Answers












Friday 22 June 2012

What is Deferred Custom Action





The purpose of a deferred execution custom action is to delay the execution of a system change to the time when the installation script is executed.



This differs from a regular custom action, or a standard action, in which the installer executes the action immediately upon encountering it in a sequence table or in a call to MsiDoAction.


A deferred execution custom action enables a package author to specify system operations at a particular point within the execution of the installation script.


The installer does not execute a deferred execution custom action at the time the installation sequence is processed. Instead the installer writes the custom action into the installation script.


1. Should be placed between install initialize and install finalize.
2. Does not have access to MSIDATABASE in deferred execution.




MSI Feature Table



Feature table explains the logical tree structure of features. There should be atleast one feature in every MSI file. And a feature can have a parent and child features also. Feature table contains the list of features that are present in a specific MSI file. The following are the columns of Feature table:

For example suppose there are two features Feature 1 and Feature 2 in a specific msi file.  Suppose ‘Feature 1’ feature is child feature of ‘Feature 2’ feature.

Let us discuss about the feature ‘Feature 1’.
Feature Column:
 It is a Primary key used to identify a particular feature record. Feature column shows Feature 1 as primary key for feature Feature1.

Feature_Parent:
Feature 2 will be its parent feature, since Feature 1 feature is a child feature of Feature 2.

Title:
Title will be the Short string of text identifying the feature. So in this case it will be Feature 1.

Description:
Longer string of text describing the feature. It can be NULL

Display:
     
Value
Appearance in UserInterface
NULL
Feature not displayed
ODD NUMBER
Displayed as expanded
EVEN NUMBER
Displayed as collapsed


Level:
The initial installation level of this feature. An install level of zero disables the item and prevents it from being displayed.

Directory:
Directory_ column specifies the name of a directory that can be configured. In this particular example the Directory is INSTALLDIR.
Directory
Full path
1) INSTALLDIR
C:\ProgramFiles\{Application Name}.
Ex: “C:\Program Files\Adobe”. Where Adobe is application name.
2) TargetDir
Ex: “C:\”


Attributes:
This field specifies the remote execution option for features that have not yet been installed and for which no feature state request has been made using any of the properties. If this field is blank, the value defaults to 0.