.NET Framework安装失败问题

适用于:Windows 10 神州网信政府版

1.概要:

用户反馈在尝试安装.NET Framework 3.5时出现如下问题报错。

2.操作步骤/更多信息:

以下几种原因可能导致上述问题的发生:

  1. .NET Framework 无法通过 Powershell 启用。
  2. 损坏的 .NET Framework 依赖项 – 由于某些类型的损坏的 .NET Framework 依赖项会影响新版本的安装,因此也会出现此特定问题。在这种情况下,可通过运行 .NET 修复工具来修复损坏的实例。
  3. 系统文件损坏 – 在某些情况下,您可能会看到此错误代码是由于某种类型的损坏而导致的,即某些软件基础设施的 Windows 文件。可用健康的等效文件替换损坏的文件,运行修复安装或全新安装。

针对原因一:可尝试在控制面板-程序和功能-打开或关闭windows功能中勾选.net framework进行尝试安装,但通常无法在线获取安装源文件,不适用CMGE。

针对原因二:需要使用NetRepairTool进行.net framework依赖项的修复。

关于NetRepairTool的使用,主要有两种方式:

  • 双击可执行文件,根据修复向导进行自动修复

  • 可使用命令行方式,有针对性的进行手动修复。以下为修复工具可使用的参数命令及部分截图:
标准选项 描述 用法
/? 或 / 帮助 显示帮助信息。 NetFxRepairTool.exe /?
/q 或 /安静 静音模式。无需用户交互,该工具会尝试所有修复/修复并保存日志文件。
选项“/q”和“/p”是互斥的。
NetFxRepairTool.exe /q
/p 或 /被动 无人值守模式。只显示进度条。
选项“/q”和“/p”是互斥的。
NetFxRepairTool.exe /p
/a 或 /addsource 离线修复模式。修复所需的安装程序可再发行文件是从“/addsource”标志指定的网络共享或文件夹路径复制的。当工具在断开连接或锁定的环境中运行时,通常应使用此方法。

NetFxRepairTool.exe /a <文件夹路径>

示例:
NetFxRepairTool.exe /a “\\SharePc\ShareFolder”

/r 或 /修复 可以选择性地将修复操作的范围限定为针对一组指定的产品基线。如果未指定此选项,该工具将尝试修复安装的所有受支持的 .NET Framework 版本。
“/repair” 选项还可以与 “None” 值一起使用,以仅应用修复程序并跳过任何产品基线的运行修复。当此选项与“None”值一起使用时,不应指定“/addsource”选项。
此选项仅适用于安静和被动模式。

NetFxRepairTool.exe /r < version1 >; < version2 >

支持的版本值:.net35、.net4、.net45、.net451

.net452、.net46、.net461、.net462

.net471、.net472、.net48,无

示例:
NetFxRepairTool.exe /q /r .net4
NetFxRepairTool.exe /q /r .net35;.net45

/l 或 /logs (可选)为工具生成的日志文件柜 (FixDotNet*.cab) 设置所需的文件夹路径。CAB 文件的默认位置(即未指定此选项)是当前用户的桌面文件夹。

NetFxRepairTool.exe /l <文件夹路径>

示例:
NetFxRepairTool.exe /l “%temp%”

/c 或 /collectonly 仅日志收集模式。此模式将允许收集与 .NET Framework 设置相关的日志,这对于故障排除非常有用。指定此选项时,不会执行修复或任何修复操作。
此选项仅适用于安静和被动模式,并将禁止所有其他操作。
NetFxRepairTool.exe /q /c

NetFxRepairTool.exe /p /c
/n 或 /noceipconsent 选择不向 Microsoft 发送反馈信息。默认(未指定标志)假定用户已选择向 Microsoft 发送使用数据。
此选项仅适用于安静和被动模式。
NetFxRepairTool.exe /q /n

NetFxRepairTool.exe /p /n

 

针对原因三:尝试修复Windows Foundation Package,具体方法如下:

  • 使用管理员身份运行powershell,并执行命令:

dism /online /get-features

确认版本信息及程序包功能列表文件。

  • 从一台无故障电脑上拷贝如下路径的该文件至本机。

C:\windows\servicing\packages

  • 故障电脑上以管理员身份运行CMD命令,使当前登录用户成为该文件夹的所有者:

takeown /F c:\Windows\Servicing\Packages /D y /R

同时赋予当前登录用户完全控制权限
cacls c:\Windows\Servicing\Packages /E /T /C /G "当前登录用户名":F

  • 将之前拷贝的文件拷贝至C:\windows\Servicing\Packages。
  • 运行如下命令,查看是否成功安装.net framework

dism.exe /online /enable-feature /featurename:NetFX3 /Source: c:\sxs /LimitAccess /all