Melhorias no gerenciamento de pacote no WMF 5.1#Improvements to Package Management in WMF 5.1#

Melhorias ao PackageManagementImprovements in PackageManagement

Veja a seguir as correções feitas no WMF 5.1:The following are the fixes made in the WMF 5.1:

Alias de versãoVersion Alias

Cenário: se você tiver as versões 1.0 e 2.0 de um pacote, P1, instaladas em seu sistema e desejar desinstalar a versão 1.0, você executará Uninstall-Package -Name P1 -Version 1.0 e esperará a versão 1.0 ser desinstalada após a execução do cmdlet.Scenario: If you have version 1.0 and 2.0 of a package, P1, installed on your system, and you want to uninstall version 1.0, you would run Uninstall-Package -Name P1 -Version 1.0 and expect version 1.0 to be uninstalled after running the cmdlet. No entanto o resultado é que a versão 2.0 é desinstalada.However the result is that version 2.0 gets uninstalled.

Isso ocorre porque o parâmetro -Version é um alias do parâmetro -MinimumVersion.This occurs because the -Version parameter is an alias of the -MinimumVersion parameter. Quando PackageManagement está procurando um pacote qualificado com a versão mínima de 1.0, ele retorna a versão mais recente.When PackageManagement is looking for a qualified package with the minimum version of 1.0, it returns the latest version. Esse comportamento é esperado em casos normais, pois encontrar a versão mais recente é geralmente o resultado desejado.This behavior is expected in normal cases because finding the latest version is usually the desired result. No entanto, ele não deve se aplicar ao caso de Uninstall-Package.However, it should not apply to the Uninstall-Package case.

Solução: alias -Version removido inteiramente em PackageManagement (também conhecido comoSolution:removed -Version alias entirely in PackageManagement (a.k.a. OneGet) e PowerShellGet.OneGet) and PowerShellGet.

Vários prompts para inicializar o provedor do NuGetMultiple prompts for bootstrapping the NuGet provider

Cenário: ao executar Find-Module ou Install-Module ou outros cmdlets PackageManagement em seu computador pela primeira vez, o PackageManagement tenta inicializar o provedor de NuGet.Scenario: When you run Find-Module or Install-Module or other PackageManagement cmdlets on your computer for the first time, PackageManagement tries to bootstrap the NuGet provider. Isso ocorre porque o provedor PowerShellGet também usa o provedor do NuGet para baixar os módulos do PowerShell.It does this because the PowerShellGet provider also uses the NuGet provider to download PowerShell modules. Depois, o PackageManagement solicita permissão do usuário para instalar o provedor de NuGet.PackageManagement then prompts the user for permission to install the NuGet provider. Após o usuário selecionar "sim" para a inicialização, a versão mais recente do provedor do NuGet será instalada.After the user selects "yes" for the bootstrapping, the latest version of the NuGet provider will be installed.

