Trovare e valutare i pacchetti NuGet per il progetto

Quando si avvia un progetto .NET o si identifica una necessità funzionale nell'app o nel servizio, è spesso possibile installare pacchetti NuGet esistenti per risparmiare tempo e problemi di creazione di pacchetti personalizzati. I pacchetti esistenti possono provenire dalla raccolta pubblica nuget.org o da origini private fornite dall'organizzazione o da un'altra parte.

Trovare pacchetti

È possibile trovare pacchetti direttamente in https://nuget.org/packageso dall'interfaccia utente di Visual Studio Gestione pacchetti o Gestione pacchetti Console con nuget.org come origine. Tutti i pacchetti di nuget.org vengono analizzati regolarmente per individuare virus.

In nuget.org/packages viene visualizzato un elenco di pacchetti NuGet con i pacchetti più diffusi in tutti i progetti .NET elencati per primi. Alcuni di questi pacchetti potrebbero essere utili per i progetti.

Screenshot that shows the default view of nuget.org/packages with the most popular packages at the top.

Per cercare un pacchetto, immettere il nome del pacchetto o i termini di ricerca nella casella Di ricerca nella parte superiore della pagina. È possibile usare la sintassi di ricerca avanzata per filtrare la ricerca.

Filtro e ordinamento avanzati

In nuget.org/packages è possibile perfezionare i risultati della ricerca usando le opzioni avanzate di filtro e ordinamento.

Screenshot that shows the filtering and sorting options on nuget.org.

Usare i filtri Framework per visualizzare i pacchetti destinati a framework .NET specifici (per altre informazioni, vedere Framework di destinazione):

  • Se si seleziona una delle caselle di controllo generazione di .NET Framework, i risultati della ricerca vengono filtrati in base ai pacchetti compatibili con i singoli framework di destinazione all'interno di tale generazione. Ad esempio, la selezione .NET restituirà pacchetti compatibili con qualsiasi framework .NET moderno, incluso net5.0 tramite net8.0.

    Screenshot that shows the Framework filters on nuget.org.

  • Espandendo una di queste generazioni di framework con le frecce a destra, verranno visualizzati singoli moniker del framework di destinazione (TFM) in base a cui è possibile filtrare i risultati. Ad esempio, la selezione net5.0 restituirà pacchetti compatibili con il framework '.NET 5.0'.

  • Per impostazione predefinita, i pacchetti vengono filtrati in base all'elenco espanso di framework compatibili calcolati. Se si desidera filtrare i pacchetti esclusivamente in base ai framework asset di destinazione in modo esplicito, deselezionare la casella di controllo Includi framework compatibili.

  • La combinazione di più filtri framework mostrerà i risultati della ricerca che corrispondono a tutti i filtri selezionati, ad esempio i pacchetti che rientrano nell'intersezione delle selezioni. Ad esempio, selezionando netcoreapp3.1 e net45 insieme verranno visualizzati i pacchetti destinati sia a '.NET Core 3.1' che a '.NET Framework 4.5'. Selezionando la casella di controllo di generazione del .NET Core framework e la net45 casella di controllo insieme restituiranno i pacchetti destinati a '.NET Framework 4.5', e almeno uno dei TFM ".NET Core" (netcoreapp1.0 da a netcoreapp3.1).

    • In alternativa, se si desidera visualizzare i pacchetti corrispondenti a uno dei filtri del framework, selezionare il pulsante di opzione Qualsiasi opzione nell'opzione Modalità filtro framework. Ora, selezionando netcoreapp3.1 e net5.0 mostrerà i pacchetti destinati a '.NET Core 3.1' o '.NET 5.0'. Selezionando la netcoreapp3.1 casella di controllo e la .NET casella di controllo di generazione del framework, verranno restituiti i pacchetti destinati a ".NET Core 3.1" o a uno qualsiasi dei ". TFM di NET (net5.0 da a net8.0).
  • Altre informazioni su come valutare i framework supportati di un pacchetto e la relativa compatibilità con il progetto sono disponibili qui.

Usare il filtro Tipo di pacchetto per visualizzare i pacchetti di un tipo specifico:

Per impostazione predefinita, NuGet elenca tutte le versioni dei pacchetti, incluse le versioni non definitive e beta. Nella sezione Opzioni deselezionare la casella di controllo Includi versione preliminare per elencare solo le versioni dei pacchetti stabili e rilasciate.

