Encontre e avalie pacotes NuGet para seu projeto

Quando você inicia um projeto .NET ou identifica uma necessidade funcional em seu aplicativo ou serviço, geralmente pode instalar pacotes NuGet existentes para economizar tempo e problemas de criar seus próprios pacotes. Os pacotes existentes podem provir da coleção pública nuget.org , ou de fontes privadas fornecidas pela sua organização ou por outra parte.

Procurar pacotes

Você pode encontrar pacotes diretamente na https://nuget.org/packages, ou na interface do usuário do Gerenciador de Pacotes do Visual Studio ou no Console do Gerenciador de Pacotes com nuget.org como origem. Todos os pacotes da nuget.org são rotineiramente verificados em busca de vírus.

A página nuget.org/packages lista os pacotes NuGet, com os pacotes mais populares em todos os projetos .NET listados em primeiro lugar. Alguns desses pacotes podem ser úteis para seus projetos.

Captura de ecrã do site nuget.org/packages, que lista pacotes e informações sobre atualizações, downloads e frameworks suportados para cada pacote.

Para pesquisar um pacote, introduza o nome ou os termos de pesquisa do pacote na caixa de pesquisa no topo da página. Pode utilizar a sintaxe de pesquisa avançada para filtrar a sua pesquisa.

Filtragem e classificação avançadas

Em nuget.org/packages, pode refinar os resultados de pesquisa usando opções avançadas de filtragem e ordenação.

Captura de ecrã de nuget.org/packages com as opções de filtro e a lista de ordenação destacadas. Opções de filtro, como a estrutura e o tipo de pacote, são visíveis.

Use os filtros Frameworks para mostrar pacotes que visem frameworks .NET específicos. Para obter mais informações, consulte Estruturas de destino em projetos no estilo SDK.

  • Se selecionares uma geração de framework .NET, o filtro limita os resultados da pesquisa a pacotes compatíveis com qualquer um dos frameworks-alvo individuais dessa geração. Por exemplo, selecionar .NET retorna pacotes compatíveis com qualquer um dos frameworks .NET modernos, incluindo .NET 5.0 até .NET 10.0.

    Captura de ecrã que mostra os filtros da framework em nuget.org. No framework expandido .NET, estão listados frameworks desde .NET 5.0 até .NET 10.0.

  • Se usar as setas para expandir a geração de framework, o painel lista os nomes individuais dos frameworks de destino (TFMs), pelos quais pode filtrar os seus resultados. Por exemplo, selecionar net5.0 retorna pacotes compatíveis com o framework .NET 5.0.

  • Por padrão, os pacotes são filtrados por sua lista expandida de estruturas compatíveis computadas. Se quiser filtrar os pacotes apenas pelos frameworks de ativos que visam explicitamente, desmarque a caixa Incluir frameworks compatíveis.

  • Combinar vários filtros do framework mostra resultados de pesquisa que correspondem a todos os filtros selecionados. Ou seja, a página lista os pacotes que se enquadram na interseção das suas escolhas. Por exemplo:

    • Ao selecionar netcoreapp3.1 e net45 , mostra-se pacotes que têm como alvo tanto o .NET Core 3.1 como o .NET Framework 4.5.
    • Ao selecionar a geração do framework .NET Core e o net45, retorna pacotes que visam o .NET Framework 4.5 e pelo menos uma das versões dos TFMs do .NET Core (do .NET Core 1.0 ao .NET Core 3.1).

    Em alternativa, pode procurar pacotes que correspondam a qualquer um dos seus filtros de framework. Para isso, vá ao topo das opções do filtro. Ao lado de Modo de Filtro da Framework, selecione Qualquer.

    • Selecionar netcoreapp3.1 e net5.0 irá mostrar pacotes que têm como destino seja .NET Core 3.1 ou .NET 5.0.
    • Selecionar netcoreapp3.1 e a geração do framework .NET devolve pacotes que têm como alvo .NET Core 3.1 ou qualquer um dos .NET TFMs (.NET 5.0 até .NET 10.0).
  • Para mais informações sobre como avaliar os frameworks suportados por um pacote e a sua compatibilidade com o seu projeto, consulte Determinar frameworks suportados, mais adiante neste artigo.

