Leggere in inglese

Condividi tramite


Note sulla versione di NuGet 2.0

Note | sulla versione di NuGet 1.8 NuGet 2.1

NuGet 2.0 è stato rilasciato il 19 giugno 2012.

Problema di installazione noto

Se si esegue VS 2010 SP1, potrebbe verificarsi un errore di installazione quando si tenta di aggiornare NuGet se è installata una versione precedente.

La soluzione alternativa consiste nel disinstallare semplicemente NuGet e quindi installarlo dalla raccolta di estensioni di Visual Studio. Per https://support.microsoft.com/kb/2581019 altre informazioni, vedere o passare direttamente all'hotfix di Visual Studio.

Nota: se Visual Studio non consente di disinstallare l'estensione (il pulsante Disinstalla è disabilitato), è probabile che sia necessario riavviare Visual Studio usando "Esegui come Amministrazione istrator".

Come descritto in questo post sul consenso al ripristino dei pacchetti, NuGet 2.0 richiederà ora che venga fornito il consenso per abilitare il ripristino dei pacchetti per l'accesso online e il download dei pacchetti. Assicurarsi di aver fornito il consenso tramite la finestra di dialogo di configurazione di Gestione pacchetti o la variabile di ambiente EnableNuGetPackageRestore.

Raggruppare le dipendenze in base ai framework di destinazione

A partire dalla versione 2.0, le dipendenze dei pacchetti possono variare in base al profilo del framework del progetto di destinazione. Questa operazione viene eseguita usando uno schema aggiornato .nuspec . L'elemento <dependencies> può ora contenere un set di <group> elementi. Ogni gruppo contiene zero o più <dependency> elementi e un targetFramework attributo. Tutte le dipendenze all'interno di un gruppo vengono installate insieme se il framework di destinazione è compatibile con il profilo del framework di progetto di destinazione. Ad esempio:

<dependencies>
    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>

    <group targetFramework="net40">
        <dependency id="jQuery" />
        <dependency id="WebActivator" />
    </group>

    <group targetFramework="sl30">
    </group>
</dependencies>

Si noti che un gruppo può contenere zero dipendenze. Nell'esempio precedente, se il pacchetto viene installato in un progetto destinato a Silverlight 3.0 o versione successiva, non verranno installate dipendenze. Se il pacchetto è installato in un progetto destinato a .NET 4.0 o versione successiva, verranno installate due dipendenze, jQuery e WebActivator. Se il pacchetto è installato in un progetto destinato a una versione anticipata di questi 2 framework o qualsiasi altro framework, RouteMagic 1.1.0 verrà installato. Nessuna ereditarietà tra i gruppi. Se il framework di destinazione di un progetto corrisponde all'attributo targetFramework di un gruppo, verranno installate solo le dipendenze all'interno di tale gruppo.

Un pacchetto può specificare le dipendenze dei pacchetti in uno dei due formati seguenti: il formato precedente di un elenco semplice di <dependency> elementi o gruppi. Se viene usato il <group> formato, il pacchetto non può essere installato nelle versioni di NuGet precedenti alla 2.0.

Si noti che la combinazione dei due formati non è consentita. Ad esempio, il frammento di codice seguente non è valido e verrà rifiutato da NuGet.

<dependencies>
    <dependency id="jQuery" />
    <dependency id="WebActivator" />

    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>
</dependencies>

Raggruppamento di file di contenuto e script di PowerShell in base al framework di destinazione

Oltre ai riferimenti agli assembly, i file di contenuto e gli script di PowerShell possono anche essere raggruppati per framework di destinazione. La stessa struttura di cartelle presente nella cartella per specificare il lib framework di destinazione ora può essere applicata nello stesso modo alle content cartelle e tools . Ad esempio:

\content
    \net11
        \MyContent.txt
    \net20
        \MyContent20.txt
    \net40
    \sl40
        \MySilverlightContent.html

\tools
    \init.ps1
    \net40
        \install.ps1
        \uninstall.ps1
    \sl40
        \install.ps1
        \uninstall.ps1

Nota: poiché init.ps1 viene eseguito a livello di soluzione e non dipende da alcun singolo progetto, deve essere inserito direttamente nella tools cartella . Se inserita all'interno di una cartella specifica del framework, verrà ignorata.

Inoltre, una nuova funzionalità di NuGet 2.0 è che una cartella del framework può essere vuota, nel qual caso NuGet non aggiungerà riferimenti ad assembly, aggiungerà file di contenuto o eseguirà script di PowerShell per la versione specifica del framework. Nell'esempio precedente la cartella content\net40 è vuota.

Miglioramento delle prestazioni di completamento delle schede

La funzionalità di completamento delle schede nella console di Gestione pacchetti NuGet è stata aggiornata per migliorare significativamente le prestazioni. La pressione del tasto tabulazione avrà molto meno tempo fino a quando non viene visualizzato l'elenco a discesa dei suggerimenti.

Correzioni di bug

NuGet 2.0 include molte correzioni di bug con particolare attenzione al consenso e alle prestazioni del ripristino dei pacchetti. Per un elenco completo degli elementi di lavoro corretti in NuGet 2.0, visualizzare .[NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.0&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0)