0% found this document useful (0 votes)
191 views5 pages

Frequently Asked Questions About Windows Installer

Uploaded by

Prasenjit Kkr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
191 views5 pages

Frequently Asked Questions About Windows Installer

Uploaded by

Prasenjit Kkr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Frequently Asked Questions about Windows Installer (MSI) Packaging.

Q. What is Windows Installer?

A. Windows Installer is a system service for installing and managing applications. It provides a standard
method for developing, customizing, installing, and updating applications.

Q. What basic functionality is provided by Windows Installer?


A. Windows Installer provides the following basic functions:

 Transactional operations. All installation operations are transactional. For each operation that
Windows Installer performs, it generates an equivalent undo operation that would undo the change
made to the system. If a failure occurs during the middle of an installation, Windows Installer can roll
back the machine to its original state.
 Self-healing. Windows Installer supports "self-healing" abilities for applications. Applications can
detect common installation problems at launch, like missing files or registry keys, and automatically
repair themselves.
 Installation on demand. Windows Installer supports on-demand installations of application
features. For example, the spelling checker in Microsoft Office Word may not be installed by default,
but a user can trigger an on-demand installation of this feature.
 Installation in locked-down environments. In fully locked-down environments, users don't
generally have permission or the ability to install applications. In most cases, they don't have write-
access to the Program Files folder of their computers or to the HKEY_LOCAL_MACHINE registry
location. If an administrator approves an installation package by means of Group Policy, for instance,
Windows Installer can perform an installation on the user's behalf.
 State management. Windows Installer provides a set of standard Win32® application
programming interfaces (APIs) and automation interfaces for applications and administrators to use for
querying the installation state on the machine. The APIs allow querying of the current state, verification
of the existing state, repair of a corrupted state, and transition from one state to another.

Q. What versions of Windows include Windows Installer?


A. Microsoft Windows 2000, Windows Millennium Edition (Windows Me), and Windows XP include
Windows Installer. Windows 2000 includes version 1.1 of Windows Installer, Windows Me includes
version 1.2, and Windows XP includes version 2.0. Windows 2000 SP3 also contains version 2.0 of
Windows Installer.

Q. Why are multiple MSIExec.exe processes running on my machine during an installation?


A. A number of MSIExec processes can be running during an installation. The reason for this is that
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. Another MSIExec process
is Windows Installer service. Any remaining MSIExec processes are usually sandbox processes for
hosting custom actions. The determination as to which MSIExec process will serve as the sandbox
process for a script or DLL custom action depends in part on whether the custom action will run elevated
or impersonated and whether the custom action is 32-bit or 64-bit.

Q. What is an MST, and why it is used?


A. Whenever there is a vendor supplied MSI, then it is not recommended to do capture the MSI, hence all
the changes need to be done in the MSI are done is a Microsoft Transform. Then this MST file is applied
on the MSI with the following command line.

MSIEXEC /I {path}\file.msi TRANSFORMS={path}\file.mst /q

Where {path} is the location of the folder where MSI and MST are kept.

Q. What are the differences between small, minor, and major updates?
A. A small update is a product update that changes a few files or possibly adds some new content. A
minor update is a product update that 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.
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 for patch
application. Additionally small and minor update patches are limited in the changes that can be made to
the feature-component structure for the package. Significant changes can be made to the feature-
component structure in the scope of a major update.

Q. What is the Logical structure of package?


A. A package describes the installation of a full product (Windows Installer does not handle dependencies
between products) and is universally identified by a GUID. A product is made up of components, grouped
into features.
Components
A component is the minimal part of a product—each component is treated by Windows Installer as a unit:
the install developer cannot, for example, use a condition to specify to install just part of a component.
Components can contain files, groups of files, directories, COM components, registry keys, shortcuts, and
other data. The end user does not directly interact with components.
Components are identified globally by GUIDs, thus the same component can be shared among several
features of the same package or multiple packages, ideally through the use of merge modules (although,
for this to work correctly, different components should not share any sub-components).
Key paths
A key path is a specific file, registry key, or ODBC data source that the package author specifies as
critical for a given component. Because a file is the most common type of key path, the term key file is
commonly used. A component can contain at most one key path; if a component has no explicit key path,
the component's destination directory is taken to be the key path. When an MSI-based application is
launched, Windows Installer checks the existence of these critical files or registry keys (that is, the key
paths). If there is a mismatch between the current system state and the value specified in the MSI
package (e.g., a key file is missing), then the related feature is re-installed. This process is also known as
self-healing or self-repair. No two components should use the same key path.
Features
A feature is a hierarchical group of components—a feature can contain any number of components and
other features (a feature contained in another feature is called a "subfeature"). Most installation programs
display a "custom setup" dialog box at run time, from which the end user can select which features to
install or remove.
The package author defines the product features. A word-processing program, for example, might provide
features for the main program executable, the program's help files, and optional spelling checker and
stationery modules.