Use o filtro de tipos de pacote para listar pacotes de um tipo específico:

  • All types é o valor padrão e mostra todos os pacotes independentemente do tipo.
  • Filtros de dependência para pacotes NuGet normais que podes instalar no teu projeto.
  • A ferramenta .NET filtra para pacotes de ferramentas .NET que contêm aplicativos de console.
  • Filtros de modelo para modelos .NET que você pode usar para criar novos projetos com o comando dotnet new .
  • O MCP Server filtra para pacotes que implementam servidores Model Context Protocol (MCP), que pode usar para ligar aplicações de IA aos seus dados e sistemas.

Por padrão, o NuGet lista todas as versões dos pacotes, incluindo as versões de pré-lançamento e beta. Na secção Opções, desmarque a caixa Incluir pré-lançamento para listar apenas as versões estáveis do pacote lançadas.

Para aplicar as alterações, selecione Aplicar. Para voltar aos valores predefinidos, selecione Reset.

Use a lista Ordenar por no canto superior direito da página para ordenar a lista de pacotes por vários critérios:

  • Relevância é o valor padrão e ordena os resultados de acordo com um algoritmo interno de pontuação.
  • Downloads classifica os resultados da pesquisa pelo número total de downloads, em ordem decrescente.
  • A atualização recente ordena os resultados da pesquisa pela data de criação da versão mais recente do pacote, por ordem cronológica decrescente.

Sintaxe de pesquisa

As consultas de pesquisa de pacotes que executas em nuget.org, na interface de linha de comandos (CLI) do NuGet e dentro do Visual Studio usam todas a mesma sintaxe. Outras fontes de pacote, como Artefatos do Azure ou Repositório de Pacotes do GitHub, podem usar sintaxe diferente ou podem não oferecer suporte à filtragem avançada.

  • Você pode pesquisar o pacote id, packageid, version, title, tags, authordescription, summary, ou owner propriedades usando a sintaxe <property>:<term>.

  • As pesquisas aplicam-se a palavras-chave e descrições, e não distinguem entre maiúsculas e minúsculas. Por exemplo, todas as cadeias de caracteres a seguir pesquisam a id propriedade para a cadeia de caracteres nuget.core:

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

  • As pesquisas na id propriedade correspondem a substrings, mas packageid e owner usam correspondências exatas e insensíveis a maiúsculas minúsculas. Por exemplo:

    PackageId:jquery procura o ID jqueryexato do pacote.
    Id:jquery procura todos os IDs de pacote que contêm a cadeia de caracteres jquery.

  • Você pode pesquisar vários valores ou propriedades ao mesmo tempo. Por exemplo:

    id:jquery id:ui procura vários termos na propriedade id.
    id:jquery tags:validation Procura por várias propriedades.

  • As pesquisas ignoram propriedades não suportadas, por isso invalid:jquery ui é o mesmo que procurar por ui, e invalid:jquery devolve todos os pacotes.

Determinar estruturas suportadas

O NuGet instala um pacote em um projeto somente se as estruturas .NET suportadas do pacote incluírem as estruturas de destino do projeto. Se o pacote não for compatível, o NuGet emitirá um erro.

Há várias maneiras de determinar as estruturas suportadas por um pacote:

  • Consulte a página de pesquisa para os frameworks suportados por um pacote, que aparecem como emblemas abaixo do ID do pacote. Estes emblemas mostram as versões mais baixas de framework suportadas das gerações .NET, .NET Core, .NET Standard e .NET Framework. O pacote é compatível com qualquer versão do framework que seja maior ou igual à versão do emblema mostrada.

    Os emblemas azul escuro representam frameworks explicitamente direcionados. Os emblemas azul claro representam frameworks compatíveis computados.

    Selecionar um crachá redireciona-o para a página de detalhes do pacote no nuget.org. Nessa página, o separador Frameworks mostra a lista completa de frameworks suportados.

    Captura de ecrã de nuget.org/packages. Sob dois nomes de pacotes, as linhas de ícones de framework são destacadas, e é visível um tooltip sobre compatibilidade.

  • Consulte a página do pacote em nuget.org para frameworks suportados. Aparecem abaixo do ID do pacote e no separador Frameworks , mas nem todos os pacotes mostram frameworks suportados.

    Captura de ecrã de uma página de pacote do nuget.org. Sob o nome, os distintivos do framework são destacados. O separador Frameworks lista várias versões de .NET.

  • Descarregue o pacote manualmente a partir da página do pacote, indo à secção Sobre e selecionando Descarregar pacote. Altere a extensão do arquivo do pacote baixado de .nupkg para .zip, abra a pasta .zip e examine sua pasta lib . Existem subpastas para cada framework suportado, cada uma com um Identificador de Framework de Destino (TFM). Para mais informações, consulte Frameworks Target. Se não houver subpastas na lib e houver apenas uma única DLL, tente instalar o pacote para descobrir sua compatibilidade.

  • Tente instalar o pacote em um projeto usando Install-Package no Console do Gerenciador de Pacotes do Visual Studio. Se o pacote for incompatível, a saída do console mostrará as estruturas suportadas pelo pacote.

