.NET Framework 3.5 Deployment Guide for Application Developers

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

The Microsoft .NET Framework version 3.5 provides a redistributable installer that also contains Service Pack and cumulative updates for the .NET Framework version 2.0 and the NET Framework version 3.0.

The .NET Framework 3.5 redistributable package is available in two formats:

  • dotnetfx35.exe   This is a stand-alone executable file that contains all the components that are required to deploy to 32-bit and 64-bit platforms on all supporting operating systems. This executable does not contain language packs. The .NET Framework 3.5 language packs are available as separate per-language stand-alone executable files.

  • dotnetfx35setup.exe   This is a lightweight bootstrapper that downloads required components from the Web during setup. It does not contain any .NET Framework 3.5 components in the package. It will detect, download, and install only required components. The bootstrapper will download and install the language pack that matches the language of the user’s operating system. Stand-alone language packs can be used to install additional language support.

You can use either package on 32-bit and 64-bit platforms on all supporting operating systems.

You can manually launch and install the redistributable on a computer, or it can be launched and installed as part of the setup program for a .NET Framework 3.5 application.

Note

Administrator privileges are required to install the .NET Framework 3.5.

Installation Requirements

This section describes the software and hardware requirements for installing the .NET Framework 3.5. If the minimum requirements are not met, the .NET Framework setup process stops the installation.

Software Requirements

The .NET Framework 3.5 requires one of the following operating systems on the target computer:

  • Microsoft Windows XP Home or Microsoft Windows XP Professional, both with Service Pack 2 or later.

  • Microsoft Windows Server 2003 family with Service Pack 1 or later.

  • Microsoft Vista.

  • Microsoft Windows Server 2008.

    Note

    The .NET Framework 3.5 supports IA64 only on Windows Server 2008.

Hardware Requirements

The following table lists the hardware requirements for running the .NET Framework 3.5.

 

CPU required

RAM required

Minimum

Pentium 400 MHz

96 MB

Recommended

Pentium 1 GHz or higher

256 MB or more

Where to Obtain the.NET Framework 3.5 Redistributable Package

You can download the .NET Framework 3.5 redistributable package from the Microsoft Download Center.

In some situations, it might be impractical for you to automatically install the .NET Framework 3.5 with your application. In that case, you can have users install the .NET Framework themselves from the Microsoft Download Center.

However, do not assume that users of your application know where to get the .NET Framework or how to install it. In your setup process, provide instructions for how users can locate and install the .NET Framework.

Note

Do not post the redistributable package on your own network. Instead, direct users to the Microsoft Download Center.

Chaining the Redistributable Package in Application Setup

The .NET Framework 3.5 provides the following ways for you to include (chain) the .NET Framework setup process into your application's setup process:

  1. Let the .NET Framework setup process decide which components are required and download and install only the required components from the Web.

    To let the .NET Framework setup process detect, download, and install only the required components, use the dotnetfx35setup.exe package by itself. To chain the .NET Framework setup process, add the following command to your application's setup process:

    dotnetfx35setup.exe /q /norestart

  2. Include the complete set of .NET Framework files with your redistribution media so that users do not have to download any additional files from the Web during setup.

    If you want to include all the components in the .NET Framework setup process, use the full stand-alone executable (dotnetfx35.exe). This package includes components that are required to install the .NET Framework 3.5 on x86, x64, and IA64 computers on any supported operating systems. Use this package if space and download time is not an issue for your application deployment. To chain this .NET Framework setup process, use the following command:

    dotnetfx35.exe /q /norestart

  3. Include the most commonly required components for your users, and let the .NET Framework setup process detect any missing components and download them from the Web. This scenario is best if you have a specific platform, a specific operating system, or a specific user system configuration that you are deploying your application to.

    To perform this installation, you must first obtain the full stand-alone executable and extract the files by using the following command:

    dotnetfx35.exe /x <extract location>

    After you extract the files, you will see a file and folder structure with the list of files for each component in the .NET Framework 3.5, as shown in the Appendix of this document.

    To deploy the .NET Framework 3.5, include the appropriate components in the folder structure that is created by the extraction process, and chain them in the .NET Framework bootstrapper setup by using the following command:

    dotnetfx35setup.exe /q /norestart

    You can see two examples of what to include in your layout in the Appendix of this document.

Regardless of which mode you choose, to chain the .NET Framework 3.5 installation process, run the redistributable from the command line and use the following installation command-line options:

/q /norestart

Redistributing the .NET Framework 3.5 for Web Applications

