NuGet 2.6 è la prima versione che fornisce supporto per Visual Studio 2013. Analogamente a Visual Studio 2012, l'estensione NuGet Gestione pacchetti è inclusa in ogni edizione di Visual Studio.
Per offrire il miglior supporto possibile per Visual Studio 2013, supportando ancora Visual Studio 2010 e Visual Studio 2012 e mantenendo le dimensioni dell'estensione il più piccolo possibile, stiamo producendo un'estensione separata per Visual Studio 2013, mentre l'estensione originale continua a essere destinata sia a Visual Studio 2010 che a 2012.
A partire da NuGet 2.6, verranno pubblicate due estensioni come indicato di seguito:
Una delle funzionalità più richieste per il client NuGet è stata quella di supportare trasformazioni XML più potenti usando il motore di trasformazione XDT usato nelle trasformazioni della configurazione di compilazione di Visual Studio.
Nel mese di aprile 2013 sono stati annunciati due grandi annunci relativi al supporto NuGet per XDT. La prima era che la libreria XDT stessa veniva rilasciata come pacchetto NuGet e [open sourced on CodePlex](http://xdt.codeplex.com/). Questo passaggio ha consentito l'uso libero del motore XDT da parte di altri software open source, incluso il client NuGet. Il secondo annuncio è stato il piano per supportare l'uso del motore XDT per le trasformazioni nel client NuGet. NuGet 2.6 include questa integrazione.
Funzionamento
Per sfruttare il supporto XDT di NuGet, i meccanismi sono simili a quelli della funzionalità di trasformazione della configurazione corrente.
I file di trasformazione vengono aggiunti alla cartella di contenuto del pacchetto. Tuttavia, mentre le trasformazioni di configurazione usano un singolo file per l'installazione e la disinstallazione, le trasformazioni XDT consentono un controllo granulare su entrambi questi processi usando i file seguenti:
Web.config.install.xdt
Web.config.uninstall.xdt
NuGet usa inoltre il suffisso di file per determinare il motore da eseguire per le trasformazioni, quindi i pacchetti che usano il file web.config.transforms esistente continueranno a funzionare. Le trasformazioni XDT possono essere applicate anche a qualsiasi file XML (non solo web.config), quindi è possibile sfruttarlo per altre applicazioni nel progetto.
Operazioni che è possibile eseguire con XDT
Uno dei punti di forza più elevati di XDT è la sua sintassi semplice ma potente per modificare la struttura di un DOM XML. Invece di sovrapporre semplicemente una struttura fissa a un'altra struttura, XDT fornisce controlli per gli elementi corrispondenti in diversi modi, dal semplice nome dell'attributo corrispondente al supporto XPath completo. Dopo aver trovato un elemento o un set di elementi corrispondenti, XDT fornisce un set completo di funzioni per la modifica degli elementi, indipendentemente dall'aggiunta, dall'aggiornamento o dalla rimozione di attributi, dall'inserimento di un nuovo elemento in una posizione specifica o dalla sostituzione o dalla rimozione dell'intero elemento e dei relativi elementi figlio.
Configurazione a livello di computer
Uno dei punti di forza di NuGet è che suddivide un eseguibile o una libreria altrimenti di grandi dimensioni in un set di componenti modulari che possono essere integrati e gestiti in modo indipendente. Un effetto collaterale di questo, tuttavia, è che l'idea convenzionale di un prodotto o di una famiglia di prodotti diventa potenzialmente più frammentata.
La funzionalità di origine del pacchetto personalizzata di NuGet offre un modo per organizzare i pacchetti; Tuttavia, le origini dei pacchetti personalizzate non sono individuabili autonomamente.
NuGet 2.6 estende la logica per la configurazione di NuGet eseguendo una ricerca nella gerarchia di cartelle nel percorso %ProgramData%/NuGet/Config. I programmi di installazione del prodotto possono aggiungere file di configurazione NuGet personalizzati in questa cartella per registrare un'origine pacchetto personalizzata per i prodotti. Inoltre, la struttura di cartelle supporta la semantica per prodotto, versione e anche SKU dell'IDE. Impostazioni da queste directory vengono applicate nell'ordine seguente con una strategia di precedenza "last in wins".
In questo elenco, il segnaposto {IDE} è specifico dell'IDE in cui è in esecuzione NuGet, quindi nel caso di Visual Studio sarà "VisualStudio". I segnaposto {Version} e {SKU} vengono forniti rispettivamente dall'IDE (ad esempio "11.0" e "WDExpress", "VWDExpress" e "Pro"). La cartella può quindi contenere molti file *.config diversi.
Pertanto, l'azienda del componente ACME può, come parte del programma di installazione del prodotto, aggiungere un'origine pacchetto personalizzata che sarà visibile solo nelle versioni Professional e Ultimate di Visual Studio 2012 creando il percorso di file seguente:
Anche se la struttura di cartelle semplifica i programmi come i programmi di installazione software per aggiungere origini di pacchetti a livello di computer alla configurazione di NuGet, la finestra di dialogo di configurazione NuGet è stata aggiornata anche per consentire la registrazione delle origini del pacchetto come specifiche dell'utente (ad esempio registrate in %AppData%/NuGet/NuGet.Config) o a livello di computer.
Questa funzionalità viene usata da Visual Studio 2013, in cui è installato un file in:
All'interno di questo file viene configurata una nuova origine del pacchetto denominata ".NET Framework Packages".
Contestualizzazione della ricerca
Man mano che il numero di pacchetti serviti dalla raccolta NuGet continua a crescere a un ritmo esponenziale, il miglioramento della ricerca rimane sempre all'inizio dell'elenco di priorità NuGet. Una delle funzionalità pianificate per NuGet è la ricerca contestuale, ovvero NuGet userà informazioni sulla versione e sullo SKU di Visual Studio in uso e sul tipo di progetto che si sta creando come criteri per determinare la pertinenza dei potenziali risultati della ricerca.
A partire da NuGet 2.6, ogni volta che viene installato un pacchetto, il contesto per l'installazione viene registrato come parte dei dati dell'operazione di installazione. Le ricerche inviano anche le stesse informazioni di contesto, che consentiranno a NuGet Gallery di migliorare i risultati della ricerca in base alle tendenze di installazione contestuali. Un aggiornamento futuro alla raccolta NuGet consentirà di aumentare la rilevanza sensibile al contesto.
Rilevamento di installazioni dirette e installazioni delle dipendenze
Gli autori di pacchetti si basano sempre di più sulle statistiche dei pacchetti fornite nella raccolta NuGet. Un punto dati mancante significativo richiesto dagli autori è una differenziazione tra le installazioni dirette dei pacchetti e le installazioni delle dipendenze. Fino ad ora, il client NuGet non ha inviato alcun contesto intorno all'operazione di installazione per se lo sviluppatore ha installato direttamente il pacchetto o se è stato installato per soddisfare una dipendenza.
A partire da NuGet 2.6, i dati verranno ora inviati per l'operazione di installazione. Le statistiche dei pacchetti nella raccolta NuGet esporranno tali dati come operazioni di installazione separate, con un suffisso "-Dependency".
Installare
Install-Dependency
Aggiornamento
Update-Dependency
Reinstallazione
Reinstalla-Dipendenza
Oltre al nome di operazione diverso, viene registrato anche l'ID del pacchetto dipendente per l'installazione. Un aggiornamento futuro della raccolta NuGet esporrà i dati all'interno dei report, consentendo agli autori di pacchetti di comprendere appieno il modo in cui gli sviluppatori installano i pacchetti.
Correzioni di bug
NuGet 2.6 include anche diverse correzioni di bug. Per un elenco completo degli elementi di lavoro corretti in NuGet 2.6, visualizzare .[NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.6&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0&reasonClosed=All)
Come creare un progetto .NET, con informazioni su come aggiungere pacchetti e gestire le dipendenze dei pacchetti nel progetto. Usare l'interfaccia della riga di comando di .NET Core e il registro NuGet per aggiungere librerie e strumenti alle applicazioni C# tramite Visual Studio Code.