Note sulla versione di NuGet 1.4

Note | sulla versione di NuGet 1.3 NuGet 1.5

NuGet 1.4 è stato rilasciato il 17 giugno 2011.

Funzionalità

Miglioramenti apportati al pacchetto di aggiornamento

NuGet 1.4 introduce numerosi miglioramenti al comando Update-Package, rendendo più semplice mantenere i pacchetti nella stessa versione in più progetti in una soluzione. Ad esempio, quando si aggiorna un pacchetto alla versione più recente, è molto comune voler aggiornare tutti i progetti con tale pacchetto alla stessa verisione.

Il Update-Package comando rende ora più semplice:

Aggiornare tutti i pacchetti in un singolo progetto

Update-Package -Project MvcApplication1

Aggiornare un pacchetto in tutti i progetti

Update-Package PackageId

Aggiornare tutti i pacchetti in tutti i progetti

Update-Package

Eseguire un aggiornamento "sicuro" su tutti i pacchetti

Il -Safe flag vincola gli aggiornamenti solo alle versioni con lo stesso componente della versione principale e secondaria. Ad esempio, se è installata la versione 1.0.0 di un pacchetto e le versioni 1.0.1, 1.0.2 e 1.1 sono disponibili nel feed, il -Safe flag aggiorna il pacchetto alla versione 1.0.2. L'aggiornamento senza il -Safe flag aggiorna il pacchetto alla versione più recente, 1.1.

Update-Package -Safe

Gestione dei pacchetti a livello di soluzione

Prima di NuGet 1.4, l'installazione di un pacchetto in più progetti era complessa tramite la finestra di dialogo. Richiedeva l'avvio della finestra di dialogo una sola volta per ogni progetto.

NuGet 1.4 aggiunge il supporto per l'installazione/disinstallazione/aggiornamento di pacchetti in più progetti contemporaneamente. È sufficiente avviare il comando facendo clic con il pulsante destro del mouse sulla soluzione e scegliendo l'opzione di menu Gestisci pacchetti NuGet.

Solution Level Manage NuGet Packages dialog

Si noti che nella barra del titolo della finestra di dialogo viene visualizzato il nome della soluzione, non il nome di un progetto. Le operazioni del pacchetto forniscono ora un elenco di caselle di controllo con l'elenco dei progetti a cui deve essere applicata l'operazione.

Manage NuGet Packages Project Selection

Per altri dettagli, vedere l'argomento relativo alla gestione dei pacchetti per la soluzione.

Vincolare gli aggiornamenti alle versioni consentite

Per impostazione predefinita, quando si esegue il Update-Package comando in un pacchetto (o si aggiorna il pacchetto tramite la finestra di dialogo), verrà aggiornato alla versione più recente nel feed. Con il nuovo supporto per l'aggiornamento di tutti i pacchetti, possono verificarsi casi in cui si vuole bloccare un pacchetto in un intervallo di versioni specifico. Ad esempio, è possibile sapere in anticipo che l'applicazione funzionerà solo con la versione 2.* di un pacchetto, ma non con la versione 3.0 e successive. Per impedire l'aggiornamento accidentale del pacchetto a 3, NuGet 1.4 aggiunge il supporto per limitare l'intervallo di versioni a cui è possibile aggiornare i pacchetti modificando manualmente il packages.config file usando il nuovo allowedVersions attributo.

Nell'esempio seguente viene illustrato ad esempio come bloccare il SomePackage pacchetto con l'intervallo di versione 2.0 - 3.0 (esclusivo). L'attributo allowedVersions accetta valori usando il formato dell'intervallo di versioni.

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="SomePackage" version="2.1.0" allowedVersions="[2.0, 3.0)" />
</packages>

Si noti che nella versione 1.4 il blocco di un pacchetto in un intervallo di versioni specifico deve essere modificato a mano. In NuGet 1.5 si prevede di aggiungere il supporto per posizionare questo intervallo tramite il Install-Package comando .

Visualizzatore di pacchetti

Il nuovo visualizzatore di pacchetti, avviato tramite l'opzione di menu Strumenti ->Libreria Gestione pacchetti ->Visualizzatore pacchetti, consente di visualizzare facilmente tutti i progetti e le relative dipendenze del pacchetto all'interno di una soluzione.

Nota importante: questa funzionalità sfrutta il supporto DGML in Visual Studio. La creazione della visualizzazione è supportata solo in Visual Studio Ultimate. La visualizzazione di un diagramma DGML è supportata solo in Visual Studio Premium o versione successiva.

Package Visualizer

Controllo aggiornamento automatico per la finestra di dialogo NuGet

Alcune versioni di NuGet introducono nuove funzionalità espresse tramite il .nuspec file che non sono comprese dalle versioni precedenti della finestra di dialogo NuGet. Un esempio è l'introduzione in NuGet 1.4 per specificare gli assembly del framework. Per questo motivo, è importante usare la versione più recente di NuGet per assicurarsi di poter usare i pacchetti sfruttando le funzionalità più recenti. Per rendere più visibili gli aggiornamenti a NuGet, la finestra di dialogo NuGet contiene la logica da evidenziare quando è disponibile una versione più recente.

Nota: il controllo viene effettuato solo se la scheda Online è stata selezionata nella sessione corrente.

Manage NuGet Packages dialog with new version available

Per disattivare il controllo automatico per gli aggiornamenti, passare alla finestra di dialogo Impostazioni NuGet e deselezionare Verifica automatica della disponibilità di aggiornamenti.

