安装 posh-git 时遇到问题

Trouble installing posh-git

我想在笔记本电脑上安装 posh-git 但是当我尝试安装 w/command "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 站点上的勘误表我看到它说我需要更新我的 PowerShellGet 模块 w/“Install-Module PowerShellGet -S cope CurrentUser -Force -AllowClobber" 但这给出了错误:

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.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,但都无济于事。任何有关如何纠正此问题的建议将不胜感激。

错误是特定的。您正在使用模块默认不存在的参数/开关。

# 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

根据文档:

Prerelease Versioning Added to PowerShellGet and PowerShell Gallery

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

Publishers simply add the prerelease string (ie. the part that comes after “2.0.0”) in the metadata, and the version will be considered prerelease. For example:

@{
   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