VMware THIN4-CL-C Getting Started Guide - Page 15

Dynamic Path Relocation, Instant SxS DLL Migration, File System Shell Folder Remapping - d a r e program

Page 15 highlights

Introduction to VMware ThinApp At runtime, ThinApp examines an application's manifest file (from the resource section or separate .manifest virtual file) and determines which version of a DLL to use. ThinApp then loads the correct version of the DLL from the virtual path (contained inside the package). VMware ThinApp supports management of runtime activation contexts as well, so it knows which version of DLLs to load from dynamic DLL loads. Natively (without ThinApp), SxS is supported on Windows XP, Windows 2003, and Windows Vista, but not Windows 2000 and Windows NT. If you want to support Windows 2000 and Windows NT without ThinApp, you install your virtual application at the following locations (this is automatically performed by MSI installer 3.0): „ c:\winnt\system32 (the application directory) „ c:\winnt\winsxs (SxS path location) Installation of your virtual application at the first location is required to support Windows 2000 and Windows NT. Installation of the virtual application at the second location is required to meet Microsoft's "Designed for Windows" guidelines. These guidelines state that the application must continue to work if the operating system is upgraded from Windows 2000 to Windows XP. Because VMware ThinApp has its own SxS processing, all SxS technology is available for Windows NT, Windows 2000, Windows XP, Windows 2003, and Windows Vista in the VMware ThinApp environment. On Windows Vista, Microsoft has changed the path locations and file path name‐altering algorithm for SxS DLLs. VMware ThinApp automatically moves SxS DLLs captured for Windows XP and Windows 2003, placing them in the correct location in virtual space for Windows Vista at runtime when the application starts. Therefore, the same executable can run on all platforms with no changes. VMware ThinApp is the only virtualization technology that fully supports SxS which allows you to virtualize most new applications in which virtualization products fail because they must have SxS DLLs physically installed on the machine before they work. Dynamic Path Relocation Dynamic path relocation is the ability to move files and modify registry values to match the local host PC. ThinApp performs dynamic remapping during application startup and at runtime. Dynamic remapping enables both applications and their associated settings to migrate across different versions of Windows. Instant SxS DLL Migration Windows XP SxS DLLs are migrated to Windows Vista SxS DLLs automatically depending on the platform you are using. If you capture an application that uses SxS DLLs on Windows NT, Windows 2000, Windows XP, or Windows 2003, it installs SxS DLLs to a path location different than when installed on Vista. ThinApp dynamically moves these SxS files during application startup if the platform has changed. Using ThinApp dynamic path relocation, you can create one package that works on all platforms. File System Shell Folder Remapping Many applications access files using shell folder locations. For example, applications typically call GetWindowsDirectory to obtain the path to c:\windows instead of using a hard‐coded path. On different versions of Windows, the system directory is located in different locations. In addition, the user can select an alternate directory during installation of Windows. Applications also typically use shfolder.dll to obtain the path various shell folder locations like c:\Program Files and c:\documents and settings\username. An example is Macromedia Flash, which installs to c:\windows\system32\macromed\flash. At runtime, Flash uses GetWindowsDirectory to obtain the partial path c:\windows\system32, and then appends macromed\flash to obtain the location of its installation directory. In addition, Flash uses a registry value that corresponds to the following location: HKEY_CLASSES_ROOT\CLSID\{1171A62F-05D2-11D1-83FC-00A0C9089C5A}\InprocServer32 DefaultValue = C:\WINDOWS\system32\Macromed\Flash\Flash9b.ocx VMware, Inc. 15

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

VMware, Inc.
15
Introduction to VMware ThinApp
At runtime, ThinApp examines an application’s manifest file (from the resource section or separate
.manifest
virtual file) and determines which version of a DLL to use. ThinApp then loads the correct version of the DLL
from the virtual path (contained inside the package). VMware ThinApp supports management of runtime
activation contexts as well, so it knows which version of DLLs to load from dynamic DLL loads.
Natively (without ThinApp), SxS is supported on Windows XP, Windows 2003, and Windows Vista, but not
Windows 2000 and Windows NT. If you want to support Windows 2000 and Windows NT without ThinApp,
you install your virtual application at the following locations (this is automatically performed by MSI installer
3.0):
c:\winnt\system32
(the application directory)
c:\winnt\winsxs
(SxS path location)
Installation of your virtual application at the first location is required to support Windows 2000 and Windows
NT. Installation of the virtual application at the second location is required to meet Microsoft’s “Designed for
Windows” guidelines. These guidelines state that the application must continue to work if the operating
system is upgraded from Windows 2000 to Windows XP.
Because VMware ThinApp has its own SxS processing, all SxS technology is available for Windows NT,
Windows 2000, Windows XP, Windows 2003, and Windows Vista in the VMware ThinApp environment.
On Windows Vista, Microsoft has changed the path locations and file path name
altering algorithm for SxS
DLLs. VMware ThinApp automatically moves SxS DLLs captured for Windows XP and Windows 2003,
placing them in the correct location in virtual space for Windows Vista at runtime when the application starts.
Therefore, the same executable can run on all platforms with no changes.
VMware ThinApp is the only virtualization technology that fully supports SxS which allows you to virtualize
most new applications in which virtualization products fail because they must have SxS DLLs physically
installed on the machine before they work.
Dynamic Path Relocation
Dynamic path relocation is the ability to move files and modify registry values to match the local host PC.
ThinApp performs dynamic remapping during application startup and at runtime. Dynamic remapping
enables both applications and their associated settings to migrate across different versions of Windows.
Instant SxS DLL Migration
Windows XP SxS DLLs are migrated to Windows Vista SxS DLLs automatically depending on the platform
you are using.
If you capture an application that uses SxS DLLs on Windows NT, Windows 2000, Windows XP, or Windows
2003, it installs SxS DLLs to a path location different than when installed on Vista. ThinApp dynamically
moves these SxS files during application startup if the platform has changed. Using ThinApp dynamic path
relocation, you can create one package that works on all platforms.
File System Shell Folder Remapping
Many applications access files using shell folder locations. For example, applications typically call
GetWindowsDirectory
to obtain the path to
c:\windows
instead of using a hard
coded path. On different
versions of Windows, the system directory is located in different locations. In addition, the user can select an
alternate directory during installation of Windows. Applications also typically use
shfolder.dll
to obtain
the path various shell folder locations like
c:\Program Files
and
c:\documents
and
settings\username
.
An example is Macromedia Flash, which installs to
c:\windows\system32\macromed\flash
. At runtime,
Flash uses
GetWindowsDirectory
to obtain the partial path
c:\windows\system32
, and then appends
macromed\flash
to obtain the location of its installation directory. In addition, Flash uses a registry value that
corresponds to the following location:
HKEY_CLASSES_ROOT\CLSID\{1171A62F-05D2-11D1-83FC-00A0C9089C5A}\InprocServer32 DefaultValue =
C:\WINDOWS\system32\Macromed\Flash\Flash9b.ocx