Której wersji .NET używa mój skrypt PowerShell?


Chciałbym używać .NET w niektórych skryptach PowerShell, które zamierzam napisać - skąd mam wiedzieć/zadeklarować, z jaką wersją .NET mam do czynienia, gdy te skrypty działają?
Czy mogę wybrać wersję .NET, na której będzie działać mój skrypt?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W PowerShell 2.0 wystarczy spojrzeć na zmienną
$ PSVersionTable
:
PS> $psversiontableName 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

W PowerShell 1.0 użyj
[System.Environment] :: Version
:
PS> [Environment]::VersionMajor Minor Build Revision
----- ----- ----- --------
2 0 50727 4927
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

... nie, nie możesz wybrać wersji .NET, w której możesz uruchomić skrypt
prowadzony przez George'a Howartha

Wow, to nieprawda! ty

czy możesz

określ, która wersja programu .NET PowerShell jest używana. Klucz jest standardowym plikiem konfiguracyjnym aplikacji .NET i ma postać [nazwa aplikacji] .exe.config. Możesz umieścić go w tym samym katalogu, co większość aplikacji .NET, w tym pliki wykonywalne PowerShell i

PowerShell ISE
http://en.wikipedia.org/wiki/W ... l_2.0
a CLR automatycznie załaduje wszystkie rozpoznane opcje określone w pliku konfiguracyjnym. Jedną z takich opcji jest wersja CLR, której chcesz użyć w swojej aplikacji.
Jest to szczegółowo opisane w pytaniu:
jak uruchomić PowerShell przy użyciu środowiska wykonawczego .NET 4?

https://coderoad.ru/2094694/... W szczególności patrz post

Cesarz XLII

.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Aby uzyskać wersję .NET:
[System.Reflection.Assembly]::GetExecutingAssembly().ImageRuntimeVersion
... który jest domyślnie wersją zestawu CLR (
System.Management.Automation.dll
) skompilowaną w.
I nie, nie możesz wybrać, w której wersji .NET możesz uruchomić skrypt.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wersja .NET można wywnioskować z wersji mscorlib. W ten sposób można wykonać następujące czynności w programie PowerShell, aby wyświetlić aktualną wersję .NET:
$a = [System.Reflection.Assembly]::Load("mscorlib")
$a.GetName().Version
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

PS & > [Runtime.InteropServices.RuntimeEnvironment] :: GetRuntimeDirectory ()

C:\Windows\Microsoft.NET\Framework\v2.0.50727\
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Przeczytaj artykuł
Hej, scenarzysta! Jak sprawdzić, której wersji programu Windows PowerShell używam?

http://blogs.technet.com/b/hey ... px... Pokazuje, gdzie w rejestrze możesz to sprawdzić.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Dowiedziałem się, że możesz znaleźć te informacje w dokumencie C: \ Windows \ Microsoft.NET \ Framework:
cd C:\Windows\Microsoft.NET\Framework
dir

Katalogi w nim zawarte poinformują Cię o wersjach zainstalowanego frameworka.
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

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się