Microsoft .NET Framework 3.5 Deployment Considerations
September 28, 2012
Abstract
This paper describes acquisition and installation scenarios for.NET 3.5 Framework in Windows 8 and Windows Server 2012.
This information applies to the following operating systems: 
	Windows 8 
	Windows Server 2012 

References and resources discussed here are listed at the end of this paper.
The current version of this paper is maintained on the Web at: 
	Microsoft .NET Framework 3.5 Deployment Considerations
 
Disclaimer: This document is provided “as-is”. Information and views expressed in this document, including URL and other Internet website references, may change without notice. Some information relates to pre-released product which may be substantially modified before it’s commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. You bear the risk of using it.
Some examples depicted herein are provided for illustration only and are fictitious. No real association or connection is intended or should be inferred.
This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes. 
© 2012 Microsoft. All rights reserved.

Document History
Date	Change				
September 28, 2012	Updated to reflect rebranding	
June 13, 2012	First publication	

Contents
Introduction
Configure Features on Demand and Feature Store Repair Group Policy
Requirements
Servicing updates
Multilingual images
Modify an image prior to deployment
Requirements
For an online reference image that can access Windows Update
For an offline reference image
Multilingual images
Use the Deployment Image Servicing and Management (DISM) command line tool
Requirements
Steps
Enable Windows .NET Framework 3.5 using PowerShell
Requirements
Steps
Turn Windows Features on or off from Control Panel (Windows 8 only)
Requirements
Steps
Add feature using the Add Roles and Features Wizard (Windows Server 2012 only)
Requirements
Steps
Upgrading from Windows 7 or Windows Server 2008 R2
Windows Server Update Services (WSUS) is not supported as a source for Features on Demand or feature file store repair
Summary
Appendix A: Common Errors and Resolution Steps

Introduction
This paper provides recommendations and guidance on how to acquire and enable .NET Framework 3.5 in Windows 8 or Windows Server 2012. The .NET Framework 4.5 is an integral Windows component that supports building and running the next generation of applications and web services and is included by default in Windows 8 and Windows Server 2012. The .NET Framework 4.5 provides a subset of managed types that you can use to create Windows Store apps for Windows using C# or Visual Basic, for more information see the .NET Framework Developer Center.
When a user runs a legacy application requiring .NET Framework 3.5, the Windows 8 application compatibility feature detects this condition (via a compatibility shim) and prompts the user to download and install the necessary .NET Framework 3.5 files from Windows Update using a new feature called ‘Features on Demand’ (FoD). This process requires internet access. Only the metadata required to enable the .NET Framework 3.5 is contained in the default Windows image (\sources\install.wim) but the actual binaries are not in the image - this feature state is called “disabled with payload removed”. The .NET Framework 3.5 payload files can only be acquired either from Windows Update or from the installation media in the \sources\sxs folder. For more information, see the Installing the .NET Framework 3.5 on Demand topic on Microsoft Developers Network (MSDN). Once the .NET Framework 3.5 feature is enabled on a PC, the files are serviced just like other operating system files from Windows Update.
Administrators can either enable .NET Framework 3.5 installation using the FoD group policy or include the .NET Framework 3.5 files in their default image. FoD allows administrators to create smaller images and speed up initialization times. For more information see Features on Demand topic of Windows Server Installation Options. 
By default, Windows 8 automatically fixes conditions that may prevent users from installing updates by resolving inconsistencies in file data and/or registry. For administrators, the FoD group policy also configures feature store repair behavior. For more information, see Configure a Windows Repair Source topic of the Deployment Image Servicing and Management (DISM) Reference.
Configure Features on Demand and Feature Store Repair Group Policy
For environments using Active Directory and group policy this option provides for the most flexibility for installation of .NET Framework 3.5. This policy setting specifies the network locations that will be used for enabling optional features that have had their payload files removed and for file data and registry repair operations from failed update installations. If you disable or do not configure this policy setting, or if the required files cannot be found at the locations specified in this policy setting, the files will be downloaded from Windows Update, if it is allowed by the policy settings for the computer. The policy “Specify settings for optional component installation and component repair” is located under Computer Configuration > Administrative Templates > System node in Group Policy Editor.
Requirements
•	Active Directory Domain infrastructure supporting Windows 8 and Windows Server 2012
•	Access rights to configure Group Policy
•	Target Computers will need network access and rights to use either alternate sources or an Internet connection to use Windows Update 

