mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Fix Get-EnvironmentInformation IsCoreCLR logic (#5592)
* Fix Get-EnvironmentInformation IsCoreCLR logic
Replace $Runtime = [System.Runtime.InteropServices.RuntimeInformation] and $OSPlatform = [System.Runtime.InteropServices.OSPlatform] with ($PSVersionTable.ContainsKey("PSEdition") -and $PSVersionTable.PSEdition -eq "Core").
This commit is contained in:
+6
-12
@@ -97,19 +97,13 @@ function Get-PSCommitId
|
||||
function Get-EnvironmentInformation
|
||||
{
|
||||
$environment = @{}
|
||||
# Use the .NET Core APIs to determine the current platform.
|
||||
# If a runtime exception is thrown, we are on Windows PowerShell, not PowerShell Core,
|
||||
# because System.Runtime.InteropServices.RuntimeInformation
|
||||
# and System.Runtime.InteropServices.OSPlatform do not exist in Windows PowerShell.
|
||||
try {
|
||||
$Runtime = [System.Runtime.InteropServices.RuntimeInformation]
|
||||
$OSPlatform = [System.Runtime.InteropServices.OSPlatform]
|
||||
|
||||
# PowerShell Core will likely not be built on pre-1709 nanoserver
|
||||
if ($PSVersionTable.ContainsKey("PSEdition") -and "Core" -eq $PSVersionTable.PSEdition) {
|
||||
$environment += @{'IsCoreCLR' = $true}
|
||||
$environment += @{'IsLinux' = $Runtime::IsOSPlatform($OSPlatform::Linux)}
|
||||
$environment += @{'IsMacOS' = $Runtime::IsOSPlatform($OSPlatform::OSX)}
|
||||
$environment += @{'IsWindows' = $Runtime::IsOSPlatform($OSPlatform::Windows)}
|
||||
} catch {
|
||||
$environment += @{'IsLinux' = $IsLinux}
|
||||
$environment += @{'IsMacOS' = $IsMacOS}
|
||||
$environment += @{'IsWindows' = $IsWindows}
|
||||
} else {
|
||||
$environment += @{'IsCoreCLR' = $false}
|
||||
$environment += @{'IsLinux' = $false}
|
||||
$environment += @{'IsMacOS' = $false}
|
||||
|
||||
Reference in New Issue
Block a user