Mailbag: How to install the .NET Framework 2.0 SP1 and 3.0 SP1 on Windows Vista


I am attempting to figure out how to redistribute the .NET Framework 2.0 SP1 and .NET Framework 3.0 SP1 standalone packages with my application.  As a test, I tried to run both of these redistributable packages on Windows Vista, but the installation processes were blocked and I could not get the .NET Framework 2.0 SP1 or 3.0 SP1 to install them on that OS.  How can I install the .NET Framework 2.0 SP1 and 3.0 SP1 on Windows Vista if they are needed for my application?


The standalone redistributable packages for the .NET Framework 2.0 SP1 and 3.0 SP1 only include MSI-based installers.  Because the .NET Framework 2.0 and 3.0 are shipped as OS components on Windows Vista, you cannot install the MSI-based versions of these service packs on Windows Vista.  There are 2 supported ways of getting the .NET Framework 2.0 SP1 and 3.0 SP1 to install on Windows Vista:

  1. Install the .NET Framework 3.5 redistributable package, which will automatically install the .NET Framework 2.0 SP1 and 3.0 SP1 behind the scenes because those service packs are prerequisites for .NET Framework 3.5 setup.
  2. Install Windows Vista SP1, which includes the fixes that are a part of the .NET Framework 2.0 SP1 and 3.0 SP1.

Also note that Windows Server 2008 includes the .NET Framework 2.0 SP1 and 3.0 SP1, so you do not need to install any additional packages in order to get those service packs on Windows Server 2008.

Comments (13)

  1. ganesh_i says:

    If the Windows Vista has .Net framework 2.0 and 3.0 as OS components, does it mean that they are installed by default when installing Windows Vista?

    If YES,

     –my application’s minimum requirement is  

     .Net framework 2.0  (and NOT it’s SPs), can I

     assume that it is installed because the OS is

     Windows Vista?

    If NO, (the .Net framework 2.0, 3.0 components

     remain unselected during OS install)

     –can I install the redistributable package

     of .Net framework 2.0 manually? OR it doesn’t

     allow to install it that way?

    Many thanks.

  2. astebner says:

    Hi Ganesh_i – The .NET Framework 2.0 is installed by default on Windows Vista and cannot be removed.  The .NET Framework 3.0 is installed by default but a system can be configured to not install it by default, and it can be removed via the Programs and Features control panel.

    In general, I suggest using the registry-based detection mechanism for any version of the .NET Framework that your application requires and not make assumptions about system state based on what OS it is being installed on.  I posted some sample code to detect .NET Framework install state and service pack level at  That code gives examples you should be able to use to detect the presence of the version(s) of the .NET Framework that your application needs.

    To handle the case where the .NET Framework 3.0 is not installed on Windows Vista, you can use logic like what I described at to re-install the .NET Framework 3.0 OS component if you detect that this is missing.  This logic is similar to what Visual Studio 2008 setup does behind the scenes.

  3. nwourms says:

    What about .NET 2.0SP1 Hotfixes that are available on connect and via the newly added "Hotfix Request System"? The ones on connect still seem to be typical wrappers around msp’s, so what gives? Can msp’s patch CBS installed packages?

  4. astebner says:

    Hi Nwourms – I’m not sure which 2.0 SP1 hotfixes you are referring to.  Could you list the KB numbers associated with them so I can take a look?

    MSPs can only be used to patch MSI-based installations.  They cannot patch CBS-based installations (like the .NET Framework 2.0 and 3.0 on Windows Vista).

  5. 大家大概都知道, Vista 裏面是有尬 .Net Framework 2.0 以及 .Net Framework 3.0 的, 自去年底我們 release 這兩個版本 (2.0/3.0) 的 .Net

  6. Recently, I heard from a customer who could not get the .NET Framework 2.0 SP1 to install correctly on

  7. gprasadholla` says:

    I want to distribute 2.0 SP1 on XP, I launch it from InstallShield. However, If i lauch setup.exe from my setup i get an error saying another setup is running.

    I have another setup which does the same but installs 2.0, When i looked at the setup.exe used in the 2.0 distributable its discription says "external Installer".

    But when i extracted SP1, its setup.exe is not similar. Any pointers?

  8. astebner says:

    Hi Gprasadholla – I don’t have much experience using InstallShield, so I am not sure exactly how it is launching things such that you’re seeing this type of error.  Can you provide more information about your scenario to try to narrow this down further?

    1.  What is the exact setup package you are using for the .NET Framework 2.0 SP1, and where did you download it from?

    2.  Is it being embedded via InstallShield into an MSI or into a separate setup.exe?  .NET Framework 2.0 SP1, 3.0, 3.0 SP1, and 3.5 cannot be embedded into another MSI.  It is technically possible to do so for the original 2.0 release though, so that could be why you’re seeing this behavior discrepancy.

    3.  Do you see any errors or warnings in the .NET Framework 2.0 SP1 setup log files to help narrow this down further?  There is a list of log files created by this setup at

  9. Mona says:

    Hi Sir, i want to install the .netframwork 2.0 in win 7 64 bit.  But i cant installed it before this i turned on the features for 3.5 already but still getting the error and i tried command prompt method nothing worthy… just tell me how to install previous version of .netframwork thankyou

  10. astebner says:

    Hi Mona – Windows 7 includes the .NET Framework 2.0, 3.0 and 3.5 as a part of the OS.  You can turn the .NET Framework 3.0 and 3.5 on and off in the Windows Features control panel, but the .NET Framework 2.0 is always installed and cannot be turned on or off.  Because of that, there shouldn't be any need for you to install it because it is already there.

  11. mona says:

    yes i know but i still got error .netframwork 2.0 missing and when i try to download it says turn on the feature which already turned on ….NFW 3.5 sp1 having all pacckages but its not working is there any way to add manualy 2.0 ?

  12. astebner says:

    Hi Mona – If you are getting that type of error on Windows 7, it usually means one of the following things:

    1.  The program you are trying to install or use is not correctly detecting the .NET Framework 2.0.  There are some applications that are not compatibly with Windows 7 that can cause this type of error, and if this is the case, I'd suggest looking on the website for the application's manufacturer to see if they have any known issues related to Windows 7, and if so, whether or not they have released a new version of the application that is compatible with Windows 7.

    2.  One of the registry keys or files used to detect the .NET Framework 2.0 is missing.  You can check this by running another .NET application (such as mmc.exe or Windows Media Center) on your Windows 7 computer to see if it is able to run correctly.  If all .NET applications fail in the same way, then you will likely need to repair Windows in order to get it to repair the .NET Framework 2.0 (because there isn't a way to repair/re-install the .NET Framework 2.0 separately from Windows 7).