Application Packaging Basics & FAQ

Published on August 2022 | Categories: Documents | Downloads: 3 | Comments: 0 | Views: 172
of x
Download PDF   Embed   Report

Comments

Content

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

25th December 2012

Application Appli cation & Packaging Pac kaging Basics (FAQ) (F AQ)  

 

* What is Application Application Re packaging? It is the process of capturing the changes made by an Installation Program (Package) and it is designed to support com company pany standards and distributi distribution on methods. * What What are th e ste ps of Repackaging? o Review the packaging requirements o Analyze the vendor package (Review) o Repackage the applicati application on (Scripting) o Customize the package o Test the package o Release the package to end users  users  * Why it is required & problems in Legacy Installation? o Customiz Custo mized ed Installation o Reduce Cost o Self Repair  o Source Resiliency o Unattended Install o High Support Support Costs o Fragile Installs & Uninstalls o Difficult & labor Intensive to deploy  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 MS MSI.D I.DLL LL file, it is better not to repackage the applicati application. on. 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.  hotfixes.   All these applications applicat ions are hard coded to t o use the Windows Installer service, and may make calls back to certain locations within the original MSI package. * What What are the ty types pes of Pac Packaging kaging tools? o Wise for Windows Installer  o Install Shield o SMS Installer  o Marimba  Marimba  * What What are the ty types pes of Deploy Deployment ment tools?

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

1/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

o Microsoft Systems Management Server (SMS) o Altiris Client Management Suite o Altiris Notification Server Console o HP Radia/IBM Tivoli

* What is Windows Installer? It is a built-in Operating System service for Installing and Managing Applications. It provides a standard method for developing, customizing, installing and updating applications. * Benefits of the Window Windows s Installer? Installer? o Advertising o Installation on Demand o Repair (Self-heali (Self-healing) ng) o Rollback (Transactional operations) o Managed Shared Resources o Installation in locked-down environments  environments   * What What are the types of Setup Captures in Wise / Install shield? shield? In wise there are three types o Virtual Capture : Creates a clean virtual OS on your computer, and the install installation ation is redirected in the clean virtual OS. o SmartMonitor SmartMonitor : Watches the installation and r ecords the changes the install installation ation performs. o Snapshot : Scan the computer before and after the installation and record the differences between betw een the first scan and the second.  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) progr ams o Snapshot : Scan the computer before and after the installation and record the differences between betw een the first scan and the second.  second.  * MSI Installation Mechanism (Background Mechanism)? o Acquisition The Installer Installer first installs the feature and then progresses through the actions specified specified in the sequence tables of the install installation ation database. These actions query the installation database and generate a script that gives a step-by-step procedure for performing the installation. installation. o Execution The installer passes the information to a process with with elevated privileges and runs the script. o Rollback If an installation installation is unsuccessful, the installer installer r estores the or iginal state of the com computer. puter. 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 dur ing the installation. These files are kept in a hidden, system directory. Once the installation is complete, the rollback script and the saved files are deleted.

* What is a MSI? MSI is “Microsoft Windows Installer”. It is an installation, in the form of a single file. It is actually a database that contains several tables (80+). Each of these tables contains instructions and set-up information. In wise there are 120 (87+33) tables. * Structure Structure of M SI? o Products (Collection of Features) http://appl i cati onpackag i ng basi cs.bl og spot.ca/

2/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

o Featur es (Collection of Components) o Components (Collection of files and Registries)  Registries)   * What is Product? Product is an Application. * What 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 Fea ture level. * What is Component? Components are collections of resources that are always installed or removed as a unit from a user's system. 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  Entries  Types + Machine-Specific (HKCR, HKLM, HKCC, HKU) + User-Specific (HKCU, HKU)  HKU)   Root Keys  Keys  + HKEY_CLASS_ROOT (HKCR) + HKEY_LOCAL_MACHINE (HKLM) + HKEY_CURRENT_CONFIG (HKCC) + HKEY_CURRENT_USER (HKCU) + HKEY_USERS (HKU)  (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.  initialization.   [Section] Keyname=value * What What are Service s & its types? types?  A windows windows service is a backgroun ba ckground d process pro cess which is loaded by the Service Serv ice Control Contro l Manager of the OS. o Win32 Service (Win32 services are the services which is running by the executable file installed by the Application). o System or Kernel Services (Kernel services are the services which are used by the OS to communicate to the hardware devices).  devices).   * Where Where is Serv Serv ice information information stored? Most of the Service information is stored in the windows registry “HKLM\System\CurrentControlSet\Name of the Service” * In the MSI, which tables contain information about the service details? o ServiceInstall (Service Details) o ServiceControl (Controlling the service during Installation & UnInstallation)  UnInstallation)   http://appl i cati onpackag i ng basi cs.bl og spot.ca/

3/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

* What is ODBC & DSN and its types? ODBC means Open Database Connectivity. The purpose of ODBC is to allow the user to access data from any applicati application. on. The layer between the application and the DBMS called DSN. o System DSN (DSN will will be available for all users) user s) o User DSN (DSN will be available for that particular user)   * What is File Association? The Windows operating system recognizes file types and associates them with programs based on their file extension.  A file that carries ca rries n o extension or no associated associat ed program pr ogram is called Orphane Or phaned. d. * What is Environment Variable & its types? Environment Variables are the variables that are set by the Operating System & Application. o System Variable (Available for all users) o User Variable (Available (Available for that particular u ser) ser)   * What is Proper Proper ty & types types of Propertie s, give som some e Exa Exampl mples? es? Properties are global variables that the Microsoft Windows Installer uses during an installation. o Private The installer can be use only internally (values can’t be changed during the r un time). # Manufacture, ProductCode, ProductID, ProductName, ProductVersion ……  ……   o Public The installer can be uses both internally & externally externally (values can be changed during the run time also). # INSTALLLEVEL, ….  ….  o Restricted Public The user can’t change the value both internally & externally externally due to security purposes. # ALLUSERS, REBOOT, REINSTALLMODE …  …  * What What is the Use of the following Proper Proper ties? + ALLUSERS (Null, 1, 2) User - Per-user, Not valid, Per-user   Admin  Admi n - Per-user Per -user,, Per-machine, Per- machine, Per-machine + REBOOT (Force, Suppress, ReallySuppress)  Always  Alw ays prompt pro mpt for a reboo reboott at the t he end of the installation. Suppress prompts prompts for a reboot at the end of the install installation. ation. 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 - F orce all files to be reinstalled. u - Rew Rewrite rite all required user specifi specific c 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 install ation of an applicati application on or feature. + REINSTALL (List of features to be Installed)  Installed)   + RebootRequired (Prompts for Reboot) Yes - Prompt for Reboot No - Won’t Prompt for Reboot http://appl i cati onpackag i ng basi cs.bl og spot.ca/

