Condividi tramite


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 Gestione pacchetti di Visual Studio o dalla console di Gestione pacchetti 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 che mostra la visualizzazione predefinita di nuget.org/packages con i pacchetti più diffusi nella parte superiore.

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 che mostra le opzioni di filtro e ordinamento in 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 che mostra i filtri del Framework su 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. Per filtrare i pacchetti esclusivamente in base ai framework di asset che targettono esplicitamente, 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 qualsiasi dei filtri del framework, selezionare il pulsante di opzione Qualsiasi nella Modalità filtro framework. Ora, selezionando netcoreapp3.1 e net5.0 mostrerà i pacchetti destinati a '.NET Core 3.1' o '.NET 5.0'. Selezionando le caselle di controllo netcoreapp3.1 e la casella di controllo di generazione del framework .NET, verranno restituiti i pacchetti selezionati per ".NET Core 3.1" o per uno qualsiasi degli ".NET TFM" (net5.0 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:

  • Tutti i tipi sono predefiniti e visualizza tutti i pacchetti indipendentemente dal tipo.
  • Filtri di dipendenza per i normali pacchetti NuGet che è possibile installare nel progetto.
  • Gli strumenti .NET filtrano i pacchetti degli strumenti .NET che contengono applicazioni console.
  • Filtri modello per i modelli .NET che è possibile usare per creare nuovi progetti con il comando dotnet new .

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, packageidversiontitletags, , authordescriptionsummary, , 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, includono tutte la ricerca nella proprietà id per la stringa nuget.core.

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

  • Le ricerche sulla proprietà id corrispondono a sottostringhe, mentre packageid e owner usano corrispondenze esatte senza distinguere tra maiuscole e minuscole. Per 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. Per esempio:

    id:jquery id:ui cerca più termini nella id proprietà .
    id:jquery tags:validation cerca diverse 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 un badge, si verrà reindirizzati alla pagina dei dettagli del pacchetto su nuget.org. La scheda Frameworks nella pagina del pacchetto mostrerà l'elenco completo dei framework supportati.

    Screenshot dei distintivi del framework nella pagina di ricerca di nuget.org.

  • 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 dell'interfaccia utente Framework e della scheda Framework nella pagina del pacchetto su 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, ciascuna denominata con un identificativo del framework di destinazione (TFM). Per ulteriori informazioni, vedere Target Frameworks. 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 Gestione pacchetti di Visual Studio. Se il pacchetto non è compatibile, l'output della console mostra i framework supportati del pacchetto.

Pacchetti prerelease

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 Gestione pacchetti NuGet di Visual Studio deselezionare la casella di controllo Includi versione preliminare accanto alla casella Di ricerca.

La console di Gestione pacchetti di Visual Studio, la CLI di NuGet e la CLI di dotnet non includono versioni non definitive per impostazione predefinita. Per includere versioni non definitive:

  • Nella console di Gestione pacchetti, usare il -IncludePrerelease switch con i comandi Find-Package, Get-Package, Install-Package, Sync-Package, e Update-Package. Per ulteriori informazioni, vedere il Riferimento di PowerShell.

  • Per l'interfaccia della riga di comando di NuGet, usare l'interruttore con i comandi -prerelease, install, update, delete e mirror. Per ulteriori informazioni, vedere il riferimento CLI di NuGet.

  • Per la CLI dotnet, specificare una versione prerelease con l'argomento -v . Per ulteriori informazioni, vedere dotnet add package reference.

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 è provarlo. Si assume una dipendenza da un pacchetto quando lo si utilizza, quindi è necessario assicurarsi che sia robusto 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 che mostra il prefisso riservato nella pagina del pacchetto.

  • 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 che mostra le statistiche di download nella pagina di un pacchetto.

    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 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 sostenitori di questo pacchetto, perché hanno scelto di considerarlo attendibile e di dipendere da esso.

    Screenshot che mostra l'elenco Used By.

    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 di considerare attendibili e fare affidamento sul pacchetto. L'elenco delle dipendenze non mostra dipendenze in versione preliminare, perché non sono ancora considerate approvazioni complete. 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
    FALSE, 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
    FALSE, 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.

    Annotazioni

    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 aggiornamenti e da tempo.

    Screenshot che mostra l'elenco delle Versioni.

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

Screenshot che mostra la colonna destra della pagina del pacchetto.

  • 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 accedere al repository Git del codice sorgente 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.

  • Seleziona <il tipo di licenza> per visualizzare la licenza 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 sull'equivalente MSBuild per impostare la licenza in .nuspec, vedere Confezionare un'espressione di licenza o un file di licenza.

Passaggi successivi