Pacotes de pré-lançamento

Muitos autores de pacotes fornecem versões pré-visualizadas e beta à medida que continuam a melhorar e a procurar feedback sobre as revisões mais recentes. Por padrão, nuget.org mostra pacotes de pré-lançamento em sua lista de pacotes e resultados de pesquisa.

Para listar e pesquisar apenas lançamentos estáveis:

  • No nuget.org, vá ao painel de pesquisa avançada e desative a caixa Incluir pré-lançamento.
  • Na interface do Gestor de Pacotes do Visual Studio NuGet, despeje a caixa de seleção Incluir pré-lançamento ao lado da caixa de pesquisa.

O Console do Gerenciador de Pacotes do Visual Studio, a CLI do NuGet e as ferramentas da CLI dotnet não incluem versões de pré-lançamento por padrão. Para incluir versões de pré-lançamento:

  • No Console do Gestor de Pacotes, use a opção -IncludePrerelease com os comandos Find-Package, Get-Package, Install-Package, Sync-Package e Update-Package. Para mais informações, consulte a referência PowerShell.

  • Para a CLI do NuGet, use a opção -prerelease com os comandos install, update, list, search e mirror. Para mais informações, consulte a referência do CLI NuGet.

  • Para a CLI dotnet, especifique uma versão de pré-lançamento com o argumento -v. Para obter mais informações, consulte dotnet package add.

Pacotes C++ nativos

Os projetos do Visual Studio C++ podem usar pacotes NuGet C++ nativos. A instalação destes pacotes permite o comando Gerir Pacotes NuGet no menu contextual, expõe uma estrutura de destino native, e fornece integração com o Microsoft Build Engine (MSBuild).

Para encontrar pacotes nativos no nuget.org/packages, pesquise usando tag:native. Esses pacotes geralmente fornecem arquivos .targets e .props , que o NuGet importa automaticamente ao adicionar os pacotes.

Avaliar pacotes

A melhor maneira de avaliar a utilidade de um pacote é experimentá-lo. Você depende de um pacote quando o usa, então você deve se certificar de que ele é robusto e confiável. No entanto, instalar um pacote e testá-lo diretamente é demorado. Pode saber muito sobre a qualidade de uma embalagem usando a informação na página da embalagem em nuget.org/packages.

  • A marca de verificação Prefixo Reservado indica que os proprietários do pacote solicitaram e obtiveram um prefixo de ID de pacote reservado. Na lista de encomendas, pode encontrar este visto ao lado do ID da encomenda. Na página do pacote, está por baixo do ID. Para atender aos critérios de reserva do prefixo de ID, os proprietários de pacotes devem identificar claramente a si próprios e os seus pacotes.

    Captura de ecrã de uma página de pacote em nuget.org. Sob o nome da embalagem há uma marca de verificação azul rotulada como Prefixo Reservado.

  • A secção de Downloads na coluna lateral da página do pacote mostra o Total, a versão atual e a média diária de downloads. Grandes números indicam que o pacote provou-se entre muitos desenvolvedores.

    Captura de ecrã de uma página de pacote Secção de downloads que mostra o total de downloads, downloads da versão atual e média diária de downloads.

    Ao lado de Downloads, selecione Estatísticas completas para aceder a uma página que mostra os downloads de pacotes das últimas seis semanas por número de versão. As versões que mais desenvolvedores estão usando geralmente são melhores escolhas.

  • A guia Usado por na página do pacote mostra os cinco pacotes nuget.org mais populares e repositórios do GitHub que dependem desse pacote. Pacotes e repositórios que dependem deste pacote são chamados dependentes. Pacotes dependentes e repositórios podem ser considerados como endossadores deste pacote, porque escolhem confiar e depender dele.

    Captura de ecrã de uma página de pacote. O separador Usado Por lista pacotes NuGet e repositórios do GitHub e as suas contagens de downloads. A maior está na casa dos milhares de milhões.

    A última versão estável de um pacote dependente deve depender de qualquer versão deste pacote. Essa definição garante que os pacotes dependentes listados sejam uma reflexão atualizada das decisões dos autores do pacote de confiar e depender do pacote. A lista de dependentes não mostra dependentes de pré-liberação, porque eles ainda não são considerados endossos sinceros. Os exemplos seguintes mostram quais os pacotes que podem ser listados como dependentes:

    Versão de pacote dependente Pacote dependente marcado como dependente?
    v1.0.0
    v1.1.0 (última estável) depende deste pacote
    v1.2.0-prévia
    É verdade, a versão estável mais recente depende deste pacote
    v1.0.0 depende deste pacote
    v1.1.0 (última versão estável)
    v1.2.0-prévia
    Falso, a versão estável mais recente não depende deste pacote
    v1.0.0 depende deste pacote
    v1.1.0 (última versão estável)
    v1.2.0-preview depende deste pacote
    Falso, a versão estável mais recente não depende deste pacote

    O número de estrelas para um repositório GitHub indica sua popularidade entre os usuários do GitHub. Para obter mais informações sobre o sistema de classificação de estrelas e repositórios do GitHub, consulte Sobre estrelas.

    Observação

    A seção Usado por é gerada automaticamente periodicamente, sem revisão humana, e apenas para fins informativos.

  • A guia Versões na página do pacote mostra as Versões, Downloads, Datas da Última Atualização e vulnerabilidades graves das versões do pacote. A versão instalada não deve ter vulnerabilidades de alta gravidade. Um pacote bem conservado tem atualizações recentes e um longo histórico de versões. Pacotes negligenciados têm poucas atualizações e estas são de há muito tempo.

    Captura de ecrã de uma página de pacote. O separador Versões lista o nome, downloads e data de cada versão. Algumas versões têm um ícone de aviso.