Per applicare le modifiche, selezionare Applica. Per tornare alle impostazioni predefinite, selezionare Reimposta.

Usare l'elenco a discesa Ordina per in alto a destra della pagina per ordinare l'elenco in base a diversi criteri:

  • La pertinenza è l'impostazione predefinita e ordina i risultati in base a un algoritmo di assegnazione dei punteggi interno.
  • I download ordinano i risultati della ricerca in base al numero totale di download, in ordine decrescente.
  • Gli ultimi aggiornamenti ordinano i risultati della ricerca in base alla data di creazione della versione del pacchetto più recente, in ordine cronologico decrescente.

Sintassi di ricerca

Le query di ricerca di pacchetti in nuget.org, dall'interfaccia della riga di comando di NuGet e dall'interno di Visual Studio usano tutte la stessa sintassi. Altre origini di pacchetti, ad esempio Azure Artifacts o GitHub Package Repository, possono usare una sintassi diversa o non supportare filtri avanzati.

  • È possibile eseguire ricerche nel pacchetto id, versiontagstitlepackageid, , descriptionsummaryauthor, , o owner usando la sintassi .<property>:<term>

  • La ricerca si applica a parole chiave e descrizioni e non fa distinzione tra maiuscole e minuscole. Le stringhe seguenti, ad esempio, esemplicludono tutte le ricerche nella proprietà per la id stringa nuget.core:

    id:NuGet.Core
    ID:nuget.core
    Id:NUGET.CORE

  • Cerca le sottostringhe della id proprietà, mentre packageid e usa corrispondenze esatte senza distinzione tra maiuscole e owner minuscole. Ad esempio:

    PackageId:jquery cerca l'ID jquerydel pacchetto esatto.
    Id:jquery cerca tutti gli ID pacchetto che contengono la stringa jquery.

  • È possibile cercare più valori o proprietà contemporaneamente. Ad esempio:

    id:jquery id:ui cerca più termini nella id proprietà .
    id:jquery tags:validation cerca più proprietà.

  • La ricerca ignora le proprietà non supportate, quindi invalid:jquery ui equivale alla ricerca uidi e invalid:jquery restituisce tutti i pacchetti.

Determinare i framework supportati

NuGet installa un pacchetto in un progetto solo se i framework .NET supportati del pacchetto includono i framework di destinazione del progetto. Se il pacchetto non è compatibile, NuGet genera un errore.

Esistono diversi modi per determinare i framework supportati da un pacchetto:

  • Nella pagina di ricerca i framework supportati di un pacchetto verranno visualizzati come badge sotto l'ID del pacchetto. Queste notifiche mostrano le versioni del framework supportate più basse dalle generazioni .NET, .NET Core, .NET Standard e .NET Framework . Il pacchetto sarà compatibile con qualsiasi versione del framework uguale o successiva alla versione badge visualizzata.

    I badge "Blu scuro" rappresentano framework mirati in modo esplicito, mentre i badge "blu chiaro" rappresentano framework compatibili con il calcolo.

    Facendo clic su una notifica, si verrà reindirizzi alla pagina dei dettagli del pacchetto in nuget.org. La scheda Framework nella pagina del pacchetto mostrerà l'elenco completo dei framework supportati.

    Screenshot of the Framework badges on nuget.org's search page.

  • Nella pagina del pacchetto in nuget.org, i framework supportati vengono visualizzati sotto l'ID pacchetto e nella scheda Framework , ma non tutti i pacchetti mostrano framework supportati.

    Screenshot of the Frameworks UI and tab on the package page at nuget.org.

  • Scaricare manualmente il pacchetto selezionando Scarica pacchetto in Informazioni. Modificare l'estensione del file del pacchetto scaricato da .nupkg in .zip, aprire la cartella .zip ed esaminare la relativa cartella lib. Sono disponibili sottocartelle per ogni framework supportato, ognuna denominata con un moniker del framework di destinazione (TFM). Per altre informazioni, vedere Framework di destinazione. Se non ci sono sottocartelle in lib e c'è solo una singola DLL, provare a installare il pacchetto per individuarne la compatibilità.

  • Provare a installare il pacchetto in un progetto usando Install-Package nella console di Visual Studio Gestione pacchetti. Se il pacchetto non è compatibile, l'output della console mostra i framework supportati del pacchetto.

