Posted on July 27, 2012 by in MSI Interview Q’s

    The following are Frequently Asked Questions duirng an interview for Application Packaging Position:
    The question and answers are being collected from Various MSI blogs and Articles. My effort is confined to collecting as much material as possible from various sources and publishing it at once place.

    S No.




    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.


    Tell some complex Applications you did & what is the Issue and how you solve the Issue? Provide few of your complex applications such as Office, etc


    Maximum how many files you can add in msi package There are few limits that you may hit when authoring a large, complex MSI package.Total number of files.

    If your Windows Installer package contains more than 32767 files, you must change the schema of the database to increase the limit of the following columns: the Sequence column of the File table, the LastSequence column of the Media table, and the Sequence column of the Patch table. Note that transforms and patches cannot be created between two packages with different column types.

    Total number of components

    The maximum number of rows for the Component table is 65536.

    This limit was discovered by Danish Waheed and posted on the WiX users mailing list. It has been confirmed by a Microsoft employee but hasn’t been officially documented yet.

    Number of components per feature There is a maximum limit of 1600 components per feature using Windows NT/Windows 2000 and a maximum limit of 800 components per feature using Windows 95 and Windows 98. There will be a ICE47 validation warning if your package is above this limit.

    Depth of Feature tree

    There is a maximum limit of 16 for the depth of the feature tree. If you exceed this limit you get a runtime error message “2701. The Component table exceeds the acceptable tree depth of 16 levels.” which is a bit misleading because the limit actually applies to the Feature tree, not the Component tree (in my understanding there is no component tree in MSI). In a test with a feature tree 20 levels deep msiexec.exe even crashed instead of displaying an error message.

    This limit has been reported by Danish Waheed on the WiX users mailing list. It doesn’t seem to be officially


    Number of disks or CAB files

    For each disk or CAB file one row must be added to the Media table. Windows Installer packages are limited to a maximum of 80 Media table entries when installed using Windows Installer prior to version 2.0. The restriction of 80 Media table entries was removed with Windows Installer version 2.0.

    Limits of the CAB file format

    The only compressed file type supported natively by Windows Installer is the Cabinet (CAB) format. The following limits apply to this file format.

    • No one file in a CAB can exceed 2GB
    • Maximum size of all files in one folder (compressed) 2GB
    • Maximum size of a CAB file (compressed) 2GB
    • Maximum number of files in a single CAB 64K

    You can avoid these limits by splitting your setup into multiple


    Explain the difference between Property and PROPERTY Public Property: Public properties can be changed anytime by a user, system or administrators on the command line while installing, by applying a transform or by interacting with the authored user interface (Installation Interface). They are always in upper casePrivate Property: The installer uses then internally and their values are initialized in the installation database (msi) or set by the values determined by the OS. They are always in lower case.


    What are the disadvantage/drawbacks of MSI? Resiliency:Resiliency can be inconsistent with repackaged applications because the repackager utility may not fully understand the component dependencies or what the key paths of the application should be. Therefore, an application may be packaged into one large feature that gets entirely reinstalled if a component keypath ismissing. If it were broken up into multiple smaller features it would enable a more manageable resiliency.

    COM/ActiveX Registration: Component Object Model (COM) and ActiveX controls may not be properly registered. Prior to Windows Installer, COM and ActiveX registration was a black box. Except for the exported functions DLLRegisterServer and DLLUnregister server, COM and ActiveX controls offered very few hints of their registration process. RegSvr32.exe was responsible for calling the previously mentioned functions and then the DLL was responsible for registering itself. There is no utility that can view a DLL, an OCX, or an EXE and figure out what goes on inside DllRegisterServer and DllUnregisterServer for that file. There are standard registry

    entries that most COM and ActiveX controls register, such as HKCR\CLSID, HKCR\ProgID, and HKCR\TypeLib. Information on COM registration may or may not get entered into the appropriate MSI tables by the repackager

    Shortcuts: Shortcuts may not be created as Windows Installer descriptor shortcuts, which enable resiliency. Legacy setup shortcuts were .lnk files that pointed to an executable in most cases. Sometimes when the repackager runs, all it knows is that an .lnk file was copied to a directory. For example, a legacy Setup.exe

    installed a shortcut to C:\Windows\Profiles\User1\Desktop. The repackager would copy the .lnk file directly to the directory listed previously. Therefore, the repackager is not actually copying a Windows Installer shortcut, but rather it is copying a file without any resiliency capabilities included

    Isolated Components: The only way to take advantage of isolated components is to author a new MSI package. Repackagers currently do not support this feature.

    Application Removal:When uninstalling a repackaged application, it is possible that the AllUsers profile may be removed. This is dependent on how the legacy setup was captured and definitely needs to be tested.


    What is advertisement and Command for Advertisement? It means that, the Availability of an application to users or others with out actually the full Installation. There are two types of AdvertisingAssigning: An Application appears (shortcuts, files & registries) to a user or others, when an Application is “assigned”. When the user tries to open, it is installed upon demand.

    Publishing: No Entry points appear to a user or others, when an Application “published” to the group. It is activated only if the group Application activates the published Application i.e. Installation on Demand.


    msiexec /j [{u|m}] package
    msiexec {u|m} package /t TransformList
    msiexec {u|m} package /g LanguageID


    /j : Advertises a product.
    u : Advertises to the current user.
    m : Advertises to all users of the computer.

    package : Specifies the Windows Installer package file.

    /g LanguageID : Identifies the language.
    /t TransformList : Applies transform to advertised package.


    What is admin install and Command for it? The Windows Installer can perform an administrative installation of an application or product to a network for use by a workgroup. An administrative installation installs a source image of the application onto the network that is similar to a source image on a CD-ROM. Users in a workgroup who have access to this administrative image can then install the product from this source. A user must first install the product from the network to run the application. The user can choose to run-from-source when he installs and the installer uses most of the product’s file directly from the network.Administrators can run an administrative installation from the command line by using the /a command line option.

    The ADMIN action is the top-level action used to initiate an administrative installation. When this action is executed the installer calls the actions in the AdminExecuteSequence and AdminUISequence tables to perform the administrative installation.

    Syntax: Msiexec /a package


    How to update the MSI install log through a VB Script custom action? Sub addToLog (strLog)
    Dim logText
    Const msiMessageTypeInfo = &H04000000
    Set logText = Session.Installer.CreateRecord(2) // No of lines to add to msi log
    logText.StringData(1) = strLog
    Session.Message msiMessageTypeInfo, logTextEnd Sub


    On what conditions will admin install will fail to extract all the files? The admin install will not wield proper results if MSI package installs files based on selection, be it from command line, System Search or selected options while installing. Or it installs few files through custom actions.Also Admin installation will fail if no files are present or FILE table is empty.

    It will also fail for packages which contain nested msi’s.

    It will also not extract any file if “InstallFiles” is missing from “Administrative Installation” Sequence

    Be Sociable, Share!
      Post Tagged with , ,

    Written by

    View all articles by

    Email : [email protected]

    Leave a Reply