28/11/2019 | Autor: Igor Abade V. Leite | Categoria: Técnico | Comentários

Erro ao tentar instalar módulos prerelease no PowerShell

O PowerShell permite que autores de módulo publiquem seus módulos com um status de pré-lançamento (“prerelease”) para indicar que ainda estão em fase de testes.

Daí você tentou instalar um módulo desses e obteve o erro “Install-Module : A parameter cannot be found that matches parameter name ‘AllowPreRelease’.”

#comofaz?

Primeiro, o básico: Para instalar um módulo em pré-lançamento, você usa a chave -AllowPreRelease do cmdlet Install-Module.

O problema

Vamos assumir que você queira instalar a versão de pré-lançamento mais recente do TfsCmdlets. O comando seria:

1
Install-Module TfsCmdlets -AllowPreRelease

E você recebe este erro:

1
2
3
4
5
6
Install-Module : A parameter cannot be found that matches parameter name 'AllowPreRelease'.
At line:1 char:27
+ Install-Module TfsCmdlets -AllowPreRelease
+                           ~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Install-Module], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Install-Module

A causa

A chave -AllowPreRelease requer uma versão mais nova do módulo PowerShellGet. A versão que vem pré-instalada no Windows não suporta a instalação de módulos em pré-lançamento.

E como o módulo não foi instalado via PowerShell Gallery (ele vem pré-instalado no Windows, lembra?) não é possível atualizá-lo via Update-Module.

A solução

Assim, a solução é abrir um prompt elevado do PowerShell e executar o seguinte comando:

1
Install-Module PowerShellGet -Force

Agora você consegue instalar uma versão de pré-lançamento do TfsCmdlets (ou de qualquer outro módulo PowerShell).

Um abraço,
  Igor