Какую версию.NET мой сценарий PowerShell использует?

Я хотел бы использовать.NET в некоторых сценариях PowerShell, которые я собираюсь записать - как я знаю/объявляю, какая версия.NET я имею дело с когда эти запущенные скрипты?

И действительно ли возможно выбрать, против которой версии.NET будет работать мой сценарий?

41
задан Peter Mortensen 2 December 2014 в 22:23
поделиться

6 ответов

В PowerShell 2.0 просто взгляните на переменную $ PSVersionTable :

PS> $psversiontable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.4927
BuildVersion                   6.1.7600.16385
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

В PowerShell 1.0, используйте [System.Environment] :: Version :

PS> [Environment]::Version

Major  Minor  Build  Revision
-----  -----  -----  --------
2      0      50727  4927
39
ответ дан 27 November 2019 в 00:37
поделиться

Чтобы получить версию .NET:

[System.Reflection.Assembly]::GetExecutingAssembly().ImageRuntimeVersion

... которая по умолчанию является версией CLR, под которой скомпилирована сборка (System.Management.Automation.dll).

И нет, вы не можете выбрать, под какой версией .NET запускать сценарий.

16
ответ дан 27 November 2019 в 00:37
поделиться

Версия .NET может быть определена по версии mscorlib. Таким образом, вы можете сделать следующее в PowerShell для вывода текущей версии .NET:

$a = [System.Reflection.Assembly]::Load("mscorlib")
$a.GetName().Version
7
ответ дан 27 November 2019 в 00:37
поделиться

Я обнаружил, что эту информацию можно искать в каталоге C:\Windows\Microsoft.NET\Framework:

cd C:\Windows\Microsoft.NET\Framework
dir

Каталоги внутри этого каталога расскажут вам о версиях установленного фреймворка.

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        14/07/2009     10:48            3082
d----        14/07/2009      4:37            v1.0.3705
d----        14/07/2009      4:37            v1.1.4322
d----        25/06/2010     17:26            v2.0.50727
d----        14/07/2009     10:48            v3.0
d----        14/07/2009     10:48            v3.5
-4
ответ дан 27 November 2019 в 00:37
поделиться

Прочтите статью Эй, сценарист! Как проверить, какую версию Windows PowerShell я использую? . Он показывает, где в реестре вы можете проверить это, чтобы определить это.

1
ответ дан 27 November 2019 в 00:37
поделиться

PS> [Runtime.InteropServices.RuntimeEnvironment] :: GetRuntimeDirectory ()
C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \

1
ответ дан 27 November 2019 в 00:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: