Miglioramenti della gestione pacchetti in WMF 5.1Improvements to Package Management in WMF 5.1

Di seguito vengono descritte le correzioni apportate in WMF 5.1:The following are the fixes made in the WMF 5.1:

Alias della versioneVersion Alias

Scenario : se si dispone delle versioni 1.0 e 2.0 di un pacchetto, P1, installate nel sistema e si vuole disinstallare la versione 1.0, è necessario eseguire Uninstall-Package -Name P1 -Version 1.0 e attendere che la versione 1.0 venga disinstallata dopo l'esecuzione del 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. Tuttavia, il risultato è che viene disinstallata la versione 2.0.However the result is that version 2.0 gets uninstalled.

Ciò si verifica perché il parametro -Version è un alias del parametro -MinimumVersion.This occurs because the -Version parameter is an alias of the -MinimumVersion parameter. Quando PackageManagement esegue la ricerca di un pacchetto qualificato con la versione minima 1.0, restituisce la versione più recente.When PackageManagement is looking for a qualified package with the minimum version of 1.0, it returns the latest version. Questo comportamento è previsto nei casi normali, perché trovare la versione più recente è in genere il risultato desiderato.This behavior is expected in normal cases because finding the latest version is usually the desired result. Tuttavia, non dovrebbe applicarsi al caso di Uninstall-Package.However, it should not apply to the Uninstall-Package case.

Soluzione : rimozione completa dell'alias -Version in PackageManagement (noto anche comeSolution :removed -Version alias entirely in PackageManagement (a.k.a. OneGet) e PowerShellGet.OneGet) and PowerShellGet.

Più richieste per l'avvio del provider NuGetMultiple prompts for bootstrapping the NuGet provider

Scenario : quando si esegue Find-Module o Install-Module o altri cmdlet PackageManagement nel computer in uso per la prima volta, PackageManagement tenta di avviare il provider 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. Ciò avviene perché il provider PowerShellGet usa anche il provider NuGet per scaricare i moduli di PowerShell.It does this because the PowerShellGet provider also uses the NuGet provider to download PowerShell modules. PackageManagement quindi chiede all'utente l'autorizzazione per installare il provider NuGet.PackageManagement then prompts the user for permission to install the NuGet provider. Dopo che l'utente seleziona "Sì" per l'avvio, verrà installata la versione più recente del provider NuGet.After the user selects "yes" for the bootstrapping, the latest version of the NuGet provider will be installed.

Se tuttavia si dispone di una versione precedente del provider NuGet installata nel computer in uso, in alcuni casi viene caricata per prima la versione precedente di NuGet nella sessione di PowerShell. Si tratta della race condition di 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). PowerShellGet richiede tuttavia la versione più recente del provider NuGet, pertanto PowerShellGet chiede a PackageManagement di avviare nuovamente il provider NuGet.However PowerShellGet requires the later version of the NuGet provider to work, so PowerShellGet asks PackageManagement to bootstrap the NuGet provider again. Ciò comporta l'esecuzione di più richieste di avvio del provider NuGet.This results in multiple prompts for bootstrapping the NuGet provider.

Soluzione : in WMF 5.1, PackageManagement carica la versione più recente del provider NuGet per evitare l'esecuzione di più richieste di avvio del provider NuGet.Solution : In WMF5.1, PackageManagement loads the latest version of the NuGet provider to avoid multiple prompts for bootstrapping the NuGet provider.

È possibile aggirare il problema anche eliminando manualmente la versione precedente del provider NuGet (NuGet-Anycpu.exe), se presente, da $env:Programmi\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

Supporto per PackageManagement nei computer solo con accesso IntranetSupport for PackageManagement on computers with Intranet access only

Scenario : in uno scenario aziendale gli utenti operano in un ambiente in cui non è presente alcun accesso Internet, ma solo Intranet.Scenario : For the enterprise scenario, people are working under an environment where there is no Internet access but Intranet only. In WMF 5.0, PackageManagement non supporta questo caso.PackageManagement did not support this case in WMF 5.0.

Scenario : in WMF 5.0, PackageManagement non supporta i computer che dispongono solo dell'accesso Intranet, ma non Internet.Scenario : In WMF 5.0, PackageManagement did not support computers that have only Intranet (but not Internet) access.

Soluzione : in WMF 5.1, è possibile seguire questa procedura per consentire ai computer Intranet di usare PackageManagement:Solution : In WMF 5.1, you can follow these steps to allow Intranet computers to use PackageManagement:

  1. Scaricare il provider NuGet usando un altro computer che dispone di una connessione Internet tramite Install-PackageProvider -Name NuGet.Download the NuGet provider using another computer that has an Internet connection by using Install-PackageProvider -Name NuGet.

  2. Trovare il provider NuGet in $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. Copiare i file binari in una cartella o in una condivisione di rete a cui il computer Intranet può accedere e quindi installare il provider 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>.

Miglioramenti apportati alla registrazione di eventiEvent logging improvements

Quando si installano i pacchetti, si modifica lo stato del computer.When you install packages, you are changing the state of the computer. In WMF 5.1, PackageManagement ora registra gli eventi nel registro eventi di Windows per le attività 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. Il registro eventi è identico a quello di PowerShell, vale a dire Microsoft-Windows-PowerShell, Operational.The Event log is the same as for PowerShell, that is, Microsoft-Windows-PowerShell, Operational.

Supporto per l'autenticazione di baseSupport for basic authentication

In WMF 5.1, PackageManagement supporta la ricerca e l'installazione dei pacchetti da un repository che richiede l'autenticazione di base.In WMF 5.1, PackageManagement supports finding and installing packages from a repository that requires basic authentication. È possibile fornire le credenziali per i cmdlet Find-Package e Install-Package.You can supply your credentials to the Find-Package and Install-Package cmdlets. Ad esempio:For example:

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

Supporto per l'utilizzo di PackageManagement dietro un proxySupport for using PackageManagement behind a proxy

In WMF 5.1, PackageManagement accetta ora i nuovi parametri proxy -ProxyCredential e -Proxy.In WMF 5.1, PackageManagement now takes new proxy parameters -ProxyCredential and -Proxy. Grazie a questi parametri è possibile specificare le credenziali e l'URL del proxy nei cmdlet di PackageManagement.Using these parameters, you can specify the proxy URL and credentials to PackageManagement cmdlets. Per impostazione predefinita, vengono usate le impostazioni proxy del sistema.By default, system proxy settings are used. Ad esempio:For example:

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