.NET Framework 4.5 为默认值,.NET Framework 3.5 为可选

平台

客户端Windows 8
服务器Windows Server 2012

说明

.NET Framework 4.5 在 Windows 8 中默认启用。 默认情况下,Windows 8不包括 .NET 3.5,但 .NET 3.5 的文件作为可选功能在 Windows 8 安装媒体上提供。

如果用户从 Windows 7 升级到Windows 8,.NET Framework 3.5 将完全启用,以确保计算机上的任何应用继续正常工作。

表现

如果用户执行Windows 8的全新安装,然后安装需要 .NET Framework 3.5 (或 2.0) 的应用,他们将触发对所需 .NET 3.5 文件的请求。 通常,在向用户请求权限) 后,将从Windows 更新 (下载缺少的文件,但如果无法访问Windows 更新,则启用 .NET Framework 3.5 将失败,除非指定了缺失文件的备用源。

缓解措施

若要仅在全新安装Windows 8的测试计算机上启用 .NET Framework 3.5,请执行以下操作:

  1. 将 \sources\sxs\ 从装载的操作系统内部版本 ISO 映像复制到 dotnet35 或类似文件夹。 例如:

    xcopy e:\sources\sxs\*.* c:\dotnet35 /s
    
  2. 使用管理员权限执行此命令行:

    Dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:c:\dotnet35 /LimitAccess
    
    

注意

sources\SxS 文件夹不得用作重新分发机制,因为这不是受支持的机制。

解决方案

对于使用者:

Windows 8包括一种机制,该机制在尝试安装可再发行组件包或需要 .NET 3.5 的应用程序安装程序调用可再发行组件时自动启用 .NET Framework 3.5。

对于应用开发人员 (和 IT 管理员) :

IT 管理员可以将 .NET 3.5 应用配置为在 .NET 3.5 或 .NET 4.5 (上运行,具体取决于) 已安装的内容。 若要在 3.5 或 4.5 上运行托管应用,只需在应用程序配置文件中添加一个节即可。 这将确保如果安装了 .NET 3.5,应用将在 .NET 3.5 上运行;否则,应用将在 .NET 4.5 上运行。 下面提供了配置文件中附加部分的示例:

<configuration>
   <startup>
      <supportedRuntime version="v2.0.50727"/>
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
   </startup>
</configuration>

对于企业 OEM:

若要为 EEAP 内部版本和无权访问Windows 更新的应用程序启用 .NET Framework 3.5:

  1. 将 \sources\sxs\ 从装载的 OS 内部版本 ISO 映像复制到 dotnet35 或类似文件夹。 例如:

    xcopy e:\sources\sxs\*.* c:\dotnet35 /s
    
  2. 设置 regkey:

    [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]
     LocalSourcePath = c:\dotnet35
    

对于企业:

对于配置为使用 WSUS 提供服务的计算机,可以设置一个注册表项,以允许计算机使用Windows 更新启用 .NET 3.5 而不是 WSUS (服务(如果执行此操作) )。

  • 设置 regkey:
    [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]  RepairContentServerSource =DWORD(2)
    

还可以通过 组策略 (本地计算机策略 - 计算机配置 ->> 管理模板 - 系统来>设置此注册表项。 选择“指定可选组件安装和组件修复的设置”设置。

如果选择“直接联系Windows 更新”以下载修复内容,而不是Windows Server Update Services (WSUS) ,则任何尝试添加 Windows 功能 (例如,.NET Framework 3.5) 或修复功能都会从 Windows 更新 触发文件下载。 目标计算机需要对此选项进行 Internet 和 WU 访问。 正常的服务操作会继续使用 WSUS(如果已将其配置为源)。

有关通过注册表项设置本地源位置的说明

IT 管理员可以通过注册表项 (.NET 3.5 文件的) 设置本地源位置,以便用户可以使用“添加/删除 Windows 功能”对话框启用缺少有效负载的功能,而无需指定源位置。 注册表项的值可以通过组策略进行控制。

支持此注册表项:

条目 类型 说明
本地源路径 REG_EXPAND_SZ 本地源路径 (默认使用的) 。 可以指定多个路径:它们应由 分隔。 将按指定的顺序搜索位置。
本地源位置 (DISM 命令行中指定的) 优先于此注册表项中指定的位置。 文件夹位置可以在此注册表项中指定。
可以使用 WIM,但路径必须是 WIM 文件;无需装载它,例如:
wim:\\machine\share\file.wim:1
请注意末尾的 1。 必须指定要在 WIM 文件中使用的图像的数字索引。
对于装载的 WIM,源路径需要引用已装载映像的 windows 目录,而不是 (装载点,例如:/source:<mount_point>\windows 而不是 /source:<mount_point>) 。

资源

实现基于注册表的策略