In Web-based applications that rely on .NET Framework 3.5 features, the .NET Framework might need to be downloaded and installed on the user's computer. You can determine whether .NET Framework 3.5 is installed on the user's computer by querying the user agent string in the browser header. If the correct version of the .NET Framework is not installed, you can direct users to the Microsoft Download Center to obtain the .NET Framework 3.5 package.

Detecting the .NET Framework 3.5

You can detect whether the .NET Framework 3.5 is already installed by reading a registry key or by querying the user agent string in Internet Explorer.

Reading Registry Keys

The .NET Framework 3.5 installer writes registry keys when installation has finished successfully. You can test whether .NET Framework 3.5 is installed by checking the registry keys listed in the following table.

Registry key name

Value

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5

Name: Install

Type: DWORD

Data: 1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform

Name: Version

Type: REG_SZ

Data:  .NET CLR 3.5.build number

Reading the User Agent String in a Browser

When the .NET Framework 3.5 is installed on a computer, the .NET Framework 3.5 version number appears as part of the user agent string that is reported in browser headers. The following example shows a sample page that uses JavaScript to detect and report whether the .NET Framework 3.5 is installed.

<html>
  <head>
    <title>Test for .NET Framework 3.5</title>
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
    <script type="text/JavaScript">
    <!--
    var NETFX3RuntimeVersion = "3.5.21022";
    
    function body_onload()
    {
      var result = document.getElementById("result");
      if (HasRuntimeVersion(NETFX3RuntimeVersion))
      {
          result.innerHTML = "This machine has the correct version of the .NET Framework 3.5 runtime: " 
          + NETFX3RuntimeVersion + "." 
          + "\n\nThis machine's userAgent string is: " 
          + navigator.userAgent + ".";
      } 
      else
      {
        result.innerHTML = "The .NET Framework version 3.5 is not installed on this computer.<br/>"
            + "Click <a href='https://msdn.microsoft.com/windowsvista/default.aspx'>"
            + " here</a> to get the .NET Framework 3.5 now.";}
    }
    
    //
    // Retrieve the version from the user agent string and compare with specified version.
    //
    function HasRuntimeVersion(versionToCheck)
    {
      var userAgentString = 
           navigator.userAgent.match(/.NET CLR 3.5.[0-9]+/g);
      if (userAgentString != null)
      {
        var i;
        for (i = 0; i < userAgentString.length; ++i)
        {
          if (CompareVersions(GetVersion(versionToCheck), 
                GetVersion(userAgentString[i])) <= 0)
            return true;
        }
      }
      return false;
    }

    //
    // Extract the numeric part of the version string.
    //
    function GetVersion(versionString)
    {
      var numericString = versionString.match(/([0-9]+)\.([0-9]+)\.([0-9]+)/i);
      return numericString.slice(1);
    }

    //
    // Compare the version strings by converting them to numeric format.
    //
    function CompareVersions(version1, version2)
    {
      for (i = 0; i < version1.length; ++i)
      {
        var number1 = new Number(version1[i]);
        var number2 = new Number(version2[i]);

        if (number1 < number2)
          return -1;
        if (number1 > number2)
          return 1;
      }
      return 0;
    }
    
    -->
    </script>
  </head>
  
  <body onload="body_onload();">
    <div id="result" ></div>
  </body>
</html>

If the search for the string ".NET Framework 3.5" version is successful, the following message is displayed:

This machine has the correct version of the .NET Framework 3.5 runtime: 3.5.28015.00.

This machine's userAgent string is: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.5.28015.00).

(The details of the user agent string vary slightly according to the browser and browser version that is being used to test for the .NET Framework.)

If the .NET Framework 3.5 is not installed, the following message is displayed:

The .NET Framework version 3.5 is not installed on this computer.

Click here to get the .NET Framework 3.5 now.

Command-Line Options for the .NET Framework 3.5 Redistributable Package

The following table lists options that you can specify when you run the .NET Framework 3.5 redistributable installation program from the command line.

Option

Description

/q

Suppresses all UI. An .ini file cannot be specified with this option.

/uninstall

Uninstalls product.

/remove

Same as /uninstall.

/f

Repairs all .NET Framework components that are installed.

/nopatch

Specifies that patches are not applied and bypasses patch checking.

/norollback

Specifies that setup is not rolled back if a setup component fails.

/norestart

Specifies that the installer does not restart the computer after installation completes. The redistributable installer returns ERROR_SUCCESS_REBOOT_REQUIRED (3010) if a reboot is required.

/?

Displays this list of options.

Error Codes for the .NET Framework 3.5 Redistributable Package

The following table lists error codes that can be returned by the .NET Framework 3.5 redistributable installation program. The error codes are the same for all versions of the installer.

Error code

Value

Description

ERROR_SUCCESS

0

The action completed successfully.

ERROR_INSTALL_USEREXIT

