I recently received an email from someone trying to install the Microsoft OLE DB Provider for DB2 on a system running a 64-bit version of SQL Server 2005. The setup program returned the following error whenever they tried to install the DB2 Provider on this system:
Unable to load Autorun.xml
In addition to the Autorun.xml error message, the setup.log created by the setup program included information similar to the following:
Note: I formatted the following to make it easier to read here, so the actual setup.log may not be formatted in the same way.
=== Logging started at: <time>. <date> Build: 7.0.3175.0 Calling process: C:\TEMP\Setup.exe ===The current user is <username>.Computer name: <computer name>Version: 5.2 Build: 3790 Service Pack: 2.0 Suite: 272 Product Type: 3<BR>[time Info] Command Line: setup /installdir c:\db2provider /l c:\setuplog.txt[time Info] Language: 1033[time Info] Found command line argument INSTALLDIR (c:\db2provider)[time Error] c:\depotsetupv2\private\common\setup\wizard\exe\util.cpp(3018): FAILED hr = 80040154 [time Error] c:\depotsetupv2\private\common\setup\wizard\exe\setup.cpp(796): FAILED hr = 80040154[time Info] Showing MessageBox with text: Unable to load Autorun.xml XML file. Return Code: 1[time Info] Uninitializing COM.[time Info] Freeing command line.[time Info] Exiting setup, hr = 1=== Logging stopped: <time>. <date> ===
I would love to say that I figured out the root cause of this issue, but the customer actually figured out the problem for this particular problem.
It turned out that there a corrupt instance of Microsoft XML Core Services or MSXML parser (MSXML) on the system. Once MSXML was reinstalled, the OLE DB Provider for DB2 installed without error.
I hope this proves useful to any others that might run into this since the error message that is returned doesn’t give any clue that MSXML might have been the root cause except that it was unable to load the autorun.xml file.
For those of you not familiar with the MS OLE DB Provider for DB2, it is included in the Feature Pack for SQL Server 2008 to provide integration between SQL Server and IBM DB2 databases.