.NET 4.5安装的健康检查

在Windows Server 2012 R2核心服务器框上,我得到这些结果:

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框架4.5安装,还是没有安装? 如何“安装”“.NET 4.5function”,但“.NET 4.5”是“删除”?

在同一台机器上.net的registry项如下所示:

在这里输入图像说明

基于这个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 

这看起来与上面的报告相冲突。 🙁

如果不使用筛选器运行Get-WindowsFeatures,则会看到“AS-Net-Features”是“Application Server”的一部分。 正如SimonS所说,只有在服务器上托pipe应用程序,而不是运行基于.NET的应用程序时才需要。 NET-Framework-Core是安装的实际.NET框架。

$ PSVersionTable.PSversion列出了安装的PowerShell版本,而不是.NET Framework。 PowerShell是Windowspipe理框架(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支持。 但是,自那时以来(4.5.2,4.6和4.6.1)已经发布了一些.NET框架,如果你安装了它们,它们将在已安装的程序列表中,而不是Windowsfunction。

有一个我最近刚刚发现的工具,可以帮助确定给定的系统上的版本,虽然是一个GUI程序,我不知道它会帮助服务器核心安装。 它被称为.NET Framework安装validation工具,可以在这里find: https : //blogs.msdn.microsoft.com/astebner/2008/10/13/net-framework-setup-verification-tool-users-guide/

.NET 4.5安装。 否则,您不会显示4.0.30319.33440的CLR版本,或者4.0的PS版本。

您可以执行另一个validation:

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

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

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

“当某个function的有效载荷从安装中删除时,它将从%SystemDrive%:\ Windows \ WinSxS的并行存储中删除。