bestsource

PowerShell 스크립트에서 사용하는 .NET 버전은 무엇입니까?

bestsource 2023. 8. 12. 10:30
반응형

PowerShell 스크립트에서 사용하는 .NET 버전은 무엇입니까?

사용하고 싶습니다.작성하려는 일부 PowerShell 스크립트의 NET -- 의 버전을 확인/선언하려면 어떻게 해야 합니까?이 스크립트가 실행될 때 처리해야 하는 NET?

의 버전을 선택할 수 있습니까?NET 내 스크립트가 실행됩니까?

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

...아니요, 어느 것을 선택할 수 없습니다.스크립트를 실행할 수 있는 NET 버전 -- George Howarth

와, 그건 사실이 아니에요!의 버전을 지정할 수 있습니다.PowerShell에서 사용하는 NET.키는 입니다.[appname] 형식의 NET 표준 응용 프로그램 구성 파일입니다.exe.config.대부분의 경우와 동일한 디렉토리에 삭제할 수 있습니다.PowerShell 및 PowerShell ISE 실행 파일을 포함한 NET 응용 프로그램과 CLR은 구성 파일에 지정된 모든 인식 가능한 옵션을 자동으로 로드합니다.이러한 옵션 중 하나는 응용 프로그램에서 사용할 CLR 버전입니다.

이 내용은 다음 질문에 자세히 설명되어 있습니다.를 사용하여 PowerShell을 실행하려면 어떻게 해야 합니다.NET 4 런타임?특히, 22세 황제의 게시물을 참조하십시오.

를 얻기 위해.NET 버전:

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

...기본적으로 CLR 어셈블리의 버전입니다.System.Management.Automation.dll) 아래에 컴파일됩니다.

아니요, 어느 것을 선택할 수 없습니다.스크립트를 실행할 수 있는 NET 버전입니다.

.NET 버전은 mscorlib 버전에서 유추할 수 있습니다.따라서 PowerShell에서 다음을 수행하여 의 현재 버전을 출력할 수 있습니다.NET:

$a = [System.Reflection.Assembly]::Load("mscorlib")
$a.GetName().Version

이것은 오래된 스레드이며, 지금 게시할 답변은 에 사용할 수 없습니다.2017년경 이전의 NET 버전.

숙박업소가 있습니다.

시도:

[System.Runtime.InteropServices.RuntimeInformation]::FrameworkDescription

그러나 일부 버전의 Windows PowerShell에서는 두 가지 유형이 있습니다(새로운 PowerShell 6 및 7 등에 대해서는 잘 모르겠습니다).System.Runtime.InteropServices.RuntimeInformation다른 어셈블리에서!그리고 그들 중 한 명만이 재산을 가지고 있습니다.따라서 다음과 같은 자격을 갖추어야 합니다.

[System.Runtime.InteropServices.RuntimeInformation, Microsoft.Powershell.PSReadline]::FrameworkDescription   # does not exist
[System.Runtime.InteropServices.RuntimeInformation, mscorlib]::FrameworkDescription   # good

PS > [재생 시간].Interop Services.런타임 환경]:: GetRuntimeDirectory()
C:\Windows\Microsoft.NET 프레임워크\v2.0.50727\

언급URL : https://stackoverflow.com/questions/3344855/which-net-version-is-my-powershell-script-using

반응형