Microsoft Doc 中有一张表格,列出了 PowerShell 版本 3.0 至 5.1 所需的 .NET Framework 版本: https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/install/windows-powershell-system-requirements?view=powershell-7#microsoft-net-framework-requirements
在没有 PowerShell 或 .NET 的新 Linux 实例上安装 PowerShell 7.0 后,我注意到 PS cmdlet 正常工作。当我查看 .NET 运行时时,没有列出任何内容。当我运行$PS版本表它没有列出 CLR,而是列出以下内容:
PS /home/ubuntu> $PSVersionTable
Name Value
---- -----
PSVersion 7.0.3
PSEdition Core
GitCommitId 7.0.3
OS Linux 5.3.0-1035-aws #37-Ubuntu SMP Sun Sep 6 01:17:09 UTC 2020
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
这引发了几个问题:
- PowerShell 7.0 和 7.1(目前正在开发)是否被视为“自给自足“已发布.NET Core 应用程序?
- PowerShell 7.0 是否包含 .NET Core 3.1 的独立/嵌入版本?
- PowerShell 7.1 是否包含 .NET 5.0 的独立/嵌入式版本?
- 如果您安装其他版本的 .NET Core 或 .NET(例如 .NET 6.0 - 发布时)是否会对 7.0 或 7.1 产生影响,或者始终使用自包含/嵌入式版本?
答案1
这是文档的链接,其中列出了每个受官方支持的 Linux 发行版所依赖的软件包https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7#binary-archives
PowerShell 包将引用它们的依赖项,但如何获取它们取决于如何安装 PowerShell。