无法使用 DISM 将 .NET3.5 添加到 Windows 8.1

无法使用 DISM 将 .NET3.5 添加到 Windows 8.1

在 Windows 8 PC 上运行良好的相同命令行在 Windows 8.1 PC 上无法运行。

DISM.exe /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:C:\Users\Admin\Desktop\sxs

这就是我将 sxs 文件夹复制到的地方。

但根据微软它应该可以在 8 和 8.1 上运行。进度条停在 65.8%,错误:0x800f0081f。

找不到源文件。

但它肯定在那个位置 - 复制并粘贴到地址栏,它就在那里。我需要以这种方式安装 .NET 3.5 以支持 .NET 程序的离线安装,因此控制面板 - Windows 功能方法对我来说不是一个选择。

我做了日志可供分析。看来 Windows 8.1 上的 DISM 不理解 /featurename:NetFx3 选项,因为 DISM.log 中有一行

Encountered an unknown option "featurename" with value "NetFx3" - CPackageManagerCLIHandler::Private_GetPackagesFromCommandLine

答案1

SXS 文件夹中的文件必须适合该版本的 Windows。当 PC 升级到 8.1 时,它将无法使用 8.0 磁盘中的 SXS 文件夹,这时您需要 8.1 磁盘中的 SXS 文件夹。我没有在文档中找到任何明确说明这一点的内容,错误消息“无法找到源文件”充其量只是误导。但是,线索(如果您已经知道以下信息)在 CBS 日志中,其中显示了有关名称为 6.3.9600 的文件的消息,因为 Windows 8.0 中的 SXS 文件夹中没有文件具有这样的文件名。

如何确定您的 SXS 文件夹适用于 Windows 8.0 还是 8.1

Windows 8.0 的 SXS 文件夹中几乎所有文件夹的文件夹名称中都包含字符串“6.2.9200”。Windows 8.1 的 SXS 文件夹中几乎所有文件夹的文件夹名称中都包含字符串“6.3.9600”。不存在一个版本的字符串出现在另一个版本的文件夹名称中的情况。

答案2

卸载 KB2966828 就解决了这个问题。

答案3

只需移动/limitaccess如下所示的参数或将其删除。

DISM.exe /Online /Enable-Feature /FeatureName:NetFx3 /All /Source:C:\Users\Admin\Desktop\sxs /LimitAccess 

答案4

虽然这是一篇旧帖子,但我本周一直在处理这个问题。如果您使用 SCCM 离线服务或预配置的 WIM,并且您的映像包含以下 KB:

KB2966826

KB2966826

KB2966826

无论您做什么,安装都会失败。这些是 .NET 3.5 安全更新,无论计算机上是否安装了 3.5,都会安装。如果存在,它们会阻止离线安装。

相关内容