Partilhar via


Update Rollup 2 setup can fail because it does not detect the .NET Framework 1.1 SP1

It has been a while since I've written about any setup issues related to Update Rollup 2 for Media Center 2005.  The lack of posts has been caused by several things:

  • Most (if not all) systems that ship with XP Media Center pre-installed now also include Update Rollup 2, so there isn't a need for most people to download and install it directly
  • Many people have started using Windows Vista Media Center
  • The issues I've run into that have prevented Update Rollup 2 installation from succeeding have all been similar to ones that I've documented in my Update Rollup 2 troubleshooting guide

This week, I ran into an Update Rollup 2 installation issue that is related to the .NET Framework 1.1 that I hadn't seen before, so I wanted to describe it here in case anyone else sees it.  Also, since the underlying problem is in the .NET Framework 1.1, it could potentially affect other programs, and not just Update Rollup 2.

Diagnosing the issue

In the case I saw this week, a customer ran Update Rollup 2 setup and it installed all of the prerequisite Windows hotfixes, but then failed when trying to install the main Update Rollup 2 package (KB900325).  I looked at the log file named %windir%\kb900325.log from this system and I saw the following:

0.187: Exec PreReq.SingleOp.OneDotOneSP1Framework:  Types don't match of Key SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322

Update Rollup 2 setup requires that you have the .NET Framework 1.1 and 1.1 SP1 installed, so I first verified using Windows Installer tools that 1.1 and 1.1 SP1 were correctly installed.  However, as seen in this log file, the Update Rollup 2 setup itself was not able to detect 1.1 SP1 because of a problem with the data type for a registry value.

How to workaround this issue

To resolve this issue, I had the customer fix the incorrect registry value that was causing KB900325 setup to think that 1.1 SP1 was not installed.  The fix required the following steps:

  1. Click on the Start menu, choose Run, type cmd and click OK
  2. Type this command:  reg delete "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" /v SP /f
  3. Type this command: reg add "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" /v SP /t REG_DWORD /d 1 /f
  4. Re-run Update Rollup 2 setup

Root cause of the issue

The interesting thing about this issue is that the wrapper setup.exe (which chains the prerequisites together with Update Rollup 2) and the KB900325 package both perform a check for both 1.1 and 1.1 SP1.  In this scenario, the wrapper was able to correctly detect that 1.1 SP1 is installed.  However, the logic inside of the KB900325 setup package was not able to detect 1.1 SP1.

Both the wrapper setup and the KB900325 setup use the following registry value to detect the presence of the .NET Framework 1.1 SP1 (as I've previously described and written sample code for in this post):

[HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322]
SP=1

The one difference is that the KB900325 setup requires this value to be a REG_DWORD, while the wrapper setup will work if the value is a REG_DWORD or a REG_SZ.

Technically, the .NET Framework setup only writes this value as a REG_DWORD, so that should be the only form that this value should be in on a system.  However, I have seen a few cases where this value was somehow deleted and re-created as a REG_SZ value by some other application.  The difference in registry data type can affect detection depending on how the registry value is being retrieved and parsed.

If you end up seeing any cases where an application tells you that you do not have the .NET Framework 1.1 SP1 installed but you really do, I suggest checking to see what data type this SP value is stored as in your registry and if it is not currently a REG_DWORD, use the steps listed above to change it it to a REG_DWORD value.

Comments

  • Anonymous
    June 15, 2007
    This article serves as a central location for all links to troubleshooting documentation that has been

  • Anonymous
    August 07, 2007
    The comment has been removed

  • Anonymous
    August 08, 2007
    The comment has been removed

  • Anonymous
    October 23, 2007
    The comment has been removed

  • Anonymous
    October 23, 2007
    Hi Garyz777 - I'd suggest trying the steps listed at http://blogs.msdn.com/astebner/archive/2005/10/11/479928.aspx to manually remove and re-install the .NET Framework 1.1 and 1.1 SP1.  Then you will hopefully be able to install Update Rollup 2 from http://www.microsoft.com/downloads/details.aspx?FamilyId=E5DAF37E-E243-4410-BC51-81CF2B56FE6E&displaylang=en. Hopefully this helps.....

  • Anonymous
    December 19, 2007
    The comment has been removed

  • Anonymous
    December 19, 2007
    Hi Frecato - There are a lot of possible causes for Update Rollup 2 setup failures.  I've posted a series of links at http://blogs.msdn.com/astebner/articles/487537.aspx that might be helpful. Also, if you'd like, you can zip and send me your Update Rollup 2 setup log files and I can try to take a look and see if I can help figure anything out.  You can find a list of log files and contact information for me at http://blogs.msdn.com/astebner/archive/2005/10/16/481689.aspx.

  • Anonymous
    September 24, 2008
    Aaron, do you know a way to detect the presence of KB900325? (like WMP11 Setup does) Thanks, Holger

  • Anonymous
    September 25, 2008
    Hi HolgerG - Instead of detecting the specific presence of KB900325, you should check for the presence of Update Rollup 2 or higher.  I listed file and registry-based ways of doing that at http://blogs.msdn.com/astebner/archive/2006/07/11/663028.aspx. I worked with the WMP11 setup team about their Update Rollup 2 detection logic back before that product shipped, and if I remember right, they're using logic like the file-based detection in that blog post (because we ran into cases where the Ident registry value got set to incorrect values by badly behaving Media Center add-ins). Hopefully this helps.