Exchange 2003 SP2 Install Fails because of MSXML

While building a new Exchange 2003 server I was installing Service Pack 2 and came across an interesting issue:

Setup failed while installing sub-component Exchange ActiveSync with error code 0xC0070643 (please consult the installatoin logs for a detailed description).  You may cancel the installation or try the failed setup again.

Digging into the installation logs I see it's trying to install MSXML:

[18:52:22] Calling MSXML installer with command line:  "msiexec /i msxml3.msi /q reboot="ReallySuppress""
[18:52:22] Process created ... waiting (-1)
[18:52:23] Process has exited with 0x000643
[18:52:23] The command

 msiexec /i msxml3.msi /q reboot="ReallySuppress"

failed, returning error code 1603 (Fatal error during installation.). -- ID:31136 -- ScCreateProcess (f:\tisp2\admin\src\libs\exsetup\hiddenw1.cxx:1821)
           Error code 0XC0070643 (1603): Fatal error during installation.

The event logs subsequently tell me:

Event Type: Error
Event Source: MsiInstaller
Event ID: 1013
Description:
Product: Microsoft XML Parser -- Your system has newer version of MSXML3 SP5 than the version you are attempting to install. Setup will quit.

Well, duh!  I have MSXML3 SP7 installed.  It appears that someone didn't quite figure out that yes in fact new versions of dependent component do in fact come out and that it's nothing to error out over.  I wish all the product groups would expose a service like the MSDN Product Feedback center.  I can't be bothered to open up a PSS case just to report this.  So here's my workaround for anyone else that comes across this:

  1. Get a copy of the Windows Installer package for the version of MSXML 3 you have installed.
  2. Place a copy inside Exchsrvr\bin
  3. Rename the existing msxml3.msi to msxml3.msi.backup
  4. Make a copy of the latest version MSXML Windows Installer file and rename it to msxml3.msi.  This will leave you with msxml3.msi and msxml3sp?.msi (in my case msxml3sp7.msi).
  5. Click Retry on the error and it should continue as planned.

Hope that helps.  One of these days we'll get these things right.

This article is part of the GWB Archives. Original Author: Colin Bowern

New on Geeks with Blogs

  • We Won The One Award I Actually Care About

    Full Scale made the Inc. 5000 for the fifth year straight, the 12th listing across my three companies. Here is why the one award you cannot buy is worth stopping for.

  • Your Customers Build the Features Now

    I let a tool I liked sit dead for a year rather than build the features I wanted. An MCP server meant I never had to, and your customers can do the same to your product.

  • Get the Size of a Directory in Linux the Easy Way

    du -sh for the quick answer, ncdu for the cleanup, df for the disk itself: every command for checking directory size in Linux, plus why du and df never agree.

  • Vim Search and Replace: The Ultimate Guide

    One :%s command replaces every match in a file before a find dialog would even open. The Vim substitute patterns worth the muscle memory: flags, ranges, capture groups, and multi-file edits.