Na coluna lateral da página do pacote, as secções Sobre e Proprietários têm outros links informativos:

Captura de ecrã da coluna lateral de uma página de pacote, com links para os proprietários, site do projeto, repositório de código fonte e licença destacados.

  • Selecione o site do Projeto, se disponível, para saber que opções de apoio o autor oferece. Um projeto com um site dedicado é geralmente bem apoiado.

  • Selecione Source repository para ir para o repositório de código-fonte Git para o pacote. Muitos autores mantêm seus pacotes em repositórios de código aberto, para que os usuários possam contribuir diretamente com correções de bugs e melhorias de recursos. O histórico de contribuições do pacote é um bom indicador de quantos desenvolvedores estão ativamente envolvidos.

  • Selecione <o tipo> de licença para obter informações sobre a licença do pacote. Se um pacote não especificar termos de licença, entre em contato com o proprietário do pacote.

  • Selecione qualquer um dos proprietários de pacotes em Proprietários para obter informações sobre outros pacotes que tenham publicado. Os proprietários com vários pacotes são mais propensos a continuar apoiando seu trabalho. Ao lado de Proprietários, selecione Contactar Proprietários para contactar diretamente os desenvolvedores do pacote.

Recuperar informações de licença

Alguns clientes NuGet e feeds NuGet não conseguem mostrar informação de licenciamento. Para manter a compatibilidade retrocedente nesses casos, o URL da licença aponta para este documento.

Se ao selecionar o URL da licença de um pacote chega a esta página, implica que o pacote contém um ficheiro de licença. Além disso, uma ou ambas as seguintes afirmações são verdadeiras:

  • Estás ligado a um feed que não sabe interpretar e mostrar a informação da licença ao cliente.
  • Estás a usar um cliente que não sabe interpretar e ler a informação da licença que o feed fornece.

Para ler as informações no arquivo de licença dentro do pacote:

  1. Baixe manualmente o pacote e descompacte seu conteúdo para uma pasta.
  2. Abra o arquivo .nuspec na raiz da pasta.
  3. Examine a <license> etiqueta, como <license type="file">license\license.txt</license>, para identificar o ficheiro de licença e a subpasta. Neste caso, o ficheiro da licença é chamado license.txt. Está numa subpasta chamada licença.
  4. Vai à subpasta especificada e abre o ficheiro da licença.

Para informações sobre o equivalente do MSBuild para definir licença no ficheiro .nuspec, veja Empacotar uma expressão de licença ou um ficheiro de licença.