Назад | Перейти на главную страницу

Проверка работоспособности при установке .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 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

Похоже, это противоречит обоим отчетам выше. :(

Если вы запустите Get-WindowsFeatures без фильтра, вы увидите, что «AS-Net-Features» является частью «Application Server». Как говорит 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.

Я недавно нашел инструмент, который может помочь определить, какая версия установлена ​​в данной системе, хотя, будучи программой с графическим интерфейсом, я не уверен, что он поможет при установке Server Core. Он называется инструментом проверки установки .NET Framework, и его можно найти здесь: https://blogs.msdn.microsoft.com/astebner/2008/10/13/net-framework-setup-verification-tool-users-guide/

.NET 4.5 установлен. В противном случае вы не отобразили бы CLRVersion 4.0.30319.33440 или PSVersion 4.0.

Еще одна проверка, которую вы можете выполнить:

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

Если вас интересует состояние установки «Удалено» и как восстановить полезную нагрузку:

Параметры и компоненты установки Windows Server 2012 R2 по запросу (часть 5 из 5)

«Когда полезная нагрузка функции удаляется из установки, она удаляется из параллельного хранилища в% SystemDrive%: \ Windows \ WinSxS».