Some systems use both msxml3.dll and msxml6.dll to provide MSXML2 API services. These are two different versions of the same API, so it makes sense to standardize on one of these, typically msxml6, so that any migration rules for MSXML2 (e.g. upgrading to System.Xml). This may be accomplished using a registry-libname command. Place this prior to the <Compile command in your translation script.
In addition, msxml6.dll requires using version-specific classIDs for the classes that formerly had version-agnostic names. When using msxml6.dll, you may encounter errors like the following:
These can be resolved by placing typedefs in a project-specific copy of msxml6.dll.xml.
1) Copy proj\FromIDL\msxml6.dll.xml to your user folder, proj\usr\msxml6.dll.xml
2) Edit the proj\usr\msxml6.dll.xml adding typedefs as needed. For example:
Alternatively, you can standardize on msxml3 and add typedefs to allow for newer versioned classIDs: