I see fingers pointing all over the place. The Windows team blames the SQL team for making setup packages that can't bypass when a newer version of a file already exists on the target system. The SQL team blames Windows for unceremoniously plopping the core MSXML files into the Windows Protected Files bucket. Both point fingers at end users who install English versions of SQL Server on German and Italian versions of the operating system, a scenario which is almost unanimously blamed for the problem.
Can't we all just get along? Fault is irrelevant. A lot of people are stuck here; they can't install SQL Server or a SQL Server update on XP SP3, and the error messages leave them in a real state of head-scratching. Error messages include the following:
This package is not supported on this operating system.
SkipInstallCA. Return value 3.
Fatal error during installation
MainEngineThread is returning 1603
Error code 1603
Product: MSXML 6.0 Parser (KB933579)
Installation failed.
For other potential error messages and more details on the problem, you can see Connect item #361660.
Ideally setup would detect the existence of a newer file, and just bypass that portion of the install; however, quite simply, this is a new development, and obviously wasn't a testable issue before XP SP3 was released (which is why there is little blame on the SQL Server 2008 and early SQL Server 2005 issues, but little excuse for the SQL Server 2005 SP3 edition of the problem).
Sure, you can call Product Support Services, and they can swipe your credit card. Then they will walk you through a two-minute workaround and, after trying to indirectly convince you that they deserve to keep your money, will reluctantly refund you, since it is a problem they introduced. But here is another workaround that might actually work until they fix the problem.
- download and install the Windows Installer Cleanup Utility. Yes, the installer is a little confusing, as it is painted with all kinds of bitmaps involving antique versions of Microsoft Office. Just install it and don't let these old logos scare you. It really is a useful tool both in this case and for removing pesky SQL and VS installs that just won't go away (or are not even offered) via Add/Remove Programs / Programs and Features.
- launch the utility (it is tough to find at first, Start > All Programs > Windows Install Clean Up), find MSXML6 SP2 in the list, select it, and click remove. It may not prompt you to reboot here, but I suggest that you do anyway.
- attempt the SQL Server 2005 / 2008 / SP / CU install again.
- if SQL Server installs successfully, then reinstall MSXML6. This may fail (target version is newer than the source, imagine that!) depending on which version of SQL Server you installed, and which components. In either case, obtain the critical update from KB #954459, which you can get in Security Bulletin MS08-069. Just search for your operating system and the download for "Microsoft XML Core Services 6.0
." Run this installer and you should be all up to date as far as MSXML6 goes.
If this process does not work (e.g. you still have problems installing SQL Server at 3.), check the setup logs and verify that MSXML6 really is still the issue (you may have fixed one problem only to reveal what would have failed next anyway).
If MSXML6 is still the issue, then another workaround you can try is to remove XP SP3, install the SQL Server 2005 / 2008 / SP / CU, and then apply XP SP3 again. If feasible, use the same language edition of SQL Server as the locale of your operating system (I realize that this is not always convenient).
Hopefully, by the time there is another SP for SQL Server, they will have fixed this mess, regardless of who is to blame.