Figure 1:  Group Policy Setting for Features on Demand and feature store repair 
When this policy is enabled, a network location (for example, a file server) can be specified for both repair of the feature file store, and enabling features that have their payload removed. The Alternate source file path can point to a \sources\sxs folder or a Windows image (WIM) file using the WIM: prefix. The advantage of a WIM file is that it can be kept current with updates, and provide a current repair source and .NET Framework 3.5 binaries. The repair WIM can be different than the initial WIM file used for installation. The user or process that attempts to enable an optional OS feature requires appropriate access rights to file shares and/or WIM files.
If you select Never attempt to download payload from Windows Update, Windows Update is not contacted during an installation or repair operation.
If you select Contact Windows Update directly to download repair content instead of Windows Server Update Services (WSUS), attempts to add features (for example, .NET Framework 3.5) or repair the feature file store use Windows Update to download files. Target computers require Internet and Windows Update access for this option. Normal servicing operations continue to use WSUS if it has been configured as a source.
If an alternate source path will be used to repair images then consider the following guidelines.
Servicing updates
Keep any repair source current with the latest servicing updates. If you are using an image from a WIM file for Feature on Demand, you can use the DISM tool to service the image. For more information, see How to Mount and Modify an Image. If you are using an online Windows installation shared on your local network as a repair image, make sure that the computer has access to Windows Update.
Multilingual images
You must include all relevant language packs with your repair source files for the locales that your image supports. If you restore a feature without all localization files that the Windows installation requires for that feature, installation fails. You can install additional language packs after a feature is restored.
Modify an image prior to deployment
This option is recommended if a majority of users or systems will run .NET Framework 3.5 based legacy applications.
Requirements
•	Internet Connection
•	Access to Windows Update. If the PC or server is behind a firewall or uses a proxy server, see KB900935 -- How the Windows Update client determines which proxy server to use to connect to the Windows Update Web site.
•	Windows 8 , Windows Server 2012, or the Windows Assessment and Deployment Kit (Windows ADK) tools
•	Installation media
•	Administrator user rights. The current user must be a member of the local Administrators group to add or remove Windows features.
For an online reference image that can access Windows Update
1.	Open a command prompt with administrator user rights (Run as Administrator) in Windows 8 or Windows Server 2012.
2.	To Install .NET Framework 3.5 feature files from Windows Update, use the following command: 
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All 

Use /All to enable all parent features of the specified feature
For more information on DISM arguments see How to Enable or Disable Windows Features.

3.	On Windows 8 PCs, after installation .NET Framework 3.5 is displayed as enabled in Turn Windows features on or off in Control Panel. For more information, see http://technet.microsoft.com/en-us/library/hh824822.aspx#BKMK_restore. For Windows Server 2012 systems, feature installation state can be viewed in Server Manager.
For an offline reference image
1.	For detailed instructions on mounting an image see Mount an offline image for servicing.
2.	Run the following DISM command (image mounted to the c:\test\offline folder and the installation media in the D:\drive) to install .NET 3.5:
DISM /Image:C:\test\offline /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

Use /All to enable all parent features of the specified feature
Use /LimitAccess to prevent DISM from contacting Windows Update/WSUS
Use /Source to specify the location of the files needed to restore the feature
To use DISM from an installation of the Windows Assessment and Deployment Kit (Windows ADK), locate the Windows ADK servicing folder and navigate to this directory. By default, DISM is installed at C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment Tools\. DISM is available in Windows 8, Windows Server 2012, and Windows® Preinstallation Environment (Windows PE) 4.0. You can install DISM and other deployment and imaging tools, such as Windows System Image Manager (Windows SIM), on another supported operating system from the Windows ADK. For more information, see DISM Supported Platforms.

3.	Run the following command to lookup the status of NetFx3 Feature (offline image mounted to c:\test\offline)
DISM /Image:c:\test\offline /Get-Features /Format:Table 

A status of Enable Pending indicates that the image must be brought online to complete installation.
Multilingual images
For images that will support more than one language, you must add .NET Framework 3.5 binaries before adding any language packs. This order ensures that .NET Framework 3.5 language resources are installed correctly within the reference image and available to users and applications.

