Windows 10/11 | .NET Framework 3.5 安装

注:本文整合多篇技术文档,如有内容异常,请看原文


.NET Framework 3.5 安装

1. 概述

.NET Framework 3.5(包含 .NET 2.0 与 3.0)是 Windows 系统的可选功能(Optional Feature),部分旧版业务应用程序仍依赖此运行时环境。默认情况下,Windows 10/11 仅预装 .NET Framework 4.8,因此需要手动启用 .NET 3.5。

启用该功能时,操作系统必须获取 Feature on Demand 载荷文件(feature payload)。载荷来源有两个:

  • Windows Update:通过 Internet 从 Microsoft 服务器下载;
  • 本地 SxS 源 :从与目标系统版本、构建号(build)及语言匹配的 Windows 安装介质的 \sources\sxs 目录获取。

在 WSUS(Windows Server Update Services)管理的环境中,客户端通常被配置为仅使用内部更新服务,无法直接访问 Microsoft 公共 Windows Update 端点,因此图形界面的功能启用向导常因无法下载载荷而失败。WSUS 可以在 .NET 3.5 安装完成后为其分发补丁和安全更新,但不能直接部署 .NET 3.5 功能本身。

2. 前置条件

前置条件 说明
操作系统 Windows 10、Windows 11 或 Windows Server 2012 及更高版本
权限 需要本地管理员权限
运行环境 PowerShell 或命令提示符需以管理员身份运行
安装介质(离线场景) 与目标系统版本、构建号、语言/版本匹配的 Windows ISO、DVD 或 USB 安装介质
网络(在线场景) 稳定的 Internet 连接,且未被防火墙或代理阻止

2.1 验证现有安装状态

在安装前,建议先检查系统是否已启用 .NET Framework 3.5。

PowerShell 方式:

powershell 复制代码
Get-WindowsOptionalFeature -Online -FeatureName NetFx3

若返回 State : Enabled,则表明该功能已启用。

DISM 方式:

cmd 复制代码
DISM /Online /Get-FeatureInfo /FeatureName:NetFx3

Server 版本功能查询:

powershell 复制代码
Get-WindowsFeature -Name NET-Framework-Features

查看 NET-Framework-Core 项的状态。

3. 安装方法

根据网络环境和管理需求,可选择以下四种部署路径:

场景 推荐方法 说明
客户端可访问 Internet,无 WSUS 限制 在线安装(GUI 或 PowerShell) 从 Windows Update 自动下载载荷
客户端无法访问 Internet,或需完全可控 离线安装(DISM / PowerShell + SxS) 使用本地安装介质或网络共享的 sources\sxs
WSUS 管理环境,允许访问 Microsoft 更新 GPO 策略:允许从 Windows Update 下载可选功能 保留 WSUS 主补丁流程,仅可选功能走 Windows Update
WSUS 管理环境,无 Internet 访问 GPO 策略:指定内部 SxS 源路径 客户端从内部文件共享拉取载荷

3.1 在线安装

3.1.1 图形界面方式
  1. Win + R,输入 optionalfeatures,回车打开"启用或关闭 Windows 功能"。

  2. 勾选 .NET Framework 3.5(包括 .NET 2.0 和 3.0),单击"确定"。

  3. 在弹出的选项中,选择 让 Windows Update 为你下载文件

  4. 保持 Internet 连接,等待下载和安装完成,根据提示重启系统。

3.1.2 PowerShell 在线方式
powershell 复制代码
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3" -All

参数说明:

  • -Online:修改当前运行的操作系统;
  • -FeatureName "NetFx3":指定 .NET Framework 3.5;
  • -All:同时启用所有必需的父功能。

对于 Windows Server,可使用:

powershell 复制代码
Install-WindowsFeature -Name NET-Framework-Core

3.2 离线安装(DISM)

当客户端无法访问 Internet 或需要确保安装过程可控时,使用与操作系统构建号匹配的 Windows 安装介质作为 SxS 源。

3.2.1 准备安装介质
  1. 获取与目标系统版本、构建号、语言匹配的 Windows ISO 文件。

  2. 右键单击 ISO 文件,选择"装载"。

  3. 打开文件资源管理器(Win + E),进入"此电脑",记录装载后的驱动器号(例如 G:)。

  4. 打开装载后的驱动器,进入 sources 文件夹,找到 sxs 子文件夹。可将该文件夹复制到本地固定路径(例如 C:\temp\sxs)或网络共享,以便长期引用。

