Melhorias na Gestão de Pacotes no WMF 5.1
Seguem-se as correções efetuadas no WMF 5.1:
Alias de Versão
Cenário: se tiver a versão 1.0 e 2.0 de um pacote, P1, instalada no seu sistema e quiser desinstalar a versão 1.0, executaria Uninstall-Package -Name P1 -Version 1.0
e esperaria que a versão 1.0 fosse desinstalada após executar o cmdlet. No entanto, o resultado é que a versão 2.0 é desinstalada.
Isto ocorre porque o -Version
parâmetro é um alias do -MinimumVersion
parâmetro. Quando PackageManagement procura um pacote qualificado com a versão mínima de 1.0, devolve a versão mais recente. Este comportamento é esperado em casos normais porque encontrar a versão mais recente é normalmente o resultado pretendido. No entanto, não deve aplicar-se ao Uninstall-Package
caso.
Solução: removeu -Version
totalmente o alias em PackageManagement (também conhecido como OneGet) e PowerShellGet.
Vários pedidos de arranque do fornecedor NuGet
Cenário: quando executa Find-Module
ou Install-Module
outros cmdlets PackageManagement no seu computador pela primeira vez, a PackageManagement tenta iniciar o arranque do fornecedor NuGet. Isto acontece porque o fornecedor do PowerShellGet também utiliza o fornecedor NuGet para transferir módulos do PowerShell.
Em seguida, a PackageManagement pede ao utilizador permissão para instalar o fornecedor NuGet. Depois de o utilizador selecionar "sim" para o bootstrapping, será instalada a versão mais recente do fornecedor NuGet.
No entanto, em alguns casos, quando tem uma versão antiga do fornecedor NuGet instalada no seu computador, a versão mais antiga do NuGet por vezes é carregada primeiro na sessão do PowerShell (essa é a condição race em PackageManagement). No entanto, o PowerShellGet requer que a versão posterior do fornecedor NuGet funcione, pelo que o PowerShellGet pede ao PackageManagement para iniciar novamente o fornecedor NuGet. Isto resulta em vários pedidos de arranque do fornecedor NuGet.
Solução: no WMF5.1, PackageManagement carrega a versão mais recente do fornecedor NuGet para evitar vários pedidos de arranque do fornecedor NuGet.
Também pode resolver este problema ao eliminar manualmente a versão antiga do fornecedor NuGet (NuGet-Anycpu.exe) se existir de $env:ProgramFiles\PackageManagement\ProviderAssemblies $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies
Suporte para PackageManagement apenas em computadores com acesso à Intranet
Cenário: para o cenário empresarial, as pessoas estão a trabalhar num ambiente onde não existe acesso à Internet, mas apenas intranet. A PackageManagement não suportava este caso no WMF 5.0.
Cenário: no WMF 5.0, o PackageManagement não suportava computadores com acesso apenas à Intranet (mas não à Internet).
Solução: no WMF 5.1, pode seguir estes passos para permitir que os computadores da Intranet utilizem PackageManagement:
Transfira o fornecedor NuGet com outro computador que tenha uma ligação à Internet com
Install-PackageProvider -Name NuGet
.Localize o fornecedor NuGet em ou
$env:ProgramFiles\PackageManagement\ProviderAssemblies\nuget
$env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\nuget
.Copie os binários para uma localização de partilha de rede ou pasta à qual o computador da Intranet possa aceder e, em seguida, instale o fornecedor NuGet com
Install-PackageProvider -Name NuGet -Source <Path to folder>
.
Melhorias no registo de eventos
Quando instala pacotes, está a alterar o estado do computador. No WMF 5.1, PackageManagement regista agora eventos no registo de eventos do Windows para Install-Package
, Uninstall-Package
e Save-Package
atividades. O Registo de eventos é o mesmo que para o PowerShell, ou seja, Microsoft-Windows-PowerShell, Operational
.
Suporte para autenticação básica
No WMF 5.1, PackageManagement suporta a localização e instalação de pacotes a partir de um repositório que requer autenticação básica. Pode fornecer as suas credenciais aos Find-Package
cmdlets e Install-Package
. Por exemplo:
Find-Package -Source <SourceWithCredential> -Credential (Get-Credential)
Suporte para utilizar o PackageManagement por trás de um proxy
No WMF 5.1, PackageManagement utiliza agora novos parâmetros -ProxyCredential
de proxy e -Proxy
. Com estes parâmetros, pode especificar o URL do proxy e as credenciais para cmdlets PackageManagement. Por predefinição, são utilizadas as definições de proxy do sistema. Por exemplo:
Find-Package -Source https://www.nuget.org/api/v2/ -Proxy http://www.myproxyserver.com -ProxyCredential (Get-Credential)