1602

User canceled installation.

ERROR_INSTALL_FAILURE

1603

A fatal error occurred during installation.

ERROR_UNKNOWN_PRODUCT

1605

This action is valid only for products that are currently installed.

ERROR_PATCH_PACKAGE_INVALID

1636

The patch package could not be opened, or the patch was not applicable to the .NET Framework.

ERROR_INVALID_COMMAND_LINE

1639

Invalid command-line argument.

ERROR_SUCCESS_REBOOT_INITIATED

1641

The installer has initiated a restart. This indicates success, and setup will continue after restart. (The reboot is not performed if the /norestart option was specified.)

ERROR_PATCH_PACKAGE_REJECTED

1643

The patch package is not permitted by system policy.

ERROR_SUCCESS_REBOOT_REQUIRED

3010

A restart is required to complete the installation. This message indicates success.

Appendix

The following table lists the components for the .NET Framework version 3.5.

Path

File name

Platform

OS

Description

wcu\dotNetFramework

dotnetfx35setup.exe

All

All

.NET Framework 3.5 setup bootstrapper

wcu\dotNetFramework\dotNetFX20

ASPNET.msp

x86, x64

XP, W2K3

2.0 SP1 components

 

ASPNET_64.msp

x64

XP, W2K3

2.0 SP1 components

 

clr.msp

x86, x64

XP, W2K3

2.0 SP1 components

 

clr_64.msp

x64

XP, W2K3

2.0 SP1 components

 

crt.msp

x86, x64

XP, W2K3

2.0 SP1 components

 

crt_64.msp

x64

XP, W2K3

2.0 SP1 components

 

dw.msp

x86, x64

XP, W2K3

2.0 SP1 components

 

dw_64.msp

x64

XP, W2K3

2.0 SP1 components

 

Netfx20a_x64.msi

x64

XP, W2K3

2.0 SP1 components

 

Netfx20a_x86.msi

x86

XP, W2K3

2.0 SP1 components

 

NetFX_CA.msp

x86, x64

XP, W2K3

2.0 SP1 components

 

NetFX_Core.msp

x86, x64

XP, W2K3

2.0 SP1 components

 

NetFX_Core_64.msp

x64

XP, W2K3

2.0 SP1 components

 

NetFX_Other.msp

x86, x64

XP, W2K3

2.0 SP1 components

 

NetFX_Other_64.msp

x64

XP, W2K3

2.0 SP1 components

 

prexp.msp

x86, x64

XP, W2K3

2.0 SP1 components

 

winforms.msp

x86, x64

XP, W2K3

2.0 SP1 components

 

winforms_64.msp

x64

XP, W2K3

2.0 SP1 components

wcu\dotNetFramework\dotNetFX30

Netfx30a_x64.msi

x64

XP, W2K3

3.0 SP1 components

 

Netfx30a_x86.msi

x86

XP, W2K3

3.0 SP1 components

 

RGB9RAST_x64.msi

x64

XP, W2K3

3.0 SP1 system pre-requisite

 

RGB9RAST_x86.msi

x86

XP, W2K3

3.0 SP1 system pre-requisite

 

WCF.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WCF_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WCS.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WCS_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WF.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WF_32.msp

x86

XP, W2K3

3.0 SP1 components

 

WF_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WIC_x64_enu.exe

x64

XP, W2K3

3.0 SP1 system pre-requisite

 

WIC_x86_enu.exe

x86

XP, W2K3

3.0 SP1 system pre-requisite

 

WPF1.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WPF1_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WPF2.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WPF2_32.msp

x86

XP, W2K3

3.0 SP1 components

 

WPF2_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WPF_Other.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WPF_Other_32.msp

x86

XP, W2K3

3.0 SP1 components

 

WPF_Other_64.msp

x64

XP, W2K3

3.0 SP1 components

 

XPS.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

XPSEPSC-amd64-en-US.exe

x64

XP, W2K3

3.0 SP1 system pre-requisite

 

XPSEPSC-x86-en-US.exe

x86

XP, W2K3

3.0 SP1 system pre-requisite

wcu\dotNetFramework\dotNetFX30\x64

msxml6.msi

x64

XP, W2K3

3.0 SP1 system pre-requisite

wcu\dotNetFramework\dotNetFX30\x86

msxml6.msi

x86

XP, W2K3

3.0 SP1 system pre-requisite

wcu\dotNetFramework\dotNetFX35\ia64

netfx35_ia64.exe

ia64

W2K8

3.5 components

wcu\dotNetFramework\dotNetFX35\x64

netfx35_x64.exe

x64

XP, W2K3, Vista, W2K8

3.5 components

wcu\dotNetFramework\dotNetFX35\x86

