Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio
All postings are provided AS IS with no warranties, and confer no rights. Additionally, views expressed herein are my own and not those of my employer, Microsoft.
I have heard from a couple of customers who have encountered an error during setup for Update Rollup 2 for Media Center 2005, and setup then fails with a generic message (which simply states that setup failed). In the cases I have seen so far, one of the prereqisite packages for Update Rollup 2 (a DShow hotfix described by KB891593) failed to install because there was another hotfix installed that updates the same file (another DShow hotfix described by KB904706).
This does not happen on all computers that have KB904706 installed before attempting to install Update Rollup 2, but since it has been seen by multiple people now I wanted to post a workaround here just in case anyone else runs into it.
How do I know if this issue is the one affecting my machine?
You can diagnose this issue by looking at a couple of the log files that Update Rollup 2 setup creates. First, you can open %windir%\mcsetup.log in a text editor such as Notepad. If KB891593 is the package that fails on your system, you will see the following entry in mcsetup.log:
Generic Package: 09/20/05. 09:00:44Looking for existing install of the generic packageCreating Process: WindowsXP-KB891593-x86.exe /quiet /norestartProcess returned 0x00000643
The 0x00000643 return code (which translates to 1603 in decimal) represents the return code for a generic error in a Windows hotfix package.
Now, you can look at %windir%\kb891593.log to determine the exact reason why this hotfix failed to install. In the cases I have seen so far, the error in kb891593.log looks like the following:
3.437: DoInstallation: Installation was canceled because migration is blocked by following files:3.437: Package KB904706, File c:\windows\system32\dllcache\quartz.dll, Version 6.5.2600.2749, Branch SP2GDR3.437: Package KB904706, File c:\windows\system32\quartz.dll, Version 6.5.2600.2749, Branch SP2GDR3.453: KB891593 Setup encountered an error: Failed to migrate dependent packages.
How can I workaround this issue?
In the cases I have seen so far, uninstalling KB904706 and then attempting to reinstall Update Rollup 2 has proven successful. The following steps can be used to accomplish this:
Note: Once you have successfully installed Update Rollup 2 for Media Center 2005, you can safely reinstall KB904706 on your system if you would like to.
What is the root cause of this issue?
We are still trying to identify an exact root cause for this problem. Both KB891593 and KB904706 try to update the file %windir%\system32\quartz.dll, but there is a mechanism within the Windows hotfix setup wrapper (update.exe) that accounts for overlapping files and migrates copies of the file appropriately. We have attempted to reproduce this issue in our test lab and in the cases we have tried, Update Rollup 2 setup succeeds, and there is information like the following in kb891593.log:
30.891: MigrateHotfix: Migrating hotfix KB90470630.922: Migrating QFE KB904706 with command line: update.exe -Z -Q -B:sp2qfe46.500: MigrateHotfix: Hotfix KB904706 successfully migrated46.500: MigrateHotfixes: Return code: 3010
I will update this post if/when we discover better information about what is causing this problem and why it is not does not reproduce 100% of the time when we try it in our lab.
<update date="2/21/2006"> Added a note that it is safe to reinstall KB904706 after Update Rollup 2 has been successfully installed if you run into this scenario </update>