.NET 4.5 安装健康检查

.NET 4.5 安装健康检查

在 Windows Server 2012 R2 Core Server 框中,我得到以下结果:

PS C:\Users\vagrant> Get-WindowsFeature | Where-Object {$_.DisplayName -like "*.NET*"}

Display Name                                            Name                       Install State
------------                                            ----                       -------------
    [ ] .NET Framework 4.5                              AS-NET-Framework                 Removed
            [ ] .NET Extensibility 3.5                  Web-Net-Ext                    Available
            [ ] .NET Extensibility 4.5                  Web-Net-Ext45                  Available
            [ ] ASP.NET 3.5                             Web-Asp-Net                    Available
            [ ] ASP.NET 4.5                             Web-Asp-Net45                  Available
[ ] .NET Framework 3.5 Features                         NET-Framework-Features         Available
    [ ] .NET Framework 3.5 (includes .NET 2.0 and 3.0)  NET-Framework-Core               Removed
[X] .NET Framework 4.5 Features                         NET-Framework-45-Fea...        Installed
    [X] .NET Framework 4.5                              NET-Framework-45-Core          Installed
    [ ] ASP.NET 4.5                                     NET-Framework-45-ASPNET        Available
    [ ] .NET Environment 3.5                            WAS-NET-Environment            Available

我不知道该怎么做解读上述报告.NET Framework 4.5 是安装的还是没安装?为什么“.NET 4.5 功能”是“安装的”,而“.NET 4.5”却是“删除的”?

同一台计算机上的 .net 注册表项如下所示:

在此处输入图片描述

根据这篇 MSDN 文章,大概我安装了 .NET Framework 4.5.1。但是,我该如何解释上面的第一个报告?它似乎表明我的 .NET 4.5 安装不完整。

情况变得更糟。考虑以下输出:

PS C:\Users\vagrant> $psversiontable

Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.33440
BuildVersion                   6.3.9600.16384
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2

这看起来与上面的两份报告相冲突。:(

答案1

如果您运行没有过滤器的 Get-WindowsFeatures,您将看到“AS-Net-Features”是“应用程序服务器”的一部分。正如 SimonS 所说,只有在您在该服务器上托管应用程序时才需要它,而不是运行基于 .NET 的应用程序。NET-Framework-Core 是实际安装的 .NET 框架。

$PSVersionTable.PSversion 列出的是已安装的 PowerShell 版本,而不是 .NET Framework。PowerShell 是 Windows Management Framework (WMF) 的一部分,每个版本都依赖于某个 .NET Framework 版本,但它们并不完全相同。例如,WMF 5 需要 .NET 4.5 或更高版本。

至于您安装了哪个版本的 .NET Framework,这只是一个不完整的描述。它告诉我们您安装了 .NET 4.5.1(Windows 附带),这满足了 .NET 4.0 - 4.5.1 的任何要求。它还告诉我们您没有 .NET Framework 3.5,这也是您获得较低版本 .NET Framework 支持的方式。但是,从那时起已经发布了一些 .NET Framework(4.5.2、4.6 和 4.6.1),如果您安装了它们,它们将出现在已安装程序列表中,而不是 Windows 功能中。

我最近发现了一个工具,它可以帮助确定给定系统上的版本,尽管它是一个 GUI 程序,但我不确定它是否有助于安装服务器核心。它被称为 .NET Framework 安装验证工具,可以在这里找到:https://blogs.msdn.microsoft.com/astebner/2008/10/13/net-framework-setup-verification-tool-users-guide/

答案2

已安装 .NET 4.5。否则,您不会显示 CLRVersion 4.0.30319.33440 或 PSVersion 4.0。

您可以执行的另一项验证:

[console]::WriteLine([Environment]::Version)

如果您对“已删除”安装状态感兴趣以及如何恢复有效负载:

Windows Server 2012 R2 按需安装选项和功能(第 5 部分,共 5 部分)

“当从安装中删除功能的有效负载时,它将从 %SystemDrive%:\Windows\WinSxS 的并行存储中删除。”

相关内容