3.2.2 命令提示符(CMD)方式

以管理员身份打开 Windows Terminal,并切换到命令提示符配置文件(Ctrl + Shift + 2)。

执行以下命令(将 G: 替换为实际的驱动器号):

cmd 复制代码
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /Source:G:\sources\sxs /LimitAccess

命令参数说明:

  • /Online:针对当前运行的操作系统进行操作;
  • /Enable-Feature /FeatureName:NetFx3:启用 .NET Framework 3.5;
  • /All:启用所有父功能;
  • /Source:G:\sources\sxs:指定本地 SxS 源路径;
  • /LimitAccess:阻止 DISM 尝试联系 Windows Update,适用于 WSUS 管理或离线环境。

安装完成后,系统将提示操作成功。

3.2.3 使用网络共享(UNC,Universal Naming Convention)路径

若将 sources\sxs 复制到文件服务器共享,可使用 UNC 路径:

cmd 复制代码
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:\server\share\sources\sxs

权限要求:客户端计算机账户(或 Authenticated Users)必须对共享路径具有读取权限。

3.2.4 PowerShell 离线方式
powershell 复制代码
$feature = Get-WindowsOptionalFeature -Online -FeatureName NetFx3

if ($feature.State -ne 'Enabled') {
    Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -LimitAccess -Source "\server\share\sources\sxs" -NoRestart
    Write-Output ".NET Framework 3.5 enabled."
} else {
    Write-Output ".NET Framework 3.5 is already enabled."
}

对于 Windows Server:

powershell 复制代码
Install-WindowsFeature -Name NET-Framework-Core -Source D:\sources\sxs
3.2.5 批处理文件自动化

以下批处理脚本可自动检测 Windows 安装介质(通过查找 sources\boot.wim)并执行离线安装:

batch 复制代码
@echo off
Title .NET Framework 3.5 Offline Installer
for %%I in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist "%%I:\sources\boot.wim" set setupdrv=%%I
if defined setupdrv (
    echo Found drive %setupdrv%
    echo Installing .NET Framework 3.5...
    Dism /online /enable-feature /featurename:NetFX3 /All /Source:%setupdrv%:\sources\sxs /LimitAccess
    echo.
    echo .NET Framework 3.5 should be installed
    echo.
) else (
    echo No installation media found!
    echo Insert DVD or USB flash drive and run this file once again.
    echo.
)
pause

该脚本兼容 install.wiminstall.esd 两种介质类型。

3.3 企业级部署(WSUS 与 GPO 环境)

3.3.1 GPO 策略:允许从 Windows Update 下载可选功能

适用场景:WSUS 管理补丁,但允许客户端从 Microsoft 获取 Feature on Demand 载荷。

策略路径:

复制代码
计算机配置 → 策略 → 管理模板 → 系统 → 指定可选组件安装和组件修复的设置

配置步骤:

  1. 将该策略设置为"已启用";
  2. 勾选 "直接从 Windows Update 下载修复内容和可选功能,而不是从 Windows Server Update Services(WSUS)"

注意事项:若环境中启用了"不要连接到任何 Windows Update Internet 位置"等限制策略,需相应调整,否则 .NET 3.5 仍无法下载载荷。

策略生效后,可在客户端使用 PowerShell 启用功能:

powershell 复制代码
$feature = Get-WindowsOptionalFeature -Online -FeatureName NetFx3

if ($feature.State -ne 'Enabled') {
    try {
        Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -NoRestart
        Write-Output ".NET Framework 3.5 enabled successfully."
    }
    catch {
        Write-Error "Failed to enable .NET Framework 3.5. Check GPO and internet/proxy access."
        throw
    }
} else {
    Write-Output ".NET Framework 3.5 is already enabled."
}
3.3.2 GPO 策略:指定内部 SxS 源路径

适用场景:客户端无 Internet 访问,需从内部仓库统一获取载荷。

步骤 1:建立内部 SxS 仓库

从 Windows 安装介质提取 \sources\sxs 文件夹,按操作系统版本和构建号分类存放,例如:

  • \\fileserver\FOD\Win11_23H2\sources\sxs
  • \\fileserver\FOD\Win10_22H2\sources\sxs

步骤 2:配置 GPO 源路径

在同一策略(计算机配置 → 策略 → 管理模板 → 系统 → 指定可选组件安装和组件修复的设置)中:

  • 设置为"已启用";
  • 备用源路径 中填入 UNC 路径,例如 \\fileserver\FOD\Win11_23H2\sources\sxs

步骤 3:客户端执行安装

cmd 复制代码
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:\fileserver\FOD\Win11_23H2\sources\sxs
3.3.3 PowerShell DSC 自动化

对于大规模部署,可使用 Desired State Configuration(DSC)确保多台系统处于一致的配置状态:

powershell 复制代码
Configuration InstallDotNet35 {
    Node "localhost" {
        WindowsFeature NetFx3 {
            Ensure               = "Present"
            Name                 = "NetFx3"
            IncludeAllSubFeature = $true
            Source               = "D:\sources\sxs"  # 根据实际情况调整路径
        }
    }
}

InstallDotNet35
Start-DscConfiguration -Path .\InstallDotNet35 -Wait -Verbose -Force
3.3.4 组策略启动脚本与注册表配置

在域环境中,可通过修改注册表指定本地源路径,随后执行常规安装命令:

powershell 复制代码
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing" -Name "LocalSourcePath" -Value "D:\sources\sxs"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing" -Name "RepairContentServerSource" -Value 2

Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3" -All

此配置使系统优先查找本地文件夹,而非 Windows Update。

3.3.5 部署工具集成

上述 PowerShell 脚本和 DISM 命令可集成到以下部署平台:

  • SCCM / ConfigMgr:作为软件分发包或任务序列步骤;
  • Intune:打包为 Win32 应用,用于混合或 Entra 托管设备;
  • RMM 工具:通过远程脚本批量执行;
  • 组策略启动脚本:在计算机启动时自动运行安装脚本。

4. 验证安装

.NET Framework 3.5 状态检查方式

安装完成后,使用以下方法验证 .NET Framework 3.5 是否成功启用:

1. PowerShell

操作命令:

powershell 复制代码
Get-WindowsOptionalFeature -Online -FeatureName NetFx3

预期输出:

复制代码
State : Enabled
2. DISM

操作命令:

cmd 复制代码
DISM /Online /Get-FeatureInfo /FeatureName:NetFx3

预期输出:

复制代码
State : Enabled
3. Windows Server 功能检查

操作命令:

powershell 复制代码
Get-WindowsFeature -Name NET-Framework-Features

预期输出:

NET‑Framework‑Core 状态标记为 Installed

4. 图形界面 (GUI)

操作步骤:

  1. 按下 Win + R,输入 optionalfeatures 回车
  2. 在弹出的 Windows 功能窗口中查找 .NET Framework 3.5

预期结果:对应项目复选框处于选中状态。

5. 故障排除

症状 / 错误信息 可能原因 解决方法
"The source files could not be found"(找不到源文件) /Source 路径错误、不可访问,或 SxS 源与操作系统构建号不匹配 验证 UNC 路径和权限;使用与客户端 OS 构建号、语言匹配的安装介质;按构建号分类维护 SxS 文件夹
部分计算机安装成功,部分失败 环境中存在混合 Windows 版本或构建号 检测操作系统版本和构建号,将客户端路由到对应的 SxS 仓库
WSUS 客户端修改 GPO 后仍无法下载载荷 其他策略阻止了 Windows Update 端点,或代理 / 防火墙拦截 检查"不要连接到任何 Windows Update Internet 位置"等限制策略;确保代理和防火墙允许访问 Microsoft 更新端点
GPO 启动脚本无法访问文件共享 计算机账户在启动时无法读取共享 Domain Computers(或相应设备组)授予共享读取权限;确保启动早期 DNS 和 SMB 连通性正常
在线安装过程中断或失败 Internet 连接不稳定,或流量受限 改用离线安装方式;确保网络连接稳定

6. 注意事项

  • WSUS 与功能安装的关系:WSUS 适用于 .NET Framework 3.5 安装完成后的补丁和更新分发,不适用于初始功能部署。
  • 源文件版本一致性:若环境中存在多种 Windows 构建号,需维护分类的 SxS 仓库,或建立 DFS 命名空间,确保客户端始终访问到匹配的源文件。
  • 自动化检测 :在 SCCM、Intune 或 RMM 中,可将 Get-WindowsOptionalFeature -Online -FeatureName NetFx3Enabled 状态作为检测规则,避免重复安装。
  • 日志记录:优先使用 PowerShell 脚本执行安装,以便输出结构化日志(记录成功 / 失败状态及使用的源路径),减少后续排查时间。
  • 安装介质兼容性 :批处理文件和 DISM 命令同时支持基于 install.wiminstall.esd 的 Windows 安装介质。

7. 参考资源