在 Windows 2012 R2 上安装 .Net 3.5

在 Windows 2012 R2 上安装 .Net 3.5

因此,我尝试在 Windows 2012 R2 服务器上安装 .net 3.5。我尝试通过添加功能和 DISM 进行安装,但均失败。

当我尝试通过添加功能 GUI 时,我正在使用“指定备用路径”,但失败并出现错误“安装一个或多个角色、角色服务或功能失败”

当尝试通过提升的 PowerShell 使用 DISM 时,我正在使用以下命令。

dism.exe /online /enable-feature /featurename:NetFX3 /Source:d:\sources\sxs 

这失败了

错误:0x800f0906 无法下载源文件。使用“源”选项指定恢复该功能所需的文件的位置。有关指定源位置的更多信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=243077

DISM 日志文件位于 C:\Windows\Logs\DISM\dism.log

我已按照上面列出的 KB (243077) 设置 SXS 文件夹的组策略位置。重新启动后仍然出现相同的错误。DSIM 日志显示以下内容

处理命令启用功能时失败。- CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800f0906)

快速谷歌搜索显示,很多人都遇到了这个问题,你应该卸载KB2966826 和 KB2966828 该服务器尚未安装。

我也尝试过离线 .Net 安装程序,它说我必须通过 Windows 功能添加它。所有命令都以管理员身份并通过提升的提示符运行。

在写这篇文章的时候,我搜索了一下“类似的问题”,然后看了看这个无法在 Windows Server 2012 上安装 .net 3.5

跑步

dism.exe /online /enable-feature /featurename:NetFX3 /all

产生与上述相同的错误。

答案1

我在 Windows 8.1 和 Server 2012 R2 上安装 .NET Framework 3.5 使用的命令是:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

其中 D:\ 是已安装的 ISO 或 DVD 驱动器。与您的唯一区别是/LimitAccess,但我认为这是重要的部分,因为它阻止它尝试联系 Windows 更新或 WSUS。无论出于何种原因,这方面(联系 Windows 更新)对于 Windows 8/8.1 和 Server 2012/2012R2 上的 .NET Framework 3.5 完全不起作用,并且将始终导致它失败。

也可以看看:http://blogs.technet.com/b/askcore/archive/2012/05/14/windows-8-and-net-framework-3-5.aspx

答案2

当我安装 Windows 安装盘或使用物理 DVD 时遇到了同样的问题,下面是我修复该问题的方法:

  1. 在根目录下创建一个文件夹(例如 C:\NetFx3)
  2. 复制微软-windows-netfx3-ondemand-软件包.cab从 Windows 安装磁盘 .\sources\sxs 到 C:\NetFx3 文件夹
  3. 以管理员身份运行命令提示符
  4. DISM.exe /online /enable-feature /featurename:NetFX3 /All /Source:C:\NetFX3 /LimitAccess
  5. 完成后文本进度条会到达100%,并弹出消息:“操作成功完成”。

无论出于什么原因,我的光驱都显示磁盘上的文件,但是 DISM 不喜欢它,但将文件复制到 C: 似乎有效。

答案3

对我来说,解决方案是这些答案的组合。我在一台装有 Windows Server 2012 R2 的机器上。

我尝试解决手头没有操作系统 ISO 的问题。但无法让它工作。因此,我被迫寻找 Windows Server 2012 R2 的 ISO。

1.) 启动本地组策略编辑器或组策略管理控制台(WIN+R 并输入 gpedit.msc)。

2.) 展开计算机配置,展开管理模板,然后选择系统。

3.) 打开“指定可选组件安装和组件修复组策略的设置”设置,然后选择已启用。

4.) 选中“直接联系 Windows 更新来下载修复内容,而不是 Windows Server 更新服务 (WSUS)”复选框。单击“应用”,单击“确定”。

wsus 设置

5.) 下载操作系统的 ISO 并安装映像。我在这里下载了一个: https://www.technig.com/download-windows-server-2012-r2-essentials-iso-file/

*注意:这是一个3Gb的文件。

6.)打开提升的 Powershell 并运行:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:E:\sources\sxs

*注意:在这种情况下,ISO被安装到“E:\驱动器”。

使用 Powershell 安装 Net 3.5

*这个帖子救了我一命。感谢所有贡献者,尤其是@Joshua McKinnon!

答案4

互联网上有很多关于此问题的内容,其中大部分内容都总结在了此处的答案中。我们尝试了所有方法,但都不起作用。即使指向 sxs 文件夹的各种副本,它仍然会收到“未找到源文件”错误的变体。

我终于将它指向另一台完全修补的服务器上的 winsxs 文件夹的共享确实有.net 3.5(c:\windows\winsxs)并且它可以工作:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:\\otherserver\winsxs

我的理论是,安装过程正在寻找与服务器上当前 KB 匹配的源文件。我知道还有其他文章指出要删除两个特定的 KB,但这些 KB 并未出现在我们已安装补丁的列表中。

另请注意,添加/删除功能不适用于此共享。我不得不使用 DISM。

相关内容