.NET Framework 2.0 SP1 and 3.0 SP1 repair options on Windows Vista and Windows Server 2008

In my previous blog post, I described silent repair and uninstall command line switches that can be used for the .NET Framework 3.5.  In that post, I also noted that because the .NET Framework 3.5 includes the .NET Framework 2.0 SP1 and 3.0 SP1 as prerequisites, the repair process would chain in the repair for the .NET Framework 2.0 SP1 and 3.0 SP1 as well.

As a few people have already noticed, that statement is only true when running .NET Framework 3.5 repair on operating systems prior to Windows Vista.  Specifically, the supported pre-Vista OS's for the .NET Framework 3.5 are Windows XP (with SP2 or later) and Windows Server 2003.  On pre-Vista OS's, the .NET Framework 2.0 SP1 and 3.0 SP1 are installed using MSI-based packages.

On Windows Vista and Windows Server 2008, the .NET Framework 2.0 and 3.0 are OS components, so any updates to the .NET Framework 2.0 and 3.0 must be installed via OS updating technologies instead of by MSI-based packages.  Unfortunately, the OS updating logic does not allow the packages to be re-run to perform a repair.  Instead you have to uninstall and then reinstall the packages.  Because of this OS update behavior, running a repair of the .NET Framework 3.5 on Windows Vista will skip attempting to repair the .NET Framework 2.0 SP1 and 3.0 SP1 in order to avoid scenarios that we know will report failures.

How to uninstall and re-install 2.0 SP1 and 3.0 SP1 on Windows Vista

There is not an easy way to repair the .NET Framework 2.0 SP1 or 3.0 SP1 on Windows Vista.  If you are running Windows Vista without Vista SP1, you can uninstall the .NET Framework 2.0 SP1 and 3.0 SP1 using the following steps, and then perform a repair of the .NET Framework 3.5 to re-install them:

  1. Go to the Programs and Features control panel
  2. Click on the link at the top left labeled View installed updates
  3. To remove the .NET Framework 3.0 SP1, find the item named Update for Microsoft Windows (KB929300) , right-click on it and choose Uninstall
  4. To remove the .NET Framework 2.0 SP1, find the item named Update for Microsoft Windows (KB110806) , right-click on it and choose Uninstall
  5. Repair the .NET Framework using the steps in this blog post to restore the .NET Framework 2.0 SP1 and 3.0 SP1

Important note about Windows Vista SP1 and Windows Server 2008

The .NET Framework 2.0 SP1 and 3.0 SP1 packages are integrated into Windows Vista SP1 and Windows Server 2008, so they are not available separately in the Programs and Features control panel like they are for Windows Vista without SP1.

This means that you must use one of the following options to attempt to repair the .NET Framework 2.0 SP1 and 3.0 SP1 on Windows Vista SP1 and Windows Server 2008:

  1. If you installed the standalone Windows Vista SP1 update package (as opposed to purchasing a computer with Windows Vista with SP1 pre-installed), you can attempt to repair or re-install Windows Vista SP1 to repair all components of SP1, including the .NET Framework 2.0 SP1 and 3.0 SP1
  2. If you have a computer that came pre-installed with Windows Vista SP1 or a computer with Windows Server 2008, there is not a separate update package that can be repaired.  You can use steps like the ones in this knowledge base article (KB929833) to repair the files that are a part of the OS (including the .NET Framework 2.0 SP1 and 3.0 SP1 payload).  The only way to perform a full repair of all components of the .NET Framework 2.0 SP1 and 3.0 SP1 (registry keys, services, etc and not just the files) is to repair or re-install Windows Vista or Windows Server 2008 themselves.