因此,我尝试在 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 时遇到了同样的问题,下面是我修复该问题的方法:
- 在根目录下创建一个文件夹(例如 C:\NetFx3)
- 复制微软-windows-netfx3-ondemand-软件包.cab从 Windows 安装磁盘 .\sources\sxs 到 C:\NetFx3 文件夹
- 以管理员身份运行命令提示符
DISM.exe /online /enable-feature /featurename:NetFX3 /All /Source:C:\NetFX3 /LimitAccess
- 完成后文本进度条会到达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)”复选框。单击“应用”,单击“确定”。
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:\驱动器”。
*这个帖子救了我一命。感谢所有贡献者,尤其是@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。