Use the Deployment Image Servicing and Management (DISM) command line tool
For an installation of Windows that is not connected to the Internet, to add .NET Framework 3.5 use the DISM command-line tool, and provide access to the \sources\SxS folder on the installation media.
Requirements
•	Windows 8 , Windows Server 2012, or the Windows Assessment and Deployment Kit (Windows ADK) tools
•	Installation media
•	Administrator user rights. The current user must be a member of the local Administrators group to add or remove Windows features.
Steps
1.	Open a command prompt with administrator user rights (that is, Run as Administrator) in Windows 8 or Windows Server 2012.
2.	To install .NET Framework 3.5 from installation media located on the D:\ drive, use the following command 
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:d:\sources\sxs

Use /All to enable all parent features of the specified feature
Use /LimitAccess to prevent DISM from contacting Windows Update
Use /Source to specify the location of the files needed to restore the feature.
For more information on DISM arguments see How to Enable or Disable Windows Features.
3.	After installation, .NET Framework 3.5 is displayed as enabled in Turn Windows features on or off in the Control Panel.
For more information, see http://technet.microsoft.com/en-us/library/hh824822.aspx#BKMK_restore
Enable Windows .NET Framework 3.5 using PowerShell
For a Windows Server 2012 core installation that is not connected to the Internet, use PowerShell to add .NET Framework 3.5 and provide access to the \sources\sxs folder on the installation media. The \sources\sxs folder can be copied to network share i.e. \\network\share\sxs to make it easily accessible to multiple computers. Also, make sure that target computer account, DOMAIN\SERVERNAME$ has at least read access to the network share. 
Requirements
•	Windows Server 2012
•	Installation media
•	Administrator user rights. The current user must be a member of the local Administrators group to add or remove Windows features.
•	Target Computers might need network access and rights to use either alternate sources or an Internet connection to use Windows Update 

Steps
1.	Start PowerShell in the Administrator Command Prompt by typing
powershell

2.	To install .NET  3.5 from installation media located on a network share (\\network\share\sxs), use the following command 
Install-WindowsFeature Net-Framework-Core -source \\network\share\sxs

For more information on the Install-WindowsFeature cmdlet, see http://technet.microsoft.com/en-us/library/hh918370.aspx 
3.	To verify installation, run the following command:
Get-WindowsFeature

The Install State column should show ‘Installed’ for .NET Framework 3.5 (includes .NET 2.0 and 3.0) feature.

Turn Windows Features on or off from Control Panel (Windows 8 only)
For an Internet connected installation of Windows 8 the easiest way to add .NET Framework 3.5 is to download required files from Windows Update.
Requirements
•	Internet Connection
•	Access to Windows Update. If the PC or server is behind a firewall or uses a proxy server, see KB900935 -- How the Windows Update client determines which proxy server to use to connect to the Windows Update Web site.
•	Administrator rights. The current user must be a member of the local Administrators group to add or remove Windows features.