Pacchetti in versione non definitiva

Molti autori di pacchetti forniscono versioni di anteprima e beta man mano che continuano a migliorare e cercare commenti e suggerimenti sulle revisioni più recenti. Per impostazione predefinita, nuget.org mostra i pacchetti non definitive nell'elenco dei pacchetti e nei risultati della ricerca.

Per elencare e cercare solo versioni stabili:

  • In nuget.org deselezionare la casella di controllo Includi versione preliminare nel pannello di ricerca avanzata.
  • Nell'interfaccia utente di Visual Studio NuGet Gestione pacchetti deselezionare la casella di controllo Includi versione preliminare accanto alla casella Di ricerca.

Gli strumenti dell'interfaccia della riga di comando di Visual Studio Gestione pacchetti, dell'interfaccia della riga di comando nuGet e dotnet non includono versioni non definitive per impostazione predefinita. Per includere versioni non definitive:

  • Nella console di Gestione pacchetti usare l'opzione con i Find-Packagecomandi , Install-PackageGet-Package, Sync-Package, e Update-Package .-IncludePrerelease Per altre informazioni, vedere Le informazioni di riferimento su PowerShell.

  • Per l'interfaccia della riga di comando di NuGet, usare l'opzione con i installcomandi , deleteupdate, e mirror .-prerelease Per altre informazioni, vedere le informazioni di riferimento sull'interfaccia della riga di comando di NuGet.

  • Per l'interfaccia della riga di comando dotnet, specificare una versione non definitiva con l'argomento -v . Per altre informazioni, vedere le informazioni di riferimento sul pacchetto dotnet add.

Pacchetti C++ nativi

I progetti C++ di Visual Studio possono usare pacchetti NuGet C++ nativi. L'installazione di questi pacchetti abilita il comando di menu di scelta rapida Gestisci pacchetti NuGet, espone un native framework di destinazione e fornisce l'integrazione di MSBuild.

Per trovare pacchetti nativi in nuget.org/packages, eseguire la ricerca usando tag:native. Tali pacchetti in genere forniscono file con estensione targets e props , che NuGet importa automaticamente quando si aggiungono i pacchetti.

Valutare i pacchetti

Il modo migliore per valutare l'utilità di un pacchetto è provare. Quando si usa un pacchetto, è necessario assicurarsi che sia affidabile e affidabile. Tuttavia, l'installazione di un pacchetto e il test diretto richiede molto tempo. È possibile ottenere molte informazioni sulla qualità di un pacchetto usando le informazioni nella pagina del pacchetto in nuget.org/packages.

  • Il segno di spunta Prefisso riservato accanto all'ID pacchetto nell'elenco dei pacchetti e nella pagina del pacchetto indica che i proprietari del pacchetto hanno applicato e sono stati concessi un prefisso ID pacchetto riservato. Per soddisfare i criteri di prenotazione del prefisso ID, i proprietari dei pacchetti devono identificare chiaramente se stessi e i relativi pacchetti.

    Screenshot that shows Prefix Reserved on a package's page.

  • I download nella colonna destra della pagina del pacchetto mostrano Il totale, la versione corrente e i download medi al giorno. Numeri elevati indicano che il pacchetto si è dimostrato tra molti sviluppatori.

    Screenshot that shows Download statistics on a package's page.

    Selezionare Statistiche complete accanto a Download per visualizzare una pagina che mostra i download dei pacchetti per le ultime sei settimane in base al numero di versione. Le versioni che usano più sviluppatori sono in genere scelte migliori.

  • La scheda Usato da nella pagina del pacchetto mostra i primi cinque pacchetti di nuget.org più diffusi e i repository GitHub che dipendono da questo pacchetto. I pacchetti e i repository che dipendono da questo pacchetto vengono chiamati dipendenti. I pacchetti dipendenti e i repository possono essere visti come endorsing di questo pacchetto, perché hanno scelto di considerare attendibile e dipendere da esso.

    Screenshot that shows the Used By list.

    La versione stabile più recente di un pacchetto dipendente deve dipendere da qualsiasi versione di questo pacchetto. Questa definizione garantisce che i pacchetti dipendenti elencati siano una riflessione aggiornata delle decisioni degli autori di pacchetti per considerare attendibili e dipendere dal pacchetto. L'elenco dei dipendenti non mostra dipendenti in versione preliminare, perché non sono ancora considerati autenticità intere. Gli esempi seguenti mostrano quali pacchetti vengono visualizzati come dipendenti:

    Versione del pacchetto dipendente Pacchetto dipendente elencato come dipendente?
    v1.0.0
    La versione 1.1.0 (stabile più recente) dipende da questo pacchetto
    v1.2.0-preview
    TRUE, la versione stabile più recente dipende da questo pacchetto
    v1.0.0 dipende da questo pacchetto
    v1.1.0 (stabile più recente)
    v1.2.0-preview
    FAL edizione Standard, la versione stabile più recente non dipende da questo pacchetto
    v1.0.0 dipende da questo pacchetto
    v1.1.0 (stabile più recente)
    V1.2.0-preview dipende da questo pacchetto
    FAL edizione Standard, la versione stabile più recente non dipende da questo pacchetto

    Il numero di stelle per un repository GitHub indica la sua popolarità con gli utenti di GitHub. Per altre informazioni sul sistema di classificazione delle stelle e dei repository GitHub, vedere Informazioni sulle stelle.

    Nota

    La sezione Used By viene generata automaticamente, senza revisione umana, e esclusivamente a scopo informativo.

  • La scheda Versioni della pagina del pacchetto mostra le versioni, i download, le date dell'ultimo aggiornamento e le gravi vulnerabilità delle versioni dei pacchetti. La versione installata non deve avere vulnerabilità con gravità elevata. Un pacchetto ben gestito include aggiornamenti recenti e una lunga cronologia delle versioni. I pacchetti trascurati hanno pochi e lunghi aggiornamenti.

    Screenshot that shows the Versions list.

La colonna destra della pagina del pacchetto include altri collegamenti informativi:

Screenshot that shows the right column of the package page.

  • Selezionare Sito Web progetto, se disponibile, per visualizzare le opzioni di supporto fornite dall'autore. Un progetto con un sito dedicato è in genere ben supportato.

  • Selezionare Repository di origine per passare al repository del codice sorgente Git per il pacchetto. Molti autori mantengono i pacchetti nei repository open source, in modo che gli utenti possano contribuire direttamente alle correzioni di bug e ai miglioramenti delle funzionalità. La cronologia dei contributi del pacchetto è un buon indicatore del numero di sviluppatori coinvolti attivamente.

  • Selezionare licenza di tipo di> licenza per visualizzare <il mit del pacchetto o un'altra licenza. Se un pacchetto non specifica le condizioni di licenza, contattare il proprietario del pacchetto.

  • Selezionare uno dei proprietari dei pacchetti in Proprietari per visualizzare altri pacchetti pubblicati. È più probabile che i proprietari con più pacchetti continuino a supportare il loro lavoro. Selezionare Contatta i proprietari accanto a Proprietari per contattare direttamente gli sviluppatori di pacchetti.

Recuperare le informazioni sulla licenza

Alcuni client NuGet e feed NuGet potrebbero non essere in grado di visualizzare informazioni sulle licenze. Per mantenere la compatibilità con le versioni precedenti in questi casi, l'URL della licenza fa riferimento a questo documento su come recuperare le informazioni sulla licenza.

Se si seleziona l'URL della licenza per un pacchetto viene visualizzata questa pagina, significa che il pacchetto contiene un file di licenza e:

  • Si è connessi a un feed che non sa come interpretare e visualizzare le informazioni sulla licenza al client o
  • Si sta usando un client che non sa come interpretare e leggere le informazioni sulla licenza fornite dal feed o
  • Combinazione di entrambi questi scenari.

Per leggere le informazioni nel file di licenza all'interno del pacchetto:

  1. Scaricare manualmente il pacchetto e decomprimerne il contenuto in una cartella.
  2. Aprire il file con estensione nuspec nella radice della cartella .
  3. Esaminare il <license> tag, ad esempio <license type="file">license\license.txt</license>. Il tag di esempio indica che il file di licenza è denominato license.txt e si trova all'interno di una sottocartella denominata license.
  4. Passare al percorso specificato e aprire il file specificato.

Per informazioni su MSBuild equivalente all'impostazione della licenza in .nuspec, vedere Creazione di un'espressione di licenza o di un file di licenza.

Passaggi successivi