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:
parent
a9c6292903
commit
ec8b849c47
18
build.psm1
18
build.psm1
|
@ -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}
|
||||
|
|
Loading…
Reference in a new issue