What to do if Media Center Extender for Xbox 360 setup crashes

I have heard from a couple of customers who have tried to download and install the software to enable using Xbox 360 as an Extender for Media Center 2005 with Update Rollup 2, but have encountered a crash dialog from the DvcSetup.exe process at the beginning of setup. I finally located a computer in our test lab that reproduced this issue and found a possible root cause and workaround in case anyone else runs into this.

Problem description

The Xbox 360 PC setup package crashes almost immediately after it is launched. The error dialog indicates that DvcSetup.exe crashed, and it may ask if you want to debug the problem.

Workaround

I was able to use the following steps to clean up the machine in our test lab that exhibited this problem:

  1. Go to Add/Remove Programs and remove the .NET Framework 1.1 (and any .NET Framework 1.1 language packs if you have any installed)
  2. Download the .NET Framework cleanup tool, run it and choose to clean up the .NET Framework 1.1
  3. Reinstall the .NET Framework 1.1 
  4. Reinstall the .NET Framework 1.1 SP1

Details about the root cause if you are interested

On the machine I investigated, the .NET Framework 1.1 had been installed, but none of the files were correctly installed in the global assembly cache (GAC). I found that there were folders created for each assembly (for example - %windir%\assembly\GAC\Accessibility\1.0.5000.0__b03f5f7f11d50a3a), but the folders did not actually contain the assembly. I also saw the following entries in the verbose MSI log file for the .NET Framework 1.1 on this machine:

MSI (s) (C8:D8): skipping installation of assembly component: {45B8FB98-2A6C-11D6-A551-0090278A1BB8} since the assembly already exists

There is a bug in the version of Fusion that shipped with the .NET Framework 1.0 and 1.1 where it would skip installing an assembly to the GAC if the folder already existed, even if the file was not in the folder. Windows Installer uses Fusion to try to install assemblies into the GAC, and as the log file shows, each of the .NET Framework 1.1 assemblies was skipped because Fusion thought they already existed.

So far, I have only seen one scenario where empty folders exist in the GAC and cause this type of behavior for .NET Framework 1.1 setup. If you have an operating system installed and have the .NET Framework 1.1 installed, and then you peform a clean install of your operating system to the same partition and choose not to format the partition, OS setup will create a new Windows directory for you. When it does so, OS setup copies your Windows directory to a backup location and creates the same set of folders that previously existed in your Windows directory. However, OS setup will not mirror any of the files because it assumes that you will want the copies of the files that are a part of the OS setup that you are currently installing.

This type of OS install leaves your computer in a state where the .NET Framework 1.1 assembly folders exist in the GAC, but they are all empty, and then due to the bug in Fusion that I previously installed, reinstalling the .NET Framework 1.1 does not fix the problem. The workaround I described above will work correctly because the .NET Framework cleanup tool will remove these empty directories, which will allow a reinstall of the .NET Framework 1.1 to correctly install the assemblies to the GAC.