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 previously written about component registration failure errors that have been seen in some instances after installing Update Rollup 2 for Media Center 2005. As I described here, the primary root cause we have seen for this type of error is that the version of mscoree.dll in %windir%\system32 gets reverted from the .NET Framework 1.1 SP1 version to the .NET Framework 1.0 SP3 version.
After investigating this issue a bit more, we have found some scenarios that will cause this file to be reverted like this. In particular, the following set of steps will cause this to repro:
What happens behind the scenes in this scenario is that the Media Center 2005 upgrade performs the equivalent of an OS reinstall but without reformatting the partition that the OS is installed to. The .NET Framework 1.0 SP3 is a part of the OS in Media Center 2005, and it is a design philosophy of OS setup that it will install any files that are a part of the OS regardless of whether or not there are later versions of those files already present on the file system. The reason for this is that computers could be in unknown states with higher versions of some files, but the bits that were shipped on the OS are known to work well together and be tested as a single unit.
After performing this upgrade, the file %windir%\system32\mscoree.dll is updated to the 1.0 SP3 version that is included as part of the OS in Media Center 2005. However, the .NET Framework 1.1 and 1.1 SP1 are still considered to be installed by Windows Installer and Windows Update. That means that if you visit Windows Update on a machine that has been upgraded in this manner, you will be offered Update Rollup 2, but not be offered the .NET Framework 1.1 or 1.1 SP1.
One of the commands run during Update Rollup 2 setup specifically calls the 1.1 version of ngen.exe, but that version of ngen.exe will not work correctly with the 1.0 SP3 version of mscoree.dll, so setup detects this error and stops running any further registration code. That leaves the machine in a state where some Media Center components are not registered. In order to get Media Center fully registered and recover from this scenario, you can run the following steps:
Aaron - I need help like Randy and after reading some of the things I really think you would be able to help. I have Dell Media Center XP edition and I was getting BSOD so I thought of reparing the XP from the CD that I had from DELL. On fixing the OS, I got "ngen.exe Procedure entry point GetRequiredRuntimeVersion could not be located in mscoree.dll". I ignored the error and now the XP starts up but with a blank screen and nothing after that. I can put the restore CD to start in Recovery mode but thats about it. How can I fix my PC? Looks like .NET version is messed up but I am novice on that and really looking forward for some help.
Hi Himesh - I'm sorry for the hassles that this issue is causing for you. If you have access to another computer, I'd suggest trying to download the .NET Framework 3.5 SP1 installer from download.microsoft.com/.../dotnetfx35.exe, copy the installer to the computer that is encountering this error, and running it from safe mode. If that isn't an option, I think you might need to re-install Windows from your original OS installation disc to solve this type of error.
Thank you. I appreciate your prompt response.