4/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

Time)   + ADDLOCAL (Features to be Installed locally during Run Time)  + ADDSOURCE (Features to be run from source)  source)   + INSTALLLEVEL (Which features to be Installed)  Installed)  * What is Merge Module? Merge modules are a mechanism in Windows Installer that allows companies to prepackage and share standard component definitions. definitions. Merge modules 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, ModuleAdminU ModuleAdm inUIS ISequen equence, ce, ModuleAdm ModuleAdminEx inExecuteSequ ecuteSequence, ence, ModuleAdvtU ModuleAdvtUIS ISequence equence,, ModuleAdvtExecuteSequ ModuleAdvtEx ecuteSequence, ence, ModuleIgnore, ModuleInstallUISequence, ModuleInstallUISequence, ModuleInstallExecuteSequence, ModuleSubstitution, ModuleConfiguration * How How the M erge Module is working working (Background mechanism mechanism)? )? Merge Module is working by checking the version, size & date of the file. If the file is Dll or OCX, it will check the version, other files like text it will check the Size & Date. It works by the Mechanism of  Shared Dlls Count concept which is stored in the Registry information   “HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDlls\” * You can can create M erge Module for text file, how? how? Yes you can create Merge Module for the text file also. It will works by the mechanism of checking the file Size & Date. * What What are the types of Installation Installation modes? modes?  All Windows Windows Installer package packa ge should shou ld be Installed by b y the follow f ollowing ing command line  line  Msiexec /Option [Optional Parameter]  Parameter]  o Install Options + /I - Installs a product + /j - Advertise a product u - Advertises to the current user  m - Advertises to all users of machine g - Language identifier  t - Appli Applies es transform to advertised package + /a - Administrative Installation + /x - UnInstalls a product  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  information  o Restart Options + /norestart - Do not restart after the Installation Installation + /promptrestart - Prompts the user for restar t if necessary + /forcerestart - Always restart the computer after Installation  Installation   http://appl i cati onpackag i ng basi cs.bl og spot.ca/

5/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

o Logging Options (Writes logging information into a logfile at the specified existing path. Default is 'iwearmo') + /l - I - Status messages w - Nonfata Nonfatall warnings e - All error messages a - Start up of actions r - Acti Action-specific on-specific records u - User requests c - Initial UI UI parameters m - Out-of-memory or fatal exit information o - Out-of-disk-space messages messages p - T ermi erminal nal properties v - Verbose output x - Extra debugging information + - Append to existing log file ! - Flush each line to the log * - Log all information, except for v and x options + / log Equivalent of /l* o Update Options + /update + /uninstall + /p - Applies a Patch  Patch   o Repair Options (Repairs a product) + /f p - only if file is missing o - If file is missing or an older version is installed (default) e - If file is missing or an equal or older version is installed d - If file is missing or a different version is installed c - If file is missing or checksum does not match the calculated value a - for ces all files files to be reinstall reinstalled ed 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 r eaches local package  package  o Others + /m Generates an SMS status .mif file + /? Or /h Displ Displays ays 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 comm and line. + /c Advertises a new instance of the product + /n Specifies Specifies the particular instance of the p roduct

* 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.  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 in the curr ent directory and subdirectories o /E Edit ACL instead of replacing it http://appl i cati onpackag i ng basi cs.bl og spot.ca/

6/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

