MSXML 5.0 and Windows XP
To enable developers to better deal with DLL conflicts, Microsoft Windows XP and Windows Server 2003 provide new features for installing shared components (also known as assemblies).
For example, a new service pack updated version of MSXML 5.0 when installed in side-by-side mode, will not replace any earlier version of MSXML 5.0 used by another application. Also this type of side-by-side installation allows both versions to be loaded in memory and used simultaneously by separate applications that depend upon the different versions. This represents an improvement over the way globally shared installation of component DLLs worked in earlier versions of Microsoft Windows in which the component was replaced and all applications were required to use the most recent version of the component.
Background on MSXML 5.0 and Side-by-Side Assembly
When MSXML 5.0 is installed on Microsoft® Windows® XP, it is installed as a shared side-by-side assembly. Side-by-side assemblies are:
- One or more .dll files packaged together to install and function as a single shared component.
- Installed by the Windows Installer into the managed assembly store located off of the Windows system root folder.
- Authored so that multiple versions of the component can run at the same time without impacting each other.
- Not registered globally on the system, but are globally available to applications that depend on them.
For Windows XP, you specify all dependencies for your compiled applications or components with manifests. Assembly manifests are used with shared dynamic linked libraries. Application manifests are used with executables.
The table below summarizes some of the key differences between globally shared and side-by-side installations of the MSXML component. The same differences will apply for other Windows shared assemblies as well.
Globally shared installation | Side-by-side installation |
---|---|
The only way to install globally shared components under Windows 2000 and earlier versions of Microsoft Windows. | The recommended way to author and install shared components under Windows XP and other future versions of Microsoft Windows. |
Requires higher support costs for maintaining an application over its life span. | Can substantially reduce support costs over the life span of your application. |
Shared components are more impacted by updates. | Shared components are less impacted by updates. |
Uses Windows Registry to store COM activation data. | Uses manifest files to store COM activation data. |
Only a single version of a shared component or application can exist in the Windows system folder (i.e., the %systemroot%\system32 folder). | Multiple versions of a component or application can be shared and in use at the same time. Each version installs in its own distinctly named subfolder under the Windows side-by-side store (i.e., the %systemroot%\WinSxs folder). |
The following topics provide more information about working with manifests and MSXML 5.0 in Windows XP and Windows Server 2003.
- Creating a Manifest for Your Application
- Creating a Manifest for Your Component DLL
- Troubleshooting Side-by-Side Installations
- Managing MSXML Version Dependencies
Notes
- Side-by-Side technology described in this section applies only when you deploy applications that use MSXML 5.0 or later to computers running Microsoft® Windows® XP and Windows® Server 2003. If your deployment involves earlier versions of Microsoft® Windows, such as Windows 2000, Windows NT, Windows Me, or Windows 98, disregard the information in this section.
- Windows XP Side-by-Side installation should not be confused with the side-by-side installation provided in previous versions of MSXML. The previous side-by-side installation was implemented by modifying GUIDs and ProgIDs. This topic covers Windows XP Side-by-Side installation exclusively.