netfx35_x86.exe

x86

XP, W2K3, Vista, W2K8

3.5 components

wcu\dotNetFramework\dotNetMSP

NetFx_20_SP1_ENU_License.rtf

-

Vista RTM

2.0 cumulative updates license

 

NetFx_30_SP1_ENU_License.rtf

-

Vista RTM

3.0 cumulative updates license

 

NetFX2.0-KB110806-v6000-x64.msu

x64

Vista RTM

2.0 cumulative updates

 

NetFX2.0-KB936704-v6000-x64_RTM_en.msu

x64

Vista, W2K8

2.0 English language packs

 

NetFX3.0-KB929300-v6000-x64.msu

x64

Vista RTM

3.0 cumulative updates

 

NetFX3.0-KB936705-v6000-x64_RTM_en.msu

x64

Vista, W2K8

2.0 English language packs

 

NetFX2.0-KB110806-v6000-x86.msu

x86

Vista RTM

2.0 cumulative updates

 

NetFX2.0-KB936704-v6000-x86_RTM_en.msu

x86

Vista, W2K8

3.0 English language packs

 

NetFX3.0-KB929300-v6000-x86.msu

x86

Vista RTM

3.0 cumulative updates

 

NetFX3.0-KB936705-v6000-x86_RTM_en.msu

x86

Vista, W2K8

3.0 English language packs

The following examples list the files that you need to include in your setup media.

Note

When you include individual components, you must include them in the same relative path as the .NET Framework 3.5 setup bootstrapper (dotnetfx35setup.exe).

Example 1

The following table lists the files that you must include in your setup media layout in order to deploy to Windows XP and Vista. The file list assumes that users are installing only the x86 version, and that users have installed Service Pack 1 for the .NET Framework 2.0 and 3.0 (Windows XP and Windows Server 2003) or the cumulative update (Windows Vista).

Path

File name

Platform

OS

Description

 

dotnetfx35setup.exe

All

All

.NET Framework 3.5 setup bootstrapper

dotNetFX35\x86

netfx35_x86.exe

x86

XP, W2K3, Vista, W2K8

3.5 components

Example 2

If you are deploying to Windows XP (SP2) or Windows Server 2003 (SP1) on x86 and x64 computers, and if users already have the .NET Framework version 2.0 SP1 installed, you must include the following files in your media layout.

Note

In this example, if the user does not have the .NET Framework version 2.0 SP1, setup will download it automatically if the user is connected to the Internet.

Path

File name

Platform

OS

Description

(root)

dotnetfx35setup.exe

All

All

.NET Framework 3.5 setup bootstrapper

dotNetFX30

Netfx30a_x64.msi

x64

XP, W2K3

3.0 SP1 components

 

Netfx30a_x86.msi

x86

XP, W2K3

3.0 SP1 components

 

RGB9RAST_x64.msi

x64

XP, W2K3

3.0 SP1 system pre-requisite

 

RGB9RAST_x86.msi

x86

XP, W2K3

3.0 SP1 system pre-requisite

 

WCF.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WCF_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WCS.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WCS_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WF.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WF_32.msp

x86

XP, W2K3

3.0 SP1 components

 

WF_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WIC_x64_enu.exe

x64

XP, W2K3

3.0 SP1 system pre-requisite

 

WIC_x86_enu.exe

x86

XP, W2K3

3.0 SP1 system pre-requisite

 

WPF1.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WPF1_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WPF2.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WPF2_32.msp

x86

XP, W2K3

3.0 SP1 components

 

WPF2_64.msp

x64

XP, W2K3

3.0 SP1 components

 

WPF_Other.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

WPF_Other_32.msp

x86

XP, W2K3

3.0 SP1 components

 

WPF_Other_64.msp

x64

XP, W2K3

3.0 SP1 components

 

XPS.msp

x86, x64

XP, W2K3

3.0 SP1 components

 

XPSEPSC-amd64-en-US.exe

x64

XP, W2K3

3.0 SP1 system pre-requisite

 

XPSEPSC-x86-en-US.exe

x86

XP, W2K3

3.0 SP1 system pre-requisite

dotNetFX30\x64

msxml6.msi

x64

XP, W2K3

3.0 SP1 system pre-requisite

dotNetFX30\x86

msxml6.msi

x86

XP, W2K3

3.0 SP1 system pre-requisite

dotNetFX35\x64

netfx35_x64.exe

x64

XP, W2K3, Vista, W2K8

3.5 components

dotNetFX35\x86

netfx35_x86.exe

x86

XP, W2K3, Vista, W2K8

3.5 components

See Also

Concepts

.NET Framework 3.5 Deployment Guide for Administrators