Steps
1.	On the Start Screen type “turn on windows features”, select Settings in the search pane and click on Turn Windows features on or off.
2.	Under Turn Windows features on or off, click .Net Framework 3.5 (includes .NET 2.0 and 3.0)
3.	The wizard will search for required files and then prompt you to download files Windows Update.
4.	Select Download files from Windows Update.
5.	After the wizard completes, click Finish.
Add feature using the Add Roles and Features Wizard (Windows Server 2012 only)
Server Manager can be used to enable .NET Framework 3.5 for a local or remote installation Windows Server 2012.
Requirements
•	Windows Server 2012
•	Installation media
•	Administrator user rights. The current user must be a member of the local Administrators group to add or remove Windows features.
•	Target Computers might need network access and rights to use either alternate sources or an Internet connection to use Windows Update 
Steps
1.	In Server Manager, click Manage, then select Add Roles and Features to launch the Add Roles and Features Wizard.
2.	Click Next at the Before you begin screen.
3.	At the Select installation type screen, select Role-based or feature-based installation and click Next.
4.	On the Select destination server screen, select the target server and click Next.
5.	On the Select server roles screen, click Next.
6.	On the Select features screen, check the box next to .Net Framework 3.5 Features and click Next.
7.	On the Confirm installation selections screen, a warning will be displayed asking "Do you need to specify an alternate source path?...". If the target machine does not have access to Windows Update, click the Specify an alternate source path link to specify the path to the \sources\sxs folder on the installation media and click OK. After you have specified the alternate source, or if the target machine has access to Windows Update, click the X next to the warning, and then click Install. 
If you are using Server Manager in Windows Server 2012 to add a role or feature to a remote server, then the remote server’s computer account (i.e. DOMAIN\ComputerName$) requires access to the alternate source file path, because the deployment operation runs in the SYSTEM context on the target server.
Upgrading from Windows 7 or Windows Server 2008 R2
When a PC running Windows 7 (which includes .NET Framework 3.5.1 by default) is upgraded to Windows 8 or a server running Windows Server 2008 R2 (which has .NET Framework 3.5.1 feature installed) is upgraded to Windows Server 2012, .NET Framework 3.5 is enabled automatically using the files in the \sources\sxs folder.
Windows Server Update Services (WSUS) is not supported as a source for Features on Demand or feature file store repair
For Windows 8 and Windows Server 2012, WSUS is not supported as a source for feature installation (for example, adding .NET Framework 3.5 feature files) or feature file store repair operations. WSUS core scenarios include centralized update management and patch management automation, which enables administrators to manage the distribution of updates that are released through Microsoft Update to computers in their network. Feature on Demand and feature file store repair rely on download of individual files to perform update or repair operations. For example, if a single file becomes corrupted, then only that file (which could be as small as a few kilobytes) is downloaded from the repair source. WSUS can use either full or express files to perform servicing update operations; however, these files are not compatible with Feature on Demand or feature file store repair.
Summary
Windows 8 and Windows Server 2012 include .NET Framework 4.5 which is required to create Windows Store apps with Visual C# or Visual Basic. .NET Framework 3.5 is not included by default, but for legacy application compatibility purposes can be downloaded from Windows Update using Features on Demand. For environments where Windows Update cannot be used as a source, IT Professionals have several configuration options for installation of .NET Framework 3.5:
1.	Configure Features on Demand and Feature Store Repair Group Policy 
2.	Modify an image prior to deployment 
3.	Use the Deployment Image Servicing and Management (DISM) command line tool
4.	Enable Windows .NET Framework 3.5 using PowerShell 
5.	Turn Windows features on or off from Control Panel (Windows 8 only)
6.	Add feature using the Add Roles and Features Wizard (Windows Server 2012 only)

To ensure the best possible end user experience, it’s recommended to test and validate installation and functionality of legacy applications (especially those depending on .NET Framework) on your Windows 8 images. If you have feedback about this topic, please visit the appropriate Microsoft TechNet or MSDN forum:
•	Windows 8 IT Pro
•	Windows Server 8
•	Windows Store apps

Appendix A: Common Errors and Resolution Steps
Table 1: Features on Demand Error Codes
Error Code	Name	Description	Resolution Steps	
0x800F081F	CBS_E_SOURCE_MISSING	The source files could not be found.
Use the "source" option to specify the location of the files that are required to restore the feature. For more information on specifying a source location, see
 http://go.microsoft.com/fwlink/?LinkId=243077.	Verify that the source specified has the necessary files. The source argument should point to the \sources\sxs folder on the installation media or the Windows folder for a mounted image (i.e. c:\mount\windows) for an image mounted to c:\mount.	
0x800F0906	CBS_E_DOWNLOAD_FAILURE	The source files could not be downloaded.
Use the "source" option to specify the location of the files that are required to restore the feature. For more information on specifying a source location, see
 http://go.microsoft.com/fwlink/?LinkId=243077.

Windows couldn’t connect to the Internet to download necessary files. Make sure you are connected to the Internet, and press “Retry” to try again.	Verify that the computer or server has connectivity to Windows Update, and that you are able to browse to http://update.microsoft.com 
If WSUS is used to manage updates for this computer, verify that the Group Policy setting Contact Windows Update directly to download repair content instead of Windows Server Update Services (WSUS) is enabled.	
0x800F0907	CBS_E_GROUPPOLICY_DISALLOWED	DISM failed. No operation was performed. For more information, review the log file. The DISM log file can be found at 
%WINDIR%\logs\DISM\dism.log. 

Due to network policy settings, Windows couldn't connect to the Internet to download files required to complete the requested changes. Please contact your network administrator for more information.	Contact your network administrator for assistance with the Specify settings for optional component installation and component repair group policy.