No entanto, em alguns casos, quando há uma versão antiga do provedor de NuGet instalada em seu computador, a versão mais antiga do NuGet às vezes é carregada primeiro na sessão do PowerShell (ou seja, a condição de corrida no PackageManagement).However, in some cases, when you have an old version of NuGet provider installed on your computer, the older version of NuGet sometimes gets loaded first into the PowerShell session (that's the race condition in PackageManagement). No entanto, o PowerShellGet requer a versão mais recente do provedor de NuGet para funcionar, portanto, o PowerShellGet solicita que o PackageManagement inicialize o provedor de NuGet novamente.However PowerShellGet requires the later version of the NuGet provider to work, so PowerShellGet asks PackageManagement to bootstrap the NuGet provider again. Isso resulta em vários prompts para inicializar o provedor do NuGet.This results in multiple prompts for bootstrapping the NuGet provider.

Solução: no WMF 5.1, o PackageManagement carrega a versão mais recente do provedor de NuGet para evitar vários prompts para inicialização do provedor de NuGet.Solution: In WMF5.1, PackageManagement loads the latest version of the NuGet provider to avoid multiple prompts for bootstrapping the NuGet provider.

Você também pode utilizar uma solução alternativa para esse problema excluindo manualmente a versão antiga do provedor do NuGet (NuGet Anycpu.exe), caso ele exista, de $env:ProgramFiles\PackageManagement\ProviderAssemblies $env:LOCALAPPDATA\PackageManagement\ProviderAssembliesYou could also work around this issue by manually deleting the old version of the NuGet provider (NuGet-Anycpu.exe) if exists from $env:ProgramFiles\PackageManagement\ProviderAssemblies $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies

Suporte para PackageManagement em computadores somente com acesso à intranetSupport for PackageManagement on computers with Intranet access only

Cenário: para o cenário corporativo, as pessoas estão trabalhando em um ambiente em que não há acesso à Internet, somente à intranet.Scenario: For the enterprise scenario, people are working under an environment where there is no Internet access but Intranet only. O PackageManagement não dava suporte a esse caso no WMF 5.0.PackageManagement did not support this case in WMF 5.0.

Cenário: no WMF 5.0, o PackageManagement não dava suporte a computadores com acesso somente à intranet (e não à Internet).Scenario: In WMF 5.0, PackageManagement did not support computers that have only Intranet (but not Internet) access.

Solução: no WMF 5.1, você pode seguir estas etapas para permitir que computadores com intranet usem o PackageManagement:Solution: In WMF 5.1, you can follow these steps to allow Intranet computers to use PackageManagement:

  1. Baixe o provedor de NuGet usando outro computador que tenha conexão com a Internet usando Install-PackageProvider -Name NuGet.Download the NuGet provider using another computer that has an Internet connection by using Install-PackageProvider -Name NuGet.

  2. Localize o provedor de NuGet em $env:ProgramFiles\PackageManagement\ProviderAssemblies\nuget ou $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\nuget.Find the NuGet provider under either $env:ProgramFiles\PackageManagement\ProviderAssemblies\nuget or $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\nuget.

  3. Copie os binários para um local de compartilhamento de rede ou pasta que o computador com intranet possa acessar e, em seguida, instale o provedor de NuGet com Install-PackageProvider -Name NuGet -Source <Path to folder>.Copy the binaries to a folder or network share location that the Intranet computer can access, and then install the NuGet provider with Install-PackageProvider -Name NuGet -Source <Path to folder>.

Aprimoramentos de registro em log de eventosEvent logging improvements

Quando você instala pacotes, está alterando o estado do computador.When you install packages, you are changing the state of the computer. No WMF 5.1, o PackageManagement agora registra eventos no log de eventos do Windows para atividades Install-Package, Uninstall-Package e Save-Package.In WMF 5.1, PackageManagement now logs events to the Windows event log for Install-Package, Uninstall-Package, and Save-Package activities. O log de eventos é o mesmo do PowerShell, ou seja, Microsoft-Windows-PowerShell, Operational.The Event log is the same as for PowerShell, that is, Microsoft-Windows-PowerShell, Operational.

Suporte para autenticação básicaSupport for basic authentication

No WMF 5.1, o PackageManagement dá suporte para localizar e instalar pacotes de um repositório que requer autenticação básica.In WMF 5.1, PackageManagement supports finding and installing packages from a repository that requires basic authentication. Você pode fornecer suas credenciais para os cmdlets Find-Package e Install-Package.You can supply your credentials to the Find-Package and Install-Package cmdlets. Por exemplo:For example:

Find-Package -Source <SourceWithCredential> -Credential (Get-Credential)

Suporte para usar o PackageManagement atrás de um proxySupport for using PackageManagement behind a proxy

No WMF 5.1, agora o PackageManagement leva novos parâmetros de proxy -ProxyCredential e -Proxy.In WMF 5.1, PackageManagement now takes new proxy parameters -ProxyCredential and -Proxy. Usando esses parâmetros, você pode especificar a URL do proxy e as credenciais para cmdlets do PackageManagement.Using these parameters, you can specify the proxy URL and credentials to PackageManagement cmdlets. Por padrão, as configurações de proxy do sistema são usadas.By default, system proxy settings are used. Por exemplo:For example:

Find-Package -Source http://www.nuget.org/api/v2/ -Proxy http://www.myproxyserver.com -ProxyCredential (Get-Credential)