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.
A while ago, I posted an item describing how to use a registry value to detect what version of Windows Media Center (if any) is installed on a system. Since then, we have found a couple of scenarios where this registry value can be overwritten and left in an inconsistent state so that it is not completely reliable for determining the version of Windows Media Center on a system:
We have worked with a few add-in developers to fix their installers, so the second scenario rarely happens anymore, but the first problem still exists and the only way to fix the system once it gets into that state is to manually update the versioned registry key.
Instead of checking a registry value, it is also possible to use file version information to determine which version of Windows Media Center is on a system. The following table lists the various versions of Windows Media Center, the version registry value that should exist on the system, and a file version you can use to double-check that the expected version of Windows Media Center is actually installed as expected.
The following registry value is used to store the Windows Media Center version that is referenced in the middle column above:
To detect the file version, I suggest using the main Windows Media Center shell executable, located at %windir%\ehome\ehShell.exe.
One other note here - due to some OS setup architectural changes in Windows Vista, we have not seen and do not expect to see the registry value that stores version information being overwritten on Windows Vista. It is safe to check the registry value and not worry about also checking file versions on Windows Vista. However, it is recommended to check file versions on Windows XP Media Center systems because of the issues we've seen where the registry value is out of sync with the actual installed version of Windows Media Center on the system.
Wrote a simple utility based on a post by Aaron Stebner to report the installed version of WMC.