o /C Continue (ignore) access denied errors o /G user : perm where where access rights granted can be: R  R  C F (read, change, full control)  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  access  E.g. “cacls c:\myfile.txt /E /G : F” In VB Script the syntax as On Error Resume next Set Wshell = CreateObject (“Wscript.Shell”) Wshell.Run “cacls c:\myfile.txt /E /G : F” * How to disable ARP Details during the Installation through Command line, tell some ARP properties? msiexec /i / i ARPSYSTEMCOM ARPSYSTEMCOMPONE PONENT=1 NT=1 o ARPAU ARPAUTHORIZE THORIZEDCDFPREFIX DCDFPREFIX o ARPCOMMENTS o ARPCONTACT o ARPINSTALLLOCATION o ARPN ARPNOMODIFY OMODIFY o ARPNOREMOVE o ARPNOREPAIR o ARPPRODUCTICON o ARPREADM ARPREADME E o ARPSIZE o ARPSYSTEMCOMPONENT o ARPURLINFOABOUT o ARPURLUPDATEINFO  ARPURLUPDATEINFO  * During Installation how to take a back up copy of the Application through Command line? I never tried check it out.  out.  * What is Dll Cache folder? During the process of SFC (System File Checker) or WFP (Windows File Protection), it will scan all the protected files (.SYS, .DLL, .EXE, .TTF, .FON, and .OCX extensions) to verify their  versions. If If the versions are not correct, it will will replace the par ticular 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 ar e the correct ones (original Microsoft 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 ver sions. If If the versions are not correct, it will will replace the particular files from the back up folder called DLL Cache folder * What is Windows File Protection (WFP)? WFP is also one o ne Utility tool which will will do automatically. a utomatically. 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. http://appl i cati onpackag i ng basi cs.bl og spot.ca/

7/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

* How Do I Control Windows File Protection (WFP)?  All registry settings set tings for WFP/System File Checker are a re located locat ed in “H “ HKEY_LOCA KEY_LOCAL_MACH L_MACHIN INE\ E\ 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 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. FFFFFF FF = cache-protected system files on the local hard drive. SFCShowProgre SFCShow Progress ss ( REG_DWORD 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 Adve Adve rtisement? 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 app ears ( shortcu shortcuts, ts, files & registries) r egistries) to a user u ser or other s, when an Application is “assigned”. When the user tr ies to open, it is installed upon demand. o Publishing No Entry points appear to a user or others, when an Application Application “published” to the group. It is activated only if the group Application activates the published Application i.e. Installation on Demand. * What What is Adve Adve rtised Fe ature & Component? If a Feature or Com Component ponent is advertised, only the interfaces required for loading and launching the application are installed installed to the user or others. If a user activates an advertised interface the installer install er then proceeds to install the necessary Components Components & Features. * What is Installation on Demand? When a user or applicati application on activates an advertised feature or product, the installer proceeds with installation of the needed components.  components.   * What is Transfor m?  A transform transfo rm is a windows windows installer file f ile with with the extension (.MST). It should shou ld be used use d along with a MSI to customize or change the installation package without modifying the MSI. The installer can only apply transforms during an install installation. ation. * What What are the ty types pes of Trans Transform? form? o Embedded transform Embedded Em bedded transforms are stored inside the .msi file of the package. o Secured transform Secured transforms are stored locall locally y on the user's com computer puter in a location where, 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-oninstallation-ondemand or maintenance installations installations of the package, the installer uses the cached transforms. o Unsecured Unsecured tr ansform Transforms that have not been secured are called unsecured transforms. To apply an http://appl i cati onpackag i ng basi cs.bl og spot.ca/

8/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

unsecured transform, pass the transform file names in the TRANSFORMS property or command line string during the installation. * How to Create Transform in Wise / Install Shield? In Wise Package Studio, by using Install Tailor or New Project -à other templates -à Transform In Install Shield Admin Studio, by using the New Project -à Transform * How many many Transform Transform can be cre ated for one Vendor M SI SI? ?  Any Number Number * How many Transforms can be supplied in the Command line?  Any Number 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 mes message sage and returns failure, termi terminating nating the install installation ation o EXE file having a path specified by a property value o EXE file having a path referencing a directory o JScript file stored in a Binary table stream o JScript file that is installed with a product o JScript text specified by a property value o JScript text stored in this sequence table o VBScript file stored in a Binary table stream o VBScript file that is installed with a product o VBScript text specified by a property value o VBScript text stored in this sequence table o Property set with formatted text o Directory set with formatted text o Installation of a package nested inside of the first package. See Nested Installation Actions o Installation of a package that resides in the first application’s source tree. See Nested Installation Actions o Installation of an application that is advertised or already installed. See Nested Installation  Actions    Actions * What What are the ty types pes of Sequence s in the Custom Actions? o Normal User User Interface o Normal Execute Execute Im Immediate mediate / Deferre Def erred d o Administrative User Interface o Administrative Execute Immediate / Deferred o Advertisement Execute Immediate / Deferred  Deferred   * What What are the ty types pes of Conditi Conditions ons in the Custom Actions and what is the use ? o Not Installed - During Installation only o REMOVE REMOVE - Dur ing UnInstallation UnInstallation only o NOT REMOVE REMOVE - During both Install & UnInstall 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 install installation ation database (r ead & set installation properties, modify feature & http://appl i cati onpackag i ng basi cs.bl og spot.ca/

9/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

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 doesn’t have access to the installation database. Deferred custom actions are not executed immediately. Instead they are scheduled to run later  during the execution script. The execution script isn't processed until the InstallExecute, InstallExecuteAgain, or InstallFinalize action is run. If the Current User doesn’t have the elevated privileges (Custom actions make changes in the system directly), the custom actions should run in Deferred Execution in User Context only. o Rollback only This Action should be executed during the Installation of the Rollback script or if the Installation is Unsuccessful o Commit only This Action should be executed during the Installation of the Commit script. o Deferred Execution – System Context Deferred custom actions can only be sequenced between the InstallInitialize and InstallFinalize actions in execute sequence tables. It doesn’t have access to the installation database. Deferred custom actions are not executed immediately. Instead they are scheduled to run later  during the execution script. The execution script isn't processed until the InstallExecute, InstallExecuteAgain, or InstallFinalize action is run. If the Current User have the elevated privileges (Custom actions make changes in the system directly), then it should run in Deferred Execution in System Context only. * What What is the diffe rence betwe en “Immediate “Immediate Execute / Defe rre d Execute 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  tables  o Immediate custom actions have access to the Installation database Deferred custom actions doesn’t have access to the Ins Installati tallation on database  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 What is the diffe rence betwe en “Defe rre d in Sy System Context Context / Defer red 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”  Context”   If the Custom action which installs or modify the system file directly should be run in “Deferred Execution Ex ecution in System Context” * What are the types of Processing Options in the Custom Actions and what is the use? o Synchronous Windows Installer runs the custom action synchronously to the main installation. It waits for the custom action to complete successfully before continuing the main installation. o Synchronous, ignore exit code Windows Installer runs the custom action synchronously to the main installation. It waits for the custom action to complete before continuing the main installation; the action can be either  success or fail. o Asynch, wait at end of sequence Windows Installer runs the custom action simultaneously with the main installation. At the end it waits for the exit code from the custom action before continuing. o Asynch, no wait Windows Installer runs the custom action simultaneously with the main installation. It doesn’t wait for completion of the custom action and doesn’t check the exit code also. http://appl i cati onpackag i ng basi cs.bl og spot.ca/

10/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

* 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 computer * What is App App Se arch?  App Search action a ction is used use d to search se arch for f or exi e xisting sting versions ver sions of product p roducts s (Files, Registry, INI, INI, Directory & Component) * What is Isolated Component, why we are using and its types? It means means that to t o prevent overw overwriting riting of previous versions of shared components, and ensures that other applicati applications ons do not overw overwrite rite your version of shared com components. ponents. o Manifest file concept o Local file concept  concept  * What is the M SI Assembly Assembly tables & its use ? MSII Assembly MS Assembly tables tab les specify Windows Installer Installer settings for Microsoft ®.NET Framework assemblies and Win32 assemblies. It is used for the registration of .Net Assembly files. When installing assemblies to the global assembly cache, the installer cannot use the same directory structure. Assemblies can exist only once in the assembly cache. Assemblies are added and removed from the assembly cache atomically  atomically   * What What is the latest v ersion of Window Windows s Installer? Installer? The latest version of Windows Installer is 4.0 * What is the differe nce betwe en Wise Package Package Studi Studio o & Install Shield Shield Admin Admin Studio? Both tools are more or less same, but as per my knowledge for capturing part Install Shield is good, it won’t capture unnecessary files & registry keys and for editing the MSI or .wsi or .ism, Wise is better because Wise GUI is good.  good.   I found lot of bug in Install Shield only o GUI part o Shortcut Icon (other than executable files) o Directory Directo ry table ta ble (IN ( INSTALLDIR STALLDIR)) o Create unnecessary entries while editing the MST o Product language property won’t 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 won’t validate the MSI if that MSI is installed in the local system  system   * What is Conflict Management? When two or more applications install the same system files (DLLs, .VBXs, and .OCXs), Windows registry, and other item items. s. To detect, Conflict Management Management should be use and for resolve the software conflicts, Application Isolation concept should be use * What are th e ty types pes of Deployment Deployment (Softwa (Software re Dis Distribution)? tribution)? http://appl i cati onpackag i ng basi cs.bl og spot.ca/

11/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

o Group policy (Active Directory) o Software Update Services (SUS) o Windows Update Web site o Systems Management ser vice (SMS)  (SMS)  * What is Software Distribution? One of the more critical aspects to managing a Windows environment is the ability to deploy new applications, updates, upgrades & patches. Distributing new or updated software is called as Software Distribution. * What is Group Policy (GPO) (GPO) & how to set it?  Administrato  Admi nistrators rs use Group Policy to define options for f or managing, configur ation of server servers, s, desktops, and groups of users. It is used to set policies across a given site, domain, domain, or range of  organizational units. Use “gpedit.msc” in the run command to set the policy. * What What is Elev Elev ated User & how to create it? If the user having the privileges of MSI features (Windows Installer) is called as Elevated User  You can create through “gpedit.msc” in the r un Command Command or registry keys  keys  HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer  Type : DWORD Key: AlwaysInstallElevated Value : 1 * What is Wrapper MSI? It means that the Application (MSI) is packaged by calling the Exe (Executable file) inside the MSI (Internally calling the source or exe). * What is Lock Lock down e nvironment? Software restriction policies provide administrators with a Policy-driven mechanism to identify software running on computers in a domain, and control its ability to execute. This policy can be used to block malicious scripts, help lockdown a computer, or prevent unwanted applications from running. * How do deploy the Package? o Group policy (Active Directory) o Software Update Services (SUS) o Windows Update Web site o Systems Management ser vice (SMS)  (SMS)  * What is IntelliMirror? IntelliMirror management technologies is a set of powerful features for change and configuration management. It ensures that users’ data, software, and personal settings are available when they move from one computer to another, and persist when their computers are connected to the network. Microsoft divides IntelliMirror's features into the following four categories: o User Data Management :. IntelliMirror supports the mirroring of user data to the network and local copies of selected network data. o Software Installation and Maintenance : IntelliMirror allows you to centrally manage software installation, install ation, repairs, updates, and removal removal.. o User Settings Management : IntelliMirror allows you to centrally define computing environment settings for both users and workstations. workstations. o Remote Installation Services : IntelliMirror allows you to image workstations with the Windows 2000 Professional operating system  system  * What is Active Directory? Deploying Deployi ng applications through the Acti Active ve Directory is done thr ough the use of gr oup policies, and therefore applications are deployed either on a per user basis or on a per computer basis. http://appl i cati onpackag i ng basi cs.bl og spot.ca/

12/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

What hat are the other tools which are used dur ing the te sting & solving solving the Issues in *W the Application? o Picture Taker  o Windows Install Master  o Install rite o RegMon o FileMon o CsDiff  o Icon Extractor & Icon Builder  o RegExtractor  o WiLogUtl o WiseComReg o ResourceW2K  ResourceW2K  * What What is Orca tool & what is the purp ose and Advantage s? This tool is a Microsoft product. It is used for edit the MSI Databases (tables). o No limitation for the table entries o Easy to edit the Databases o If you edit any tables and give save, only those tables will be modified, but in Wise or Install Shield all the tables will change  change  * Why multiple MSIExec is running during the Installation? Windows Installer uses a client-server model for performing installations. Additionally for security reasons, Windows Installer hosts DLL and script custom actions in a "sandbox" process. Depending on how the install was initiated, one of the MSIExec processes can be the client process (Current User). Another MSIExec process is Windows Installer service (System). * Which drive your Application will Install, C drive has less space and D drive has more space? Why & how to solve? It will install “D” drive only due to Windows Installer features. We can solve by adding “WindowsVolume” entry in the directory table as parent of  “TARGETDIR” * What is a Patch? Patching is a streamlined process for updating earlier versions of a Windows Installer setup package i.e. when you update only files that already exist in your installation package. Only the package code is changed. * What is Upgrade? Upgrade is a process of updating the earlier versions of a Windows Installer setup package i.e.  Adding, changing chan ging & deleting delet ing new Files & Registries. But here produ product ct code, code , product pro duct ver sion & package code should be changed. * What What are the ty types pes of Upgrades and what is the differe nce? o Small Update  A small update is a product p roduct update that changes c hanges a few files or possibly po ssibly adds some so me new content. But there is a limitation limitation for the changes th at 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 Engineeri ng ( QFE)”. o Minor Upgrade  A minor minor update u pdate is a product pro duct update up date that t hat makes enough en ough changes. ch anges. But ther e 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 called as a “Service Pack”. o Major Upgrade  A major update is a product pro duct update up date with a large lar ge number of changes. chan ges. T here is no limitation for  http://appl i cati onpackag i ng basi cs.bl og spot.ca/

13/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

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 p roduct. It is also called called as a "Product Upgrade”. * How you you v alidate the MSI?   In Wise Package Studio, by using “Package Validation” option by selecting the MSI with the default Cub file or Browse your own Cub file. In Install Shield, by Build -à Validate-à Default Cub file or Browse your own Cub file. * What is ICE? It means “Internal Consistency Evaluation”. ICEs are used to validate installation packages. * Give Give som some e ICE Error number and te ll how to solve the ICE Errors? There are totally 96 ICE Errors and 14 ICEM Errors in the Windows Installer. Some examples are as follow f ollows s o ICE03 - Basic data and foreign key validation o ICE18 - Validates the KeyPath column of the Component table when it is NULL. o ICE21 - Validates that all components in the Component table map to a feature in the FeatureComponents table. o ICE33 ICE33 - Checks for entries in the registry table that belong in othe r tables. o ICE38 ICE38 - Vali Validates dates that com components ponents installed under the user's profile use a registry key under  HKCU as their key path. o ICE64 - Checks that new directories in the user profile are removed in roaming scenarios. o ICE57 - Validates that individual components do not mix per-machine and per-user data. o ICE59 ICE59 - Checks that advertised shortcuts belong to com components ponents that are installed by the target feature of the shortcut. Ø  oICE81 Ø  oICE50 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  Installer  o MST - Microsoft Transform o PCP - Windows Installer Patch Project file o MSP - Microsoft Window Windo ws Installer Patch o WSM - Microsoft Windows Installer Merge Module  Module  Project file  file  o MSM - Microsof Microsoftt Windows Installer Merge Module o EXE - Executable file  file  * How to install install the .Exe file thr ough 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 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 & http://appl i cati onpackag i ng basi cs.bl og spot.ca/

14/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

Typelib tables in the MSI. For example most of the merge module components are called as COM Component (MSCOMCTL.ocx, (MSCOM CTL.ocx, COMC COMCTL.ocx TL.ocx …) * How the COM Com Component ponent is working (Me chanism chanism)? )? COM Component is working by the mechanism of “Windows Installer Tokens”. It is nothing but “Advertising”. This token triggers the Windows Windows Installer 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 Windows installer tokens should never be part of the registry table of an MS MSI. I. They are created at install time by the msiexec service due to the way the MSI has been authored using advertising.   advertising. These tokens exist in 3 forms.  forms.   o Tokens within .lnk files that indicate to the OS that they are Windows Installer advertised shortcuts. o Tokens for a dvertised file extensions. extensions. o Tokens for advertised COM Dll information.  information.   They have the following following structure. Your browser may not support display of this image. * What What are th e de fault Windows Windows Installer Installer prope rties? 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 [LocalA [LocalAppDataFolder] ppDataFolder] 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 [Profil [ProfilesFolder] esFolder] C:\Documents and Settings\Current User\ o [Program [ProgramFilesFolder] FilesFolder] 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 [StartM [StartMenuFolder] enuFolder] http://appl i cati onpackag i ng basi cs.bl og spot.ca/

15/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

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 [T empl emplateFolder] ateFolder] C:\Documents and Settings\Current User\Templates\ o [WindowsFolder] C:\Windows\ o [WindowsV [WindowsVolume] olume] C:\ * What What are the default Environment se ttings in XP? XP? o ALLUSERSPROFILE C:\Documents and Settings\All Users o APPDATA C:\Documents and Settings\current User\Application Data o CommonProgramFiles C:\Program Files\Common Files o COMPUTERNAME System Nam Name e 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\USE Settings\USERN RNAM AME\Local E\Local Settings\Te Settings\Temp mp o USERNAME Current User  o USERPROFILE C:\Documents and Settings\Current User  o Windir  C:\Windows * What is Package Code? The Package Code is a GUID identifying a particular Microsoft Windows Installer package. It associates an .MSI file. * What is Product Code? The Product Code is a GUID identifying a particular Application or product. * What is the differe nce betwe en Stati Static c & Dynam Dynamic ic scanning? o Static Scanner Scanner : This scanner looks at all the files included included in the pr oject and checks for any dependencies. It then recommends all the possible dependencies and allows you to add them to the project. http://appl i cati onpackag i ng basi cs.bl og spot.ca/

16/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

o Dynamic Scanner : The Dynamic Scanner monitors the system for dynamically loaded files in memory while running the application file. Use the dynamic scanner to launch your application and test the controls in the application. Some Some of these controls load files in the mem memory ory 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 dynam dynamic ic scanner is more robust than the static scanner and certainly picks picks more dependencies.   dependencies. * What What is the Eve nt Viewer, how to ope n & what is it it use? It is a Windows utility tool in the OS. You can open by giving “eventvwr” in the run command also. It is used to view all exceptional events occur in the OS and also for the System administrator to track the perfor manc mance e of the OS.

* What is VB Script?   VB Script is a Microsoft Scripting language that means it is a lightweight programming language. It is a light version of Microsoft's programming language Visual Basic. It is used to add interaction for the web page projects. * What is Wise Script? I never worked on. * Tell some objects in the VB Script & when & why it is used in the Application? o Class Object :- Provides access to the events of a created class o Dictionary Dictionary Object :-Object that stores data key, key, item item pairs o Err Object :-Contains inform information ation about run-time errors o FileSystemObject Object :-Provides access to a computer's file system o Matc Match h Object :-Provides access to the read-only properties of a regular ex expression pression match o Matches Matches Collection :-Collection of regular expression Match Match objects o RegEx RegExp p Object :-Provides simple regu regular lar expression suppor supportt * How to install only one particular feature during the Installation through Command line? msiexec /i ADDLOCAL=

* Transforms  

The inst installation allation process can be manipulated by applying transforms (.ms (.mst) t) to the inst installation allation 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 Customiz ation transforms, much like patches patches,, remain cached on the computer. These These transforms are applied to the base package file whenever Windows Installer needs to perform a configuration  change to the installation package. Transforms are applied at initial installation; they cannot be applied to an already installed application. Custom Actions  Actions :InstallExecuteSeque :InstallExecuteSequence nce   Merge Modules & Nested Exec Executables utables :as a.ms a.msm m file component, Avoids Avoids version version conflict conflicts s   self heal or self repair  Transforms   .mst file   Secure, unsecure, embeded   defua defualt lt -unsecure (can modify)

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

17/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

  secure -read only Microsoft Micros oft Window s Installe Installe r    Microsoft included Windows Installer as a core service (msiexec.exe) within Windows 2000 to install, repair, and remove software based on instructions contained in .MSI files.   These .MSI files are basically database files that contain all the information an application needs in order to install a packaged application. Then once you package your application you can deploy it using Group Policy by one of two methods: Assigning an application. You can assign a .MSI package to either a computer or a user. If you assign it to a compu c omputer, ter, the t he packaged packaged application installs installs the next time t ime the computer reboots. reboots. If you assign it to a user, the application typically installs when the user tries to run it from the Start menu or tries to open a file that has a file extension associated with the application.   Publishing an application. You can publish a .MSI package to users only. This provides the user with an option within Add or Remove Programs in Control Panel that lets them manually install the application if they want to.   This tool fully complies with Microsoft’s .MSI . MSI standards while while also ext extending ending the capabilities of .MS .MSII 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 relational ty pe database database that stores s tores all the instructions inst ructions and data data required to install (and uninstall) the program across many installation scenarios. For example, a package file could contain instructions for installing an application when a prior version of the application is already installed. The package file could also contain instructions for installing the software on a computer where that application has never been present.   The Installer is actually a relational database. This database consists of the Installer package (data1.msi). (da ta1.msi). Th This is package contains contains info information rmation such as the installation sequence, sys tem dependencies, destination folder paths, setup properties, component to feature relationship, and overall installation options. This database is never actually changed or written to. Instead, it uses what is called a Transform file (.mst) to apply customizations that you desire, to transform the database from its default state. The Installer doesn't stop there. It also is used for post-installation features such as Detect and Repair, Add/Remove programs, Run From Network and Install on First Use options. It is also used to give Elevated Rights (which is not turned ON by default) to an application on Windows NT so the user  doesn't have to be a member of the local NT Administrator group. Overall, the Installer technology creates a higher level of customization than has ever been attempted before. Windows Installer  technologies are divided into two parts that work in combination: a client-side installer service (Msiexec.exe) and a package file (.msi file). Windows Installer uses the information contained within a package file to install the application.   Installation package file   Each package (.msi) (.msi) file contains a relational relational type database 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. http://appl i cati onpackag i ng basi cs.bl og spot.ca/

18/27

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

18/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

  Because the database is relational, changes made to one table are propagated automatically throughout the database. This is a very efficient process for introducing consistent changes into the installation process that simplifies customizing a large application or group of applications. The Windows Installer  database tables reflect the general layout of the entire group of applications, including:

  Available features   Components   Relationships between features and components   Necessary reg registry istry settings

 

The Windows Installer database (.ms (.msii file) consi consist sts s of multiple interrelated tables that together compose a relational database of the information necessary to install a group of features. The following table describes the groups of related tables:   Group Description   Core table group Describes the funda fundamental mental features and components of the application&

installer  inst aller 

package.   File table group Contains the files ass associat ociated ed with the inst installation allation package. package.   Registry table group Contains the registry entries.   Sys tem table group Tra Track cks s the tables and columns of the inst installation allation database. database.   Locator table group Used to search the regist registry, ry, installer inst aller configuration data, directory tree, or .ini files for the unique signature of a file.   Program inst installation allation group group Holds proper properties ties,, bitmaps, shortcuts, shortcut s, and other elements needed needed for the application app lication installation.   Installat Installation ion procedure group Manages the tasks performed during the installation installat ion by standard acti actions ons and custom actions.

How do I install only the features I want?

The ADDLOCAL, ADDSOURCE, and ADVERTISE properties can be used to install only a certain 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

 Anot her i mpo rtant t hi ng t o rem emb er is that feat ure na mes are case-sensiti case-sensiti ve.

  What is a managed application?

 Ans: A man age d app li cati on is an app li cati on where the sys ystem tem adm in istrator exerts some le vel of control over the in stal la tio n and maintenance of the product. Managed applications are often used to deploy software to large numbers of users or machines. Managed applications are a way for system administrators to allow users to install authorized software in locked-down environments where users generally do not have the rights to install software.

 An a ppl icat io n i s conside conside red m ana ged if it is:

• Ins Installed talled or advertis advertised ed to a user by a member of the Administr Administrators ators group.

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

19/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ • Ins Installed talled or advertis advertised ed per-machine per-machine by a member of the Admini strat trators ors group.

• As Ass signed or publi shed on Windows 2000 and l ater by an Administrat Administrator. or.

• Mark Marked ed as managed by another softw software are and deployment management sys system. The exact method depends on the management sys ystem tem u sed, b ut ge nerall y requires an adm ini strator's action.

 An in stal la tio n package canno t decl are itself "ma nag ed." Whethe r or not an app li cati on is man age d is control le d by the sys ystem tem administrator.

Note that "managed" is different from "elevated." An elevated application is an application that can run with system privileges when installing. All managed applications are elevated, but applications can be elevated without being managed by means of the  AlwaysInstall Ele vated pol icy. Due to its securit y im pl icat io ns, t hi s pol icy is di sabl ed by defa ul t and requi res carefu l considerat io n befo re use.

What are the differences between a 'deferred' custom action and an 'immediate' custom action?   Deferred  

custom actions can only be sequenced between the InstallInitialize and InstallFinalize actions in execute sequence tables.

Immedi ate  custom

actions, on the other hand, can be sequenced anywhere within any of the sequence tables.

Deferred Deferr ed custom actions cannot access the i ns nstall tall ation database. In fa ct, deferred custom custom acti ons have very limi ted access to the installati on session because an installation script can be executed outside of the installation session that created it. Immediate custom actions have access to the installation database and can read and set installation properties, modify feature and component states, and add temporary columns, rows, and table s among othe r things.

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

Deferred custom actions are not executed immediately. Instead they are scheduled to run later during the execution script. The execution script isn't proces process sed unti l the Ins Install tall Execute, Install Install ExecuteAgain , or Install Install Final ize actio n is run.

When should I use a deferred custom action instead of an immediate custom action?  

Deferred custom actions should be used when the custom action must make a change to the system or call another system service.  Addi tio nal ly, onl y def erred custom acti ons can run in an el evate d con text. If you r custom custom acti on requi res elevat ed privi le ges in order to run,

 Applicatio  App lication n Packagin…

your custom custom a ction needs to b e ma rk rked ed a s deferred. deferred.search

Classic  Classic 

Note: Custom Custom a ctions marked marked to run in the system system con text (msidbCustomActionTypeInScript (msidbCustomActionTypeInScript + msidbCustomActionT msidbCustomActionT ypeNoImpers ypeNoImpersonate) onate) wil l only run in the system context if the installation itself is elevated.

 Addi tio nal ly, when making a cha nge to t he sys ystem tem by me ans of a custom acti on, you shoul d a lso i nclu de a

rollback  custom   custom

action that can

undo the change.

  What are the differences differences between s mall, minor, and maj or updates? updates?    A smal l upd ate is a produ ct u pda te that chang es a few fil es or p oss ossib ib ly add s some some new conte nt. A mi nor upd ate is a produ ct u pda te tha t

makes enough changes to warrant changing the product version for the product, whereas a major update is a product update with a large number of changes that warrants a change in the product code. This table summarizes what changes in each update and the possible distribution vehicles for each.

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

20/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

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

Small and minor updates can be considered almost equal in that the only real difference is that a minor update has a change to the ProductVersion whereas a small update does not. The rules that they follow and application of the patch are the same. Application of small and minor update patches requires explicit reinstallations. Major updates are not subject to that limitation and a reinstallation is not required requir ed for patch application. Additi onally small and minor update patches are limited in the changes that can be made to the featurecomponent structure for the package. Significant changes can be made to the feature-component structure in the scope of a major update.

 

Custom actions Custom actions are actions entirely defined by the user. They can be executable files, dynamic linked libraries, Visual Basic scripts or JavaScript files. They can be scheduled at any time during the installation. Basically, an installation process consists of two sequences: Installation User Interface Sequence and Installation Execute Sequence. In Advanced Installer, these sequences are located in the Custom Actions page, under the Project Details tree. In the User Interface Sequence only Sequence  only immediate custom actions can be used. It contains a list of Standard  Actions   [http://www.blogger.com/blogger.g?blogID=2559650086942045984] starting with Begin Begin and  and ending with  is the one that triggers the execute sequence. At the end of the installation ExecuteAction. ExecuteAction ExecuteAction. ExecuteAction is 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 ExecuteAction.. The installation process ends with the ExitDialog. The Execut Execute e Sequence Sequence contains  contains a list of Standar Standard d A ctions  [http://www.blogger.com/blogger.g? blogID=2559650086942045984] that starts with Begin Begin and  and ends with InstallFinalize InstallFinalize.. It also can contain all types

of custom actions: immediate, deferred, rollback and commit actions. In Advanced Installer, the Execute Sequence standard actions organized in by three categories: Dynam ic View sare templ template. ate. Pow Pow ered Blogger  . Before Initialization Before File Installation Before Finalization In the "Before Initialization" category only immediate actions can be used. The sequence that starts with the InstallInitialize standard InstallInitialize  standard action and ends with InstallFinalize InstallFinalize will  will be gone through twice. The first time the installer  scans all the actions containe c ontained d by the t he Execute Sequence and and it creates the installation script sc ript used for the actual install. The second time, based on the installation script, the installer executes all t he 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 write/mod ify registries, crea c reate te 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 dialo dialog g and/or execute any any c ustom actions act ions that may be placed after after the ExecuteAction  standard ExecuteAction standard action.  As mentioned abov above, e, there are four four types of actions: immediate actions deferred defer red actions act ions rollback rollb ack actions commit actions The immediate immediate actions  actions can be used anywhere in the Install UI Sequence and in the Execute Sequence, but for  the second one there is a phase where immediate actions can no longer be used. That is when the installation script is triggered. The immediate actions should not modify the target machine since those changes cannot be rolled back. The deferred deferred actions,  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.

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

21/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

rollback actions  actions are used when the application is installed, but something went wrong and the installation The rollback must be rolled back. W hile the installation script is executed, the installer builds a rollback script. sc ript. After every every standard standar d action is executed, the installer adds a rollback command to the rollback sc ript. The commit commit actions  actions are the opposite opposite of the rollback rollback actions. The commit script s cript is executed after after the InstallFinalize standard InstallFinalize  standard action when everything ended successfully. Its purpose is to delete the backup files created by the rollback script. For each of the deferred, rollback and commit actions you have an additional option: With no impersonation. 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.

Path Variables Define commonly used paths in a central location so that you do not need to change every source file's path each time you move the

project or change th e di rectory structur tructure. e. In the previous example, i f you keep all of your appl icatio n's source file s in variou s subfol ders under C:\Work C:\Work\Files, you could create one variabl e that p oints to the Fi les folder—<MyFiles>. folder—<MyFiles>.

If you want to inclu de a fil e tha t is in C:\W C:\Work ork\Files\Images, \Files\Images, you enter <MyFiles>\Images. <MyFiles>\Images. If you move your fi les to D:\Work D:\Work\Files, you can g o to one place, your variable <MyFiles> .

 All path variab le s can can b e vi ewed and mod ifi ed i n th e Pa th Va riab le s explorer i n th e Pa th Va riab le s view. You can u se pa th vari abl es in almost any location in InstallShield where you link to source files, such as in the Dialog Editor, dynamic file links, and the release location. Instead of entering the path variables yourself, you can have InstallShield recommend them whenever you browse to a path. Path variables are used during the development of your installation project. These paths do not apply to the target machines where the application is being installed. Rather, they are used to link to source files for your installation project. When the project is built, those links are evaluated and the files they point to will be built i nto the installation. installation.

There are fou r types of path variable s that you can u se. Each type fu nctions somewhat somewhat di fferently from the others others.. Regardless of the p ath variable type you use, the variable name is provided in the same manner throughout InstallShield.

Types of Path Variables Variable T ype

Predefined Path Variables [msits:C:Program%20FilesCommon%20FilesInstallShieldAdminStudioHelp0409IHelpPreDefPathVariables.htm]

Description Predefined path variables are path variables that point to some of the most commonly used folders. Unlike other  othe r  types of path variables, these values cannot be edited in

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

22/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

InstallShield.

See Registry Path Variables [msits:C:Program%20FilesCommon%20FilesInstallShieldAdminStudioHelp0409IHelpRegPathVariables.htm]

The values of  registrybased path variables are derived from the registry keys you created. After  creating the registry key, you need to set a path variable to this key.

Environment Variables [msits:C:Program%20FilesCommon%20FilesInstallShieldAdminStudioHelp0409IHelpEnviroPathVariables.htm]

Environment path variables are based on the values of  your system's environment variables. You can set an environment path variable to an existing environment variable.

Standard, or  user-defined, path variables are defined through InstallShield. You can specify a path variable such as <MyFiles> Standard Path Variables [mswith a value its:C:Program%20FilesCommon%20FilesInstallShieldAdminStudioHelp0409IHelpStandardPathVariables.htm] of  C:\Work\Files. These variables do not rely on any outside sources, such as the registry or  system paths.

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

23/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

Standard Actions  A Windows Windows Installer installation is run as a s a sequence seq uence of o f events, event s, called Standard Stan dard Actions. In between them, you can schedule your own Custom Actions  [http://www.blogger.com/blogger.g? blogID=2559650086942045984] . The standard actions used by Advanced Installer can be shown by using the "Show Standard Action" button Action"  button on the toolbar of the "Custom Acti Actions" ons" page and they are:

InstallUISequence Standard Action

Description

Begin

starts the UI sequence (when the dialogs are shown)

PrepareDlg 

"PrepareDlg" dialog is shown

 AppSearch

performs the searches in the Search   [http://www.blogger.com/blogger.g? blogID=2559650086942045984] page

FindRelatedProducts

older or newer versions of the package are searched. If an older version is found, its Product Code is placed in the "OLDPRODUCTS" property

LaunchConditions

evaluates the launch conditions

CCPSearch

validates that qualifying qualifying products are installed on a system before an upgrade is performed

RMCCPSearch

validates that qualifying qualifying products are installed on a system before an upgrade is performed

CostInitialize

determines determi nes the disk space required by the install process

FileCost 

determines determi nes the disk space required by each file in the Files and Folders [http://www.blogger.com/blogger.g?blogID=2559650086942045984] page

CostFinalize

ends the disk space costing and resolves the folders in the pr oject

MigrateFeatureStates

during an upgrade it reads the featur e states in the old version and then sets these feature states in the new version.

WelcomeDlg 

"WelcomDlg" "WelcomDl g" dialog is shown

ResumeDlg 

"ResumeDlg" dialog is shown sh own

MaintenanceWelcomeDlg  "MaintenanceWelcomeDlg" dialog is shown PatchWelcomeDlg  "PatchWelcomeDlg" dialog is shown sh own ProgressDlg 

"ProgressDlg" dialog is shown

ExecuteAction

starts the Execute sequence (when the actual installation is performed)

InstallExecuteSequence Before Initi Initialization alization Standard A ct ction

Description

Begin

starts the Execute sequence (when the actual installation is performed)

 AppSearch

performs the searches in the Search   [http://www.blogger.com/blogger.g? blogID=2559650086942045984] page

FindRelatedProducts

older or newer versions of the package are searched. If an older version is found, its Product Code is placed in the "OLDPRODUCTS" property

LaunchConditions

evaluates the launch conditions

CCPSearch

validates that qualifying qualifying products are installed on a system before an

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

24/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

upgrade is performed RMCCPSearch

validates that qualifying qualifying products are installed on a system before an upgrade is performed

ValidateProductID

sets the ProductID property to the full product identifier 

CostInitialize

determines determi nes the disk space required by the install process

FileCost 

determines determi nes the disk space required by each file in the Files and Folders [http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.

IsolateComponents

installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer 

CostFinalize

ends the disk space costing and resolves the folders in the pr oject

SetODBCFolders

checks for existing ODBC drivers on the system and sets the target directory of each new driver to the location of an existing driver 

during an upgrade it reads the featur e states in the old version and then sets MigrateFeatureStates these feature states in the new version version InstallValidate

verifies that all volumes to which cost has been attributed have sufficient space for the install installation. ation. It also notifies the user if one or more files to be overwritten overw ritten or removed are curr ently in use by an active process

RemoveExistingProducts upgrades an older version of the package if one is found

Before File Installation Standard Action

Description

InstallInitialize

marks the beginning of the sequence of actions which which change the system

 AllocateRegistrySpace

ensures that an app ropriate amount of free reg istry space exists exists in the registry.

ProcessComponents

registers and unregisters components, their key paths and the component clients

unpublishes the assemblies installed by the package. Runs only during an MsiUnpublishAssemblies uninstall Uninstall

removes components

UnpublishComponents

removes information information about com components ponents published by the package. Runs only during an u ninstall

UnpublishFeatures

removes selection-state selection-state and featur e-component mapping mapping information from the system registry. Runs only during an un install stops services which use "Stop" control operations

StopServices

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] in the

package removes services which use "Delete" control operations DeleteServices

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] in the

package. UnregisterComPlus

removes COM+ applications from the registry. Runs only during an uninstall unregisters all modules which used self registration

SelfUnregModules

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] during

install. Runs only during an uninstall UnregisterTypeLibrariesunregisters UnregisterTypeLibraries unregisters type libraries from the system. Runs only during an uninstall RemoveODBC  UnregisterFonts

removes the ODBC ODBC data sources, translators and dr ivers. Runs only during an uninstall removes registration information about installed fonts from the system.

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

25/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

Runs only during an uninstall removes registry entries created in the Registry RemoveRegistryValues

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.

Runs only during an uninstall UnregisterClassInfo

manages the removal of COM class information from the system registry. Runs only during an uninstall

UnregisterExtensionInfo

manages the removal of extension-related information from the system registry. Runs only during an uninstall

UnregisterProgIdInfo

manages the unregistration of OLE ProgId information with the system. Runs only during an uninstall

UnregisterMIMEInfo

unregisters MIME-related registry information from the system. Runs only during an uninstall removes INI files or entries created in the Files and Folders

RemoveINIValues

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.

Runs only during an uninstall removes the shortcuts created in the Files and Folders RemoveShortcuts

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.

Runs only during an uninstall modifies or removes the environment variables created in the Environment RemoveEnvironmentStrings [http://www.blogger.com/blogger.g?blogID=2559650086942045984] page. Runs only during an uninstall RemoveDuplicateFiles

removes files created by File Duplication  [http://www.blogger.com/blogger.g? blogID=2559650086942045984] operations. Runs only during an uninstall removes the files created in the Files and Folders [http://www.blogger.com/blogger.g?blogID=2559650086942045984] page. Runs only during an uninstall

RemoveFiles

removes the folders created in the Files and Folders RemoveFolders

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.

Runs only during an uninstall creates the folders specified in the Files and Folders

CreateFolders

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page.

moves or copies files which use File Move MoveFiles

[http://www.blogger.com/blogger.g?blogID=2559650086942045984]

operations

Before Finalization Standard Ac Action InstallFiles PatchFiles DuplicateFiles BindImage CreateShortcuts

Description installs the files specified in the Files and Folders [http://www.blogger.com/blogger.g?blogID=2559650086942045984] page

patches files included included in the patch. Runs only during a patch installation installation duplicates the files which use File Duplication [http://www.blogger.com/blogger.g?blogID=2559650086942045984] operations

binds each executable executable or DLL that must be bound to the DLLs imported imported by it. This is not used by packages created with Advanced Installer  creates the shortcuts specified in the Files and Folders [http://www.blogger.com/blogger.g?blogID=2559650086942045984] page

RegisterClassInfo manages the registration of COM class information with the system RegisterExtensionInfomanages RegisterExtensionInfo manages the registration of extension related information with the system. RegisterProgIdInfo

manages the registration of OLE ProgId information with the system

RegisterMIMEInfo

registers MIME-related registry information with the system

http://appl i cati onpackag i ng basi cs.bl og spot.ca/

26/27

 

4/24/2014

Appl i cation Packag i ng Basi cs & FAQ

WriteRegistryValues creates the r egistry values specified specified in the Registry [http://www.blogger.com/blogger.g?blogID=2559650086942045984] page

WriteINIValues

creates INI files or entries specified in the Files and Folders [http://www.blogger.com/blogger.g?blogID=2559650086942045984] page

creates or modi modifies fies the environment variables created in the Environment WriteEnvironmentStrings [http://www.blogger.com/blogger.g?blogID=2559650086942045984] page RegisterFonts InstallODBC 

registers fonts marked for registration  [http://www.blogger.com/blogger.g? blogID=2559650086942045984]

installs install s ODBC drivers, translators and data sources

RegisterTypeLibrariesregisters type libraries with the system SelfRegModules

registers the modules which use self registration [http://www.blogger.com/blogger.g?blogID=2559650086942045984]

RegisterComPlus

registers COM+ applications

InstallServices

installs services specified in the Services  [http://www.blogger.com/blogger.g? blogID=2559650086942045984] page starts services which use "Start" control operations

StartServices

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] in the

package Rollback

performs installation installation rollback in case of an error 

Install

installs or removes components

Commit

removes rollback information

RegisterUser 

creates users and grou ps specified in the Users and Groups

RegisterProduct 

registers the product information with the installer and with Add/Remove Programs. Also, it caches the MSI package

[http://www.blogger.com/blogger.g?blogID=2559650086942045984] page

PublishComponents manages components which need to be published MsiPublishAssembliespublishes the assemblies installed by the package PublishFeatures

writes each feature's state into the system registry registry

PublishProduct 

manages the advertisement of the product information with the system. This action publishes publishes the product if the product is in advertise mode or if any feature is being installed or reinstall reinstalled ed

InstallIIS

manages the elements elements created in the II IIS S  [http://www.blogger.com/blogger.g? blogID=2559650086942045984] page

InstallFinalize

runs a script that contains all operations spooled since the install installation ation started. Also, it marks the end of the Execute sequence

Posted 25th December 2012 by 2012 by VU3RJY 3   View comments

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close