Mejoras en la administración de paquetes en WMF 5.1Improvements to Package Management in WMF 5.1

Estas son las correcciones realizadas en WMF 5.1:The following are the fixes made in the WMF 5.1:

Alias de versiónVersion Alias

Escenario : si tiene las versiones 1.0 y 2.0 de un paquete (P1) instaladas en el sistema y quiere desinstalar la versión 1.0, ejecutaría Uninstall-Package -Name P1 -Version 1.0 y esperaría que se desinstalara la versión 1.0 después de ejecutar el 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. Sin embargo, el resultado es que se desinstala la versión 2.0.However the result is that version 2.0 gets uninstalled.

Esto se debe a que el parámetro -Version es un alias del parámetro -MinimumVersion.This occurs because the -Version parameter is an alias of the -MinimumVersion parameter. Cuando PackageManagement busca un paquete cualificado con la versión mínima 1.0, devuelve la versión más reciente.When PackageManagement is looking for a qualified package with the minimum version of 1.0, it returns the latest version. Este comportamiento es el esperable en los casos normales, ya que el resultado que se suele desear es que se busque la versión más reciente.This behavior is expected in normal cases because finding the latest version is usually the desired result. En cambio, no se debe aplicar al caso Uninstall-Package.However, it should not apply to the Uninstall-Package case.

Solución : el alias -Version se ha quitado completamente en PackageManagement (también conocido comoSolution :removed -Version alias entirely in PackageManagement (a.k.a. OneGet) y PowerShellGet.OneGet) and PowerShellGet.

Varios mensajes para arrancar el proveedor de NuGetMultiple prompts for bootstrapping the NuGet provider

Escenario : cuando ejecuta Find-Module o Install-Module u otros cmdlets de PackageManagement en un equipo por primera vez, PackageManagement intenta arrancar el proveedor 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. ya que el proveedor de PowerShellGet también usa el proveedor de NuGet para descargar los módulos de PowerShell.It does this because the PowerShellGet provider also uses the NuGet provider to download PowerShell modules. Luego, PackageManagement pide permiso al usuario para instalar el proveedor de NuGet.PackageManagement then prompts the user for permission to install the NuGet provider. Una vez que el usuario selecciona "yes" en el arranque, se instalará la versión más reciente del proveedor de NuGet.After the user selects "yes" for the bootstrapping, the latest version of the NuGet provider will be installed.

En cambio, en algunos casos, si tiene una versión anterior del proveedor de NuGet instalada en el equipo, a veces se carga primero la versión anterior de NuGet en la sesión de PowerShell (esa es la condición de carrera en 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). En cambio, PowerShellGet requiere la versión posterior del proveedor de NuGet para funcionar, por lo que PowerShellGet solicita a PackageManagement que vuelva a arrancar el proveedor de NuGet.However PowerShellGet requires the later version of the NuGet provider to work, so PowerShellGet asks PackageManagement to bootstrap the NuGet provider again. Esto genera varios mensajes para arrancar el proveedor de NuGet.This results in multiple prompts for bootstrapping the NuGet provider.

Solución : en WMF 5.1, PackageManagement carga la versión más reciente del proveedor de NuGet para evitar varios mensajes de arranque del proveedor de NuGet.Solution : In WMF5.1, PackageManagement loads the latest version of the NuGet provider to avoid multiple prompts for bootstrapping the NuGet provider.

Otra posible solución es la eliminación manual de la versión anterior del proveedor de NuGet (NuGet-Anycpu.exe) desde $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

Compatibilidad de PackageManagement en equipos con solo acceso a la intranetSupport for PackageManagement on computers with Intranet access only

Escenario : en el escenario empresarial, los usuarios trabajan en un entorno en el que no hay acceso a Internet, solo a la intranet.Scenario : For the enterprise scenario, people are working under an environment where there is no Internet access but Intranet only. PackageManagement no admitía este caso en WMF 5.0.PackageManagement did not support this case in WMF 5.0.

Escenario : en WMF 5.0, PackageManagement no era compatible con equipos que solo tuvieran acceso a la intranet (pero no a Internet).Scenario : In WMF 5.0, PackageManagement did not support computers that have only Intranet (but not Internet) access.

Solución : en WMF 5.1, puede seguir estos pasos para que los equipos de la intranet usen PackageManagement:Solution : In WMF 5.1, you can follow these steps to allow Intranet computers to use PackageManagement:

  1. Descargue el proveedor de NuGet desde otro equipo con conexión a Internet mediante Install-PackageProvider -Name NuGet.Download the NuGet provider using another computer that has an Internet connection by using Install-PackageProvider -Name NuGet.

  2. Busque el proveedor de NuGet en $env:ProgramFiles\PackageManagement\ProviderAssemblies\nuget o $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\nuget.Find the NuGet provider under either $env:ProgramFiles\PackageManagement\ProviderAssemblies\nuget or $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\nuget.

  3. Copie los archivos binarios a una carpeta o ubicación de recurso compartido de red a la que pueda tener acceso el equipo de la intranet y, luego, instale el proveedor de NuGet con 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>.

Mejoras del registro de eventosEvent logging improvements

Al instalar paquetes, se cambia el estado del equipo.When you install packages, you are changing the state of the computer. En WMF 5.1, ahora PackageManagement registra eventos en el registro de eventos de Windows para las actividades de Install-Package, Uninstall-Package y Save-Package.In WMF 5.1, PackageManagement now logs events to the Windows event log for Install-Package, Uninstall-Package, and Save-Package activities. El registro de eventos es el mismo que para PowerShell; es decir, Microsoft-Windows-PowerShell, Operational.The Event log is the same as for PowerShell, that is, Microsoft-Windows-PowerShell, Operational.

Compatibilidad con la autenticación básicaSupport for basic authentication

En WMF 5.1, PackageManagement admite la búsqueda e instalación de paquetes de un repositorio que requiera autenticación básica.In WMF 5.1, PackageManagement supports finding and installing packages from a repository that requires basic authentication. Puede proporcionar las credenciales para los cmdlets Find-Package y Install-Package.You can supply your credentials to the Find-Package and Install-Package cmdlets. Por ejemplo:For example:

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

Compatibilidad para usar PackageManagement detrás de un proxySupport for using PackageManagement behind a proxy

En WMF 5.1, ahora PackageManagement toma nuevos parámetros de proxy -ProxyCredential y -Proxy.In WMF 5.1, PackageManagement now takes new proxy parameters -ProxyCredential and -Proxy. Mediante estos parámetros, es posible especificar la dirección URL y las credenciales del proxy en los cmdlets de PackageManagement.Using these parameters, you can specify the proxy URL and credentials to PackageManagement cmdlets. De forma predeterminada, se utiliza la configuración del proxy del sistema.By default, system proxy settings are used. Por ejemplo:For example:

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