Windows实例无法安装.NET Framework 3.5或语言包如何处理?

Windows实例默认采用WSUS(Windows Server Update Services)获取更新源会导致.NET Framework和语言包安装文件缺失,可能会上报找不到源文件或者无法安装语言包等错误。本文介绍如何通过将更新源从WSUS切换为Windows Update,解决无法安装.NET Framework 3.5或语言包的问题。

重要
  • 如果您是Windows Server 2012 R2系统且安装的是2023年06月之后的官方镜像,会存在因为安全补丁而导致无法安装.NET Framework 3.5的问题,针对该问题请参考Windows Server 2012 R2安装.NET 3.5失败的问题解决。

  • 如果您需继续使用Windows Server 2012 R2系统,建议您在ECS管理控制台的社区镜像中直接使用已安装.NET Framework 3.5的Windows Server 2012 R2镜像(win2012r2_9600_x64_dtc_zh-cn_40G_.Net3.5_alibase_20231204.vhd和win2012r2_9600_x64_dtc_en-us_40G_.Net3.5_alibase_20231204.vhd )去创建ECS实例。关于如何查找这两款镜像,请参见查找镜像

问题描述

  • 问题一:.NET Framework报错找不到源文件

    在Windows Server 2012 R2、Windows Server 2016或Windows Server 2019系统中安装.NET Framework 3.5时,报如下图所示的错误。

    找不到源文件

  • 问题二:无法安装语言包

    在控制面板切换语言或者Windows Update中查询语言选项时,无法选择或者安装语言包。

    无法安装语言包

问题原因

由于Windows实例默认采用WSUS获取更新源,如果在WSUS服务器上没有同步包含.NET Framework 3.5或相应语言包的更新内容,那么Windows实例就无法通过WSUS获取这些更新,就会导致.NET Framework和语言包安装文件缺失,所以上报找不到源文件或者无法安装语言包的相关错误。

解决方案

  1. 远程连接Windows实例。

    具体操作,请参见通过密码或密钥认证登录Windows实例

  2. 打开CMD命令行窗口。

  3. 输入powershell进入PowerShell交互界面。

  4. 运行以下命令,修改注册表将更新源设置为Windows Update。

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name UseWUServer -Value 0
    Restart-Service -Name wuauserv
  5. 通过以下任意一种方式,安装.NET Framework 3.5。

    说明

    Windows Server 2012与Windows Server 2016内存占用较高,安装其他应用程序使内存消耗更高,可能会导致内存不足引起安装.NET Framework失败,因此建议增加物理内存。如果是I/O优化实例,其具备较高的磁盘I/O能力,在处理虚拟内存读写时相比普通实例能更快地完成数据交换,从而减小对系统性能的影响,因此可以考虑开启系统虚拟内存

    服务器管理器UI界面安装

    1. 服务管理器中单击添加角色和功能

    2. 按照向导默认配置进行操作,在功能栏中选中.NET Framework 3.5功能

      image

      继续按照向导确认结果,直至安装完成。

      image

    执行PowerShell命令安装

    您可以运行以下任意一条命令:

    • Dism /Online /Enable-Feature /FeatureName:NetFX3 /All 

      image.png

    • Install-WindowsFeature -Name NET-Framework-Features

      image.png

    重要

    如果安装.NET Framework上报如下图所示的0x800F09060x800F081F等错误,请参考.NET Framework 3.5 安装错误进行解决。

    image

  6. (条件必选)如果您的Windows环境要求必须通过WSUS进行更新,运行以下命令,将更新源重新设置为WSUS。

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name UseWUServer -Value 1
    Restart-Service -Name wuauserv

相关文档