Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

January, 2006

  • Aaron Stebner's WebLog

    CES 2006 - here I come


    I'm going to be heading to Las Vegas tomorrow night to attend the 2006 Consumer Electronics Show (CES).  I'm really excited and a little scared at the same time.  I've been to a few other shows in my previous groups at Microsoft, but not anything nearly as big and highly attended as CES, and not in a city like Las Vegas either.  I noticed that Matt posted an itinerary for his trip, and I thought that would be a good idea for me to do so as well.  If you're going to be in town, I'd like to get a chance to meet as many folks as I can and talk about Media Center (what you like, what is missing, what kind of development you want to try to do to extend it, etc).  Also, if you've emailed me or contacted me via my blog in the past I'd really like to be able to meet you and put faces to names.

    I found out I was going to be attending relatively late, so I don't have a fully booked schedule for the days I'm in town yet.  If I'm not listing a specific place I'm scheduled to be, I will probably be floating around the Media Center areas of the Microsoft booth, so please stop by and say hi!

    Wednesday (1/4)

    • 10pm - arrive in Las Vegas

    Thursday (1/5)

    • 8:45am - arrive at the Microsoft booth and figure out where I'm going to be located for the day  :-)
    • 7:30pm - Microsoft/MTV party at Pure (Caesar's Palace)

    Friday (1/6)

    • 5pm - Media Center Show party at Hilton Towers Suite #HC1010

    Saturday (1/7)

    • 8:45am - booth duty, but I'm not exactly sure where yet

    Sunday (1/8)

    • 9:45am - return home to Seattle


  • Aaron Stebner's WebLog

    How to fix 5.1 analog surround sound in Media Center 2005 Update Rollup 2


    There is a known issue in Update Rollup 2 for Media Center 2005 that causes 5.1 analog surround sound to revert to 2 channel mode.  The underlying issue is that a registry setting is being overwritten by Media Center.  You can use the following steps to add the registry value needed to fix this issue:

    1. Close Media Center
    2. Click on the Start menu, choose Run and type cmd
    3. Run the command reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Media Center\Service\Video" /v AudioOutputFormat /d {696E1D31-548F-4036-825F-7026C60011BD} /f

    Note that if you re-run the Speaker Setup portion of Media Center Setup, this registry value will be reset again and you will need to re-run the above command to fix the underlying issue once more.

    This issue was previously described on this NVidia support page, but I wanted to list it here as well in case anyone reading my blog runs into it as well.


  • Aaron Stebner's WebLog

    Decoder checkup utility for troubleshooting Media Center TV playback problems


    I found a link today to a tool that could be useful when trying to diagnose TV playback problems in Media Center 2005.  It is called the Windows XP Video Decoder Checkup Utility.  This utility will help you determine if an MPEG-2 (DVD) video decoder is correctly installed on your computer and whether or not the decoder is compatible with the recorded TV playback feature of Windows Media Center.

    You can use this utility to perform the following specific tasks:

    • List all the MPEG-2 video decoders that are installed on your computer
    • Determine whether each installed decoder is marked as compatible with Media Center
    • Determine which decoder is marked as the preferred video decoder if you have multiple decoders installed; Windows Media Center uses the preferred video decoder for recorded TV playback
    • Change which installed decoder is marked as the preferred video decoder

    In cases where you run into errors in Media Center stating that a TV tuner is not found when trying to watch live TV or playback recorded TV, this utility may prove useful in determining whether or not you have a valid decoder installed.  If you have multiple decoders installed and encounter an error in Media Center, you can use this utility to try changing the preferred decoder to see if that resolves the TV playback errors that you encounter in Media Center.

    If this tool does not help resolve TV playback errors, you can also try the workarounds suggested in this previous blog post.


  • Aaron Stebner's WebLog

    How to silently uninstall .NET Framework hotfixes


    I heard from a customer recently who had run into the scenario described in this previous blog post - the .NET Framework 1.1 SP1 would not install because a previous hotfix was installed that blocked SP1 setup from running.  In most cases, it is relatively simple to go to Add/Remove Programs and uninstall the .NET Framework hotfix, and then install the service pack.  However, the customer who contacted me needed to automate removing this hotfix on multiple computers.

    He tried looking at the UninstallString value in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\M886904, and it listed the following:

    "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Updates\hotfix.exe" "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Updates\M886904\M886904Uninstall.msp"

    However, running this command line will generate a dialog asking the user to confirm that they really want to remove the hotfix.  This makes it unfriendly for automated uninstallation on multiple machines.  To complicate things, running this copy of hotfix.exe with a /? or /h to try to figure out the allowable command line parameters did not show a usage dialog.  Also, despite the executable being named hotfix.exe, it did not accept the command line parameters described in this knowledge base article.

    I knew that this version of hotfix.exe was not the same as the one listed in the knowledge base article, but I was unable to find any additional information about it on my own.  I ended up asking Heath Stewart, a developer on the servicing team for Visual Studio and the .NET Framework.  He provided the following information about why this version of hotfix.exe is needed and what command line parameters it allows.

    .NET Framework hotfix command line parameters

    The general format for the command line to run the .NET Framework hotfix.exe is the following:

    Hotfix.exe [/q] <path to patch MSP> [arguments to pass to szCommandLine in the MsiApplyPatch API]

    The /q parameter and the arguments parameter are optional.  The patch MSP should be located in %windir%\Microsoft.NET\Framework\v#.#.####\Updates\M######\M######Uninstall.msp.  The easiest way to run a .NET Framework hotfix uninstall in silent mode is to locate the UninstallString for this hotfix in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\M######, copy it and add /q before the path to the MSP.

    What does this version of hotfix.exe do?

    The patch MSP that is located in %windir%\Microsoft.NET\Framework\v#.#.####\Updates\M######\M######Uninstall.msp is generated during the installation of the hotfix.  It is an "anti-patch" that is applied by hotfix.instead of performing a direct uninstall of the patch.  Uninstalling these patches directly is not supported because they do not have the MsiPatchMetadata table (which determines if the patch can be uninstalled or not) or the AllowRemoval property that must exist in that table.  The MsiPatchMetadata table is only supported in Windows Installer 3.0 and later, and the .NET Framework 1.0 and 1.1 require Windows Installer 2.0 for installing and uninstalling and therefore must also support patching using Windows Installer 2.0.

    Important note about .NET Framework service packs

    The information listed above only applies to .NET Framework hotfixes that create their own Add/Remove Programs entries.  .NET Framework service packs are not uninstallable on their own.  You have to uninstall the .NET Framework itself, which will uninstall the base .NET Framework and the service pack in a single step.


Page 2 of 2 (29 items) 12