Q. What is Advertisement?
A. Windows Installer can advertise a product rather than actually installing it. The product will appear
installed to the user, but it will not actually be installed until it is run for the first time (by means of a Start
menu shortcut, by opening a document that the product is configured to handle, or by invoking an
advertised COM class).

Q. What is Installation on demand?


A. Similar to advertisement, it consists in the installation of features as soon as the user tries to use them.
Q. How to do Diagnostic Logging?
A. Windows Installer supports detailed logging as a powerful diagnostic tool. Logging can be enabled in
the following four ways:
Command-line: If installing an MSI package from the command-line, the /L switch can be used to enable
logging. For example, the following command installs Package.msi and outputs verbose logging to
c:\Package.log:
msiexec /i Package.msi /l*v c:\package.log
Windows Registry: The following registry value can be used to enable verbose logging:
Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
Value Name: Logging
Type: REG_SZ
Data: voicewarmup
The resulting log is named MSI###.log (where "###" is a unique random identifier) and is placed in the
system's Temp directory.
Group Policy: The following Group Policy setting can be used to manage logging on multiple systems:
Computer Configuration -> Administrative Templates -> Windows Components -> Windows Installer ->
Logging.
Windows Installer API: If installing an MSI package programmatically, the MsiEnableLog function call can
be used to create a log file and determine the logging level for the life of the calling process.
Although verbose logs are very useful for diagnosing Windows Installer problems, they can be very long
and difficult to read without practice. A quick way to find the location of a problem in the log is to open it in
a text editor (such as Notepad) and search for the phrase "Return Value 3". This entry commonly appears
in logs close to the point where a critical error has occurred. The Windows Installer SDK provides a tool
called WiLogUtl, which parses and annotates Windows Installer log files.

Q. Why does the package go for Self Healing first time the user launches the Application?
A. If the package is containing some HKCU entries then the package will always go for self healing for the
first time. This happens because the HKCU keys are only installed for the current user present while
installing the package and not all the users as it is the property of the HKCU. So, if other user logs in then
there is a mismatch between the current system state and the value specified in the MSI package (e.g., a
key file is missing), then the related feature is re-installed. This is called the Self Healing.

Q. How do detect the MSI version on the computer?


A. If you want to check the version of the Windows Installer on your system, check the version of
MSI.DLL in the Windows\System 32 folder

Difference between Self Heal and Repair

Self Heal and Repair are two different concepts in Windows Installer which people many times consider to
be the same thing, however there is difference in these two.

Self Heal is triggered by advertised shortcuts, or other advertising information in the package which
eventually Repairs the application.

When the application is launched by advertised shortcut, it checks for all the key paths of the Current
Feature, if any of the key paths is missing it will launch Repair.

Note that if there are multiple features then it will not check the missing key paths of the other features,
but only the feature of which the advertised shortcut is launched.

Repair of an MSI can be triggered by

Repair button in Add/Remove programs


Giving the command line msiexec /f{other option} {MSI name}
Self Heal by advertised shortcut or other advertising information.
Active setup
Once the repair of the package is triggered, even with Self Heal, then the whole of the MSI is reinstalled.
Then it does not see that only the feature which triggered the self heal should be repaired, but the whole
MSI, by which I mean, all its features are installed
VBScript to Determine 32-bit or 64-bit machine

Often we come across a situation where we need to see the Operating system bit information and then
install application or do any customization. Here is a script which I use for this purpose:

'===============================================================

Const HKEY_LOCAL_MACHINE = &H80000002


'Lines to get the computer Name

Set wshShell = WScript.CreateObject( "WScript.Shell" )


strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )

 
'===============================================================
'To check whether the OS is 32 bit or 64 bit of Windows 7
'===============================================================

'Lines to detect whether the OS is 32 bit or 64 bit of Windows 7

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputerName &


"\root\default:StdRegProv")

  strKeyPath = "HARDWARE\DESCRIPTION\System\CentralProcessor\0"

  strValueName = "Identifier"

oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'===============================================================

'Checking Condition whether the build is 64bit or 32 bit

  if (instr(strValue,"64")) then

'Perform functions for 64-bit OS.


End If

if (instr(strValue,"x86")) then

'Perform functions for 32-bit OS


 End If
'===============================================================

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy