Innovative Application Packaging Cloud

Innovative Application Packaging Cloud
Automated Packaging Self-Service (APS) is an innovative cloud solution that provides smart application packaging, testing and documentation.

Tuesday, October 04, 2011

Application Isolation for Windws Installer MSI

Application isolation keeps the applications protected from inadvertent overwrites by other applications if they are using only local resources and DLLs. Isolating an application with its support files ensures that your application always uses the version of shared files with which it was installed.  
Why isolate an application?
  1. Application isolation is one solution to component versioning conflicts, or DLL hell.
  2. Isolation reduces versioning conflicts by modifying an application so it always loads the versions of components – such as DLLs – with which it was originally developed and tested.
  3. Application isolation provides increased stability and reliability for applications because they are unaffected by changes caused by installation and ongoing maintenance of other applications on the system.
  4. Resolve incompatibilities between different versions of shared components.
  5. Reduce the complexity of the installation by storing COM activation data in a manifest instead of the registry.
  6. Insulate the application from changes to shared components.
How to isolate an application.

Application isolation can be performed using one of these two methods.
  • Assemblies and manifests
  • MSI isolated components

Assemblies and Manifests:

Application isolation using assemblies and manifests is the recommended isolation method for Windows XP. Assemblies are DLLs or other portable executable files that applications require to function, and manifests are XML files that describe either an isolated application or an application's assemblies. These assemblies and manifests provide the same end result as Windows Installer isolated components, but keep all information outside of the registry and do not require the components to be installed in the same folder as the application. This reduces the chance of errors after isolation resulting from how the application was written.

MSI Isolated Components:

Application isolation using Windows Installer isolated components is best applicable for Windows 98 SE, Me, and 2000. It can also be used on Windows XP, but using assemblies and manifests is the better solution. The isolated component method copies shared files (typically DLLs) into an application's folder instead of a shared location. The application then uses these files instead of global ones, preventing modifications made by other applications from affecting the shared files. As a result, the application always uses the versions of these files with which it was deployed.
When an application is isolated, any shared files are moved to an area specified during the package building. That area is normally the application directory. An Isolated Component table is populated with the information that the OS needs to find the redirection. The Isolated Component table is part of the Windows Installer database created during repackage creation. When the application is setup, a .local file is created from the Isolated Component table and directs the OS to search for the needed DLL files in the application directory.
Disadvantages of .local(Isolated Component Method)
  • Only DLLs present in the same feature as the executable can be isolated using this method. If DLL is present in different feature then it needs to be moved to the main exe feature.

    • No self-repair functionality exists for isolated.DLL files in the application directory.
    • 16-bit applications cannot be isolated using .LOCAL isolation method.
    • Only DLLs present in the same feature as the executable can be isolated using this method. If DLL is present in different feature then it needs to be moved to the main exe feature.
    Application Isolation Using Admin Studio:

    To isolate applications within a Windows Installer package (.MSI) or merge module (.MSM) using AdminStudio:
    1. Open AdminStudio and launch the Application Isolation Wizard.
    2. From the Welcome panel, click Next.
    3. From the Windows Installer File Selection panel, specify the Windows Installer package (.msi) or merge module (.MSM) containing applications you want to isolate. Click Next.
    4. From the Isolation Method panel, select the isolation method(s) (discussed above) you want to use.
    5. If you are using manifests, you can click Advanced to configure manifest properties and digital signature information (if required).
    6. Click Next.
    7. From the Summary Information panel, confirm the isolation selections. If you are using manifests, you can click Advanced to configure manifest properties and digital signature information (if required).
    8. If you want to manually configure isolation, click Modify.
    9. Click Isolate.
    10. From the Completing the Application Isolation Wizard panel, click Finish.
    Depending on the isolation method used in the Application Isolation Wizard, you can partially or totally isolate an application.

    Application Isolation Using Wise Package Studio:

    The Application Isolation wizard in Wise Package Studio provides a quick and easy way to isolate applications with their shared .DLL or .OCX files (support files).
    The below steps describe how to implement the process using WPS.
    1. Invoke the Application Isolation wizard from the side pane of Wise package studio as shown below.


    1. Browse the .WSI or .MSI file on which the isolation has to be performed.


    1. Choose on the isolation method and the isolation type. The next screens depend on the options selected here.
    2. Choose how the process of isolation has to be taken place.

    1. Isolation is ready to be performed.


    1. The updated Windows Installer file can be either the default MSI file appended with _isolated or a new MSI file or a MST file, as shown here.


    No comments: