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.

La pagina nuget.org/packages elenca i 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 del sito nuget.org/packages, che elenca pacchetti e informazioni su aggiornamenti, download e framework supportati per ogni pacchetto.

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 opzioni avanzate di filtro e ordinamento.

Screenshot di nuget.org/packages con le opzioni di filtro e l'elenco di ordinamento evidenziati. Le opzioni di filtro, ad esempio il framework e il tipo di pacchetto, sono visibili.

Usare i filtri Framework per visualizzare i pacchetti destinati a framework .NET specifici. Per altre informazioni, vedere Framework di destinazione nei progetti in stile SDK.

  • Se si seleziona una generazione di .NET Framework, il filtro limita i risultati della ricerca ai pacchetti compatibili con uno dei singoli framework di destinazione all'interno di tale generazione. Ad esempio, la selezione di .NET restituisce pacchetti compatibili con qualsiasi framework .NET moderno, tra cui .NET 5.0 e .NET 10.0.

    Screenshot che mostra i filtri del framework in nuget.org. In .NET Framework espanso sono elencati i framework da .NET 5.0 a .NET 10.0.

  • Se si usano le frecce per espandere una generazione di framework, il pannello elenca i singoli moniker del framework di destinazione (TFM) in base ai quali è possibile filtrare i risultati. Ad esempio, selezionando net5.0 vengono restituiti 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 unicamente in base ai framework di asset che mirano esplicitamente, deseleziona la casella di controllo Includi framework compatibili.

  • La combinazione di più filtri del framework mostra i risultati della ricerca che corrispondono a tutti i filtri selezionati. In altre parole, la pagina elenca i pacchetti che rientrano nell'intersezione delle tue selezioni. Per esempio:

    • Selezionando netcoreapp3.1 e net45 vengono visualizzati i pacchetti destinati sia a .NET Core 3.1 che a .NET Framework 4.5.
    • Selezionando la generazione di .NET Core Framework e net45 vengono restituiti pacchetti destinati a .NET Framework 4.5 e almeno uno dei TFM .NET Core (da .NET Core 1.0 a .NET Core 3.1).

    In alternativa, è possibile cercare pacchetti che corrispondono a uno dei filtri del framework. A tale scopo, passare alla parte superiore delle opzioni di filtro. Accanto a Modalità filtro framework, selezionare Qualunque.

    • Selezionando netcoreapp3.1 e net5.0 vengono visualizzati i pacchetti destinati a .NET Core 3.1 o .NET 5.0.
    • Se si seleziona netcoreapp3.1 e la generazione di .NET Framework vengono restituiti i pacchetti destinati a .NET Core 3.1 o a uno qualsiasi dei TFM .NET (da .NET 5.0 a .NET 10.0).
  • Per altre informazioni su come valutare i framework supportati di un pacchetto e la relativa compatibilità con il progetto, vedere Determinare i framework supportati più avanti in questo articolo.

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

  • Tutti i tipi sono il valore predefinito 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 .
  • Il server MCP filtra i pacchetti che implementano server MCP (Model Context Protocol), che è possibile usare per connettere le applicazioni di intelligenza artificiale ai dati e ai sistemi.

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 ai valori predefiniti, selezionare Reimposta.

Usare l'elenco Ordina per nell'angolo superiore destro della pagina per ordinare l'elenco di pacchetti in base a diversi criteri:

  • La pertinenza è il valore predefinito 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 più recente del pacchetto, in ordine cronologico decrescente.

Sintassi di ricerca

Le query di ricerca dei pacchetti eseguite in nuget.org, dall'interfaccia della riga di comando di NuGet e dall'interno di Visual Studio usano 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>

  • Le ricerche si applicano a parole chiave e descrizioni e non fanno 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 alle sottostringhe, mentre packageid e owner usano corrispondenze esatte senza distinzione 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à.

  • Le ricerche ignorano le proprietà non supportate, quindi invalid:jquery ui corrisponde 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:

  • Verifica la pagina di ricerca per i framework supportati di un pacchetto, che compaiono come badge sotto l'ID del pacchetto. Questi badge mostrano le versioni più basse del framework supportate dalle generazioni .NET, .NET Core, .NET Standard, e .NET Framework. Il pacchetto è compatibile con qualsiasi versione del framework maggiore o uguale alla versione badge visualizzata.

    I badge blu scuro rappresentano framework mirati in modo esplicito. I badge blu chiaro rappresentano framework compatibili con il calcolo.

    La selezione di una notifica reindirizza l'utente alla pagina dei dettagli del pacchetto in nuget.org. In questa pagina la scheda Framework visualizza l'elenco completo dei framework supportati.

    Screenshot di nuget.org/packages. Sotto due nomi di pacchetto, le righe dei badge del framework sono evidenziate e un tooltip sulla compatibilità è visibile.

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

    Screenshot di una pagina del pacchetto nuget.org. Sotto il nome, le notifiche del framework sono evidenziate. Nella scheda Framework sono elencate numerose versioni di .NET.

  • Scaricare il pacchetto manualmente dalla pagina del pacchetto passando alla sezione Informazioni e selezionando Scarica pacchetto. Modificare l'estensione del file del pacchetto scaricato da .nupkg in .zip, aprire la cartella .zip ed esaminare la relativa cartella lib . Esistono sottocartelle per ogni framework supportato, ognuna denominata con un TFM. Per ulteriori informazioni, consultare 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 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:

  • Al nuget.org passare al pannello di ricerca avanzato e deselezionare la casella di controllo Includi versione preliminare .
  • 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:

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 Microsoft Build Engine (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 scoprire molto sulla qualità di un pacchetto usando le informazioni nella pagina del pacchetto in nuget.org/packages.

  • Il segno di spunta Prefisso riservato indica che i proprietari del pacchetto hanno richiesto e ottenuto un prefisso ID pacchetto riservato. Nell'elenco dei pacchetti è possibile trovare questo segno di spunta accanto all'ID pacchetto. Sulla pagina del pacchetto, è posizionato sotto l'ID. Per soddisfare i criteri di prenotazione del prefisso ID, i proprietari dei pacchetti devono identificare chiaramente se stessi e i relativi pacchetti.

    Screenshot di una pagina del pacchetto in nuget.org. Sotto il nome del pacchetto è presente un segno di spunta blu con etichetta Prefisso riservato.

  • La sezione Download nella colonna laterale della pagina del pacchetto mostra Il totale, la versione corrente e i download medi al giorno . Numeri elevati indicano che il pacchetto si è dimostrato tra molti sviluppatori.

    Screenshot della sezione Download di una pagina del pacchetto che mostra i download totali, i download della versione corrente e i download medi giornalieri.

    Accanto a Download selezionare Statistiche complete per passare a 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 e i repository dipendenti possono essere considerati un'approvazione di questo pacchetto, perché scelgono di ritenere attendibile e dipendere da esso.

    Screenshot di una pagina dei pacchetti. La scheda Utilizzato da elenca i pacchetti NuGet e i repository GitHub e i relativi conteggi di download. Il conteggio massimo è nell'ordine dei miliardi.

    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 possono essere elencati 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 di una pagina del pacchetto. Nella scheda Versioni sono elencati il nome, i download e la data di ogni versione. Alcune versioni hanno un'icona di avviso.

Nella colonna laterale della pagina del pacchetto, le sezioni Informazioni su e Proprietari hanno altri collegamenti informativi:

Screenshot della colonna laterale di una pagina del pacchetto, con collegamenti per i proprietari, il sito Web del progetto, il repository di origine e la licenza evidenziati.

  • Selezionare Sito Web progetto, se disponibile, per scoprire 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.

  • Selezionare <tipo di licenza> licenza per ottenere informazioni sulla licenza del pacchetto. Se un pacchetto non specifica le condizioni di licenza, contattare il proprietario del pacchetto.

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

Recuperare le informazioni sulla licenza

Alcuni client NuGet e feed NuGet non possono visualizzare informazioni sulle licenze. Per mantenere la compatibilità con le versioni precedenti in questi casi, l'URL della licenza fa riferimento a questo documento.

Se si seleziona l'URL della licenza per un pacchetto viene visualizzata questa pagina, significa che il pacchetto contiene un file di licenza. Inoltre, una o entrambe le istruzioni seguenti sono vere:

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

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>, per identificare il file di licenza e la sottocartella. In questo caso, il file di licenza è denominato license.txt. Si trova in una sottocartella denominata license.
  4. Passare alla sottocartella specificata e aprire il file di licenza.

Per informazioni sull'equivalente di MSBuild per impostare la licenza nel file .nuspec, vedere Creazione di un'espressione di licenza o di un file di licenza.