摘要
PowerShell模块清单值PowerShellVersion
和PowerShellHostVersion
有什么区别?
详细说明
创建新模块清单时,既有此模块所需的PowerShell的最低版本设置,也有所需的PowerShell Host的最低版本设置。 例如:
New-ModuleManifest -Path '.\MyModule.psd1' -PowerShellVersion '5.0' -PowerShellHostVersion '2.0'
PowerShellVersion
与$PSVersionTable.PSVersion.Major
相关(注意:与主要版本相关,因为有效值所有都具有其次要版本/无构建或修订号)。
我不确定PowerShellHostVersion
是什么意思。 我认为这与$Host.Version
有关(即与PowerShellHostName
相关联于$Host.Name
)。 然而,在我的经验中,ISE(Windows PowerShell ISE Host
)和ConsoleHost
的版本号与PS版本相同; 因此,似乎奇怪要求这些与示例中暗示的PS版本不同步。 我希望这些是很少使用的参数,用于罕见的用例; 但我想确保我正确理解了这些参数的含义,以及是否存在常见情况下适用它们。
MSDN文档中的示例值不同(即PowershellVersion
给出5.0
,而PowershellHostVersion
得到2.0
)
官方文档只提供循环描述(即仅添加与参数名称本身暗示的信息相同的信息)。
Enter-PSSession -ComputerName .
$Host.Version
。主机名为ServerRemoteHost
。$PSVersionTable
仍然显示为5.1.14409.1012
,这是预期的结果。 - JohnLBevanfindstr /I /S /R "Host.*Version Host.*Name" *.psd1
命令,分别在pushd "%psmodulepath%"
和for /F "delims=" %G in ( 'where powershell.exe' ) do pushd "%~dpG"
文件夹中执行。我找不到任何有用的PowerShellHostVersion
出现。那么,你为什么要在你的模块中设置它呢? - JosefZVS.psd1
(位于Microsoft Web Tools
下)中都发现了PowerShellHostVersion = '1.2'
,同时在这两种情况下都有PowerShellHostName = 'Package Manager Host'
。希望对你有所帮助。 - JosefZ