我目前正在编写一个脚本,该脚本可以自动更新带有错误处理的软件包。我还希望它能够识别预发布软件包。为此,我使用了“Get-InstalledModule”命令及其开关参数 -AllowPrerelease。但它只给我提供了主要版本?
安装的版本:
PS C:\WINDOWS\system32> Get-InstalledModule -Name BcContainerHelper -AllVersions
Version Name Repository Description
------- ---- ---------- -----------
2.0.10 BcContainerHelper PSGallery PowerShell module
2.0.11-preview422 BcContainerHelper PSGallery PowerShell module
2.0.5 BcContainerHelper PSGallery PowerShell module
我想要最新的预发行版,但它却给我最新的主要版本?
PS C:\WINDOWS\system32> Get-InstalledModule -Name BcContainerHelper -AllowPrerelease
Version Name Repository Description
------- ---- ---------- -----------
2.0.10 BcContainerHelper PSGallery PowerShell module
这是故意的还是我做错了什么?
答案1
基本上-AllowPrelease
什么也不做Get-InstalledModule
每 MS:
如果未指定 -AllowPrerelease 标志,则不会显示预发布包。
PowerShellGet 模块命令中唯一的例外是 Get-InstalledModule,某些情况下还有 Uninstall-Module。
Get-InstalledModule 始终会自动在模块的版本字符串中显示预发布信息。
我的行为与您相同,但这将返回最新的预发布版本:
(Get-InstalledModule $name -AllVersions | sort version -Descending)[0]`