4

我想在笔记本电脑上安装 posh-git,但是当我尝试使用命令“PowerShellGet\Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force”安装时出现错误:

Install-Module : A parameter cannot be found that matches parameter name
'AllowPrerelease'.
At line:1 char:58
+ ... et\Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force
+                                                   ~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Install-Module], Paramet
   erBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Install-Module

阅读 github 站点上的勘误表,我看到它说我需要使用“Install-Module PowerShellGet -S 应对 CurrentUser -Force -AllowClobber”更新我的 PowerShellGet 模块,但这会产生错误:

PackageManagement\Install-Package : The module 'PackageManagement' cannot be
installed or updated because the authenticode signature of the file
'PackageManagement.cat' is not valid.
At C:\Program
Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1809
char:21
+ ...          $null = PackageManagement\Install-Package @PSBoundParameters
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Microsoft.Power....InstallP
   ackage:InstallPackage) [Install-Package], Exception
    + FullyQualifiedErrorId : InvalidAuthenticodeSignature,ValidateAndGet-Au
   thenticodeSignature,Microsoft.PowerShell.PackageManagement.Cmdlets.Insta
  llPackage

我已经用谷歌搜索并尝试了几种方法来从我的笔记本电脑上显示的 v1.0.0.1 更新 PowerShellGet,但都无济于事。任何有关如何纠正此问题的建议将不胜感激。

4

1 回答 1

2

错误是具体的。您正在为模块使用默认情况下不存在的参数/开关。

# get function / cmdlet details
(Get-Command -Name Install-Module).Parameters.Keys
<#
Name
InputObject
MinimumVersion
MaximumVersion
RequiredVersion
Repository
Credential
Scope
Proxy
ProxyCredential
AllowClobber
SkipPublisherCheck
Force
Verbose
Debug
ErrorAction
WarningAction
InformationAction
ErrorVariable
WarningVariable
InformationVariable
OutVariable
OutBuffer
PipelineVariable
WhatIf
Confirm
#>
Get-help -Name Install-Module -Examples
Get-help -Name Install-Module -Full
Get-help -Name Install-Module -Online

根据文档:

添加到 PowerShellGet 和 PowerShell 库的预发布版本控制

开发人员必须添加此内容,否则无法使用。

发布者只需在元数据中添加预发布字符串(即“2.0.0”之后的部分),该版本将被视为预发布。例如:

@{
   ModuleVersion = '2.0.0'
   #---
      PrivateData = @{
         PSData = @{
            Prerelease = '-alpha'
      }
   }
}

这个...

PowerShellGet\Install-Module

…也不是关于如何安装模块的常用方法(我知道)。您应该只需要 Install-Module cmdlet,PowerShell 已经知道它来自的模块并自动加载该模块(如果尚未加载)。

尝试这个...

Find-Module -Name posh-git

Version    Name       Repository           Description
-------    ----       ----------           -----------
0.7.3      posh-git   PSGallery            Provides prompt ...



Find-Module -Name posh-git | 
Save-Module -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules" # -WhatIf

What if: Performing the operation "Save Package" on target "'posh-git' to location 'C:\Users\Daniel\Documents\WindowsPowerShell\Modules'".


Install-Module -Name posh-git -Scope CurrentUser -Force
于 2018-12-30T04:36:24.483 回答