NuGet Settings

Questa funzionalità è stata effettivamente aggiunta in NuGet 1.3, ma ovviamente non sarebbe visibile fino a quando non è stato reso disponibile un aggiornamento alla versione 1.3, ad esempio NuGet 1.4.

Miglioramenti della finestra di dialogo Gestione pacchetti

  • Nomi di menu migliorati: le opzioni di menu per avviare la finestra di dialogo sono state rinominate per maggiore chiarezza. L'opzione di menu è ora Gestisci pacchetti NuGet.
  • Riquadro dei dettagli che mostra la data dell'aggiornamento più recente: la finestra di dialogo NuGet visualizza la data dell'aggiornamento più recente nel riquadro dei dettagli per un pacchetto quando è selezionata la scheda Online o Aggiornamenti.
  • Elenco di tag visualizzati: nella finestra di dialogo Nuget vengono visualizzati i tag.

Miglioramenti di PowerShell

  • Script di PowerShell firmati: NuGet include script di PowerShell firmati che consentono l'utilizzo in ambienti più restrittivi.
  • Richiesta di supporto: la console Gestione pacchetti supporta ora la richiesta tramite i $host.ui.Prompt comandi e $host.ui.PromptForChoice .
  • Nomi origine pacchetto: specificare il nome di un'origine del pacchetto è supportato quando si specifica un'origine del pacchetto usando il -Source flag .

miglioramenti della riga di comando di nuget.exe

  • Comandi personalizzati NuGet: nuget.exe è estendibile tramite comandi personalizzati tramite MEF.
  • Flusso di lavoro più semplice per la creazione di pacchetti di simboli: il -Symbols flag può essere applicato a una normale struttura di cartelle basata su convenzioni creando un pacchetto di simboli includendo solo l'origine e .pdb i file all'interno della cartella.
  • Specifica di più origini: il NuGet install comando supporta la specifica di più origini usando punti e virgola come delimitatore o specificando -Source più volte.
  • Supporto per l'autenticazione proxy: NuGet 1.4 aggiunge il supporto per richiedere le credenziali utente quando si usa NuGet dietro un proxy che richiede l'autenticazione.
  • nuget.exe modifica che causa un'interruzione dell'aggiornamento: -Self il flag è ora necessario per nuget.exe aggiornare se stesso. nuget.exe Update ora accetta un percorso del packages.config file e tenterà di aggiornare i pacchetti. Si noti che questo aggiornamento è limitato in quanto non sarà: ** Aggiornare, aggiungere, rimuovere il contenuto nel file di progetto. ** Eseguire script di PowerShell all'interno del pacchetto.

Supporto del server NuGet per il push di pacchetti tramite nuget.exe

NuGet include un modo semplice per ospitare un repository NuGet leggero basato sul Web tramite il NuGet.Server pacchetto NuGet. Con NuGet 1.4, il server leggero supporta il push e l'eliminazione di pacchetti tramite nuget.exe. La versione più recente di NuGet.Server aggiunge un nuovo appSettingoggetto denominato apiKey. Quando la chiave viene omessa o lasciata vuota, il push dei pacchetti nel feed è disabilitato. L'impostazione di apiKey su un valore (idealmente una password complessa) consente il push dei pacchetti tramite nuget.exe.

<appSettings>
    <!-- Set the value here to allow people to push/delete packages from the server.
            NOTE: This is a shared key (password) for all users. -->
    <add key="apiKey" value="" />
</appSettings>

Supporto per Windows Telefono Tools Mango Edition

NuGet è ora supportato nella versione finale candidata di Windows Telefono Tools per Mango. Attualmente, Windows Telefono Tools non dispone del supporto per Gestione estensioni di Visual Studio per installare NuGet per Windows Telefono Tools, potrebbe essere necessario scaricare ed eseguire manualmente VSIX.

Per disinstallare NuGet per Windows Telefono Tools, eseguire il comando seguente.

vsixinstaller.exe /uninstall:NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5

Correzioni di bug

NuGet 1.4 ha risolto un totale di 88 elementi di lavoro. 71 di questi sono stati contrassegnati come bug.

Per un elenco completo degli elementi di lavoro corretti in NuGet 1.4, visualizzare .[NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=All&type=All&priority=All&release=NuGet%201.4&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0)

Correzioni di bug che vale la pena notare:

  • [Issue 603](http://nuget.codeplex.com/workitem/603): le dipendenze dei pacchetti tra repository diversi vengono risolte correttamente quando si specifica un'origine del pacchetto specifica.
  • [Issue 1036](http://nuget.codeplex.com/workitem/1036): l'aggiunta NuGet Pack SomeProject.csproj a un evento post-compilazione non causa più un ciclo infinito.
  • [Issue 961](http://nuget.codeplex.com/workitem/961): -Source flag supporta i percorsi relativi.

Aggiornamento nuGet 1.4

Poco dopo il rilascio di NuGet 1.4, sono stati rilevati alcuni problemi importanti da risolvere. Il numero di versione specifico di questo aggiornamento alla versione 1.4 è 1.4.20615.9020.

Correzioni di bug

  • [Issue 1220](http://nuget.codeplex.com/workitem/1220): Update-Package non viene eseguito install.ps1/uninstall.ps1 in tutti i progetti quando è presente più di un progetto
  • [Issue 1156](http://nuget.codeplex.com/workitem/1156): Gestione pacchetti Consol bloccato in W2K3/XP (quando PowerShell 2 non è installato)