Editar

Partilhar via


Perguntas frequentes sobre o NuGet

Para perguntas frequentes sobre NuGet.org, como perguntas sobre NuGet.org conta, consulte NuGet.org perguntas frequentes.

Geral

O que é necessário para executar o NuGet?

Todas as informações sobre a interface do usuário e as ferramentas de linha de comando estão disponíveis no guia Instalação .

O NuGet suporta Mono?

A ferramenta de linha de comando, nuget.exe, cria e é executada normalmente no Windows. O NuGet pode ser executado em sistemas operacionais Unix usando mono, mas não é oficialmente suportado pela Política de Suporte do NuGet,.

Mono transferiu a propriedade para o Wine e não é mais mantido pela Microsoft.

Como posso determinar o que um pacote contém e se é estável e útil para o meu aplicativo?

A principal fonte para aprender sobre um pacote é sua página de listagem no nuget.org (ou outro feed privado). Cada página de pacote no nuget.org inclui uma descrição do pacote, seu histórico de versões e estatísticas de uso. A seção Info na página do pacote também contém um link para o site do projeto, onde você normalmente encontra muitos exemplos e outra documentação para ajudá-lo a aprender como o pacote é usado.

Para obter mais informações, consulte Localizando e escolhendo pacotes.

NuGet no Visual Studio

Como o NuGet é suportado em diferentes produtos Visual Studio?

  • O Visual Studio no Windows oferece suporte ao da interface do usuário do Gerenciador de Pacotes e ao Console do Gerenciador de Pacotes .
  • O Visual Studio para Mac tem recursos internos do NuGet, conforme descrito em Incluindo um pacote NuGet em seu projeto.
  • O Visual Studio Code (todas as plataformas) não tem nenhuma integração direta com o NuGet. Use a da CLI do NuGet ou a da CLI dotnet.
  • O Azure DevOps fornece uma etapa de compilação para restaurar pacotes NuGet. Você também pode hospedar feeds de pacotes NuGet privados no Azure DevOps.

Como verifico a versão exata das ferramentas NuGet instaladas?

No Visual Studio, use o comando Help > About Microsoft Visual Studio e examine a versão exibida ao lado de Gerenciador de Pacotes NuGet.

Como alternativa, inicie o Console do Gerenciador de Pacotes ( Ferramentas> Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes) e insira $host para ver informações sobre o NuGet, incluindo a versão.

Quais linguagens de programação são suportadas pelo NuGet?

O NuGet geralmente funciona para linguagens .NET e foi projetado para trazer bibliotecas .NET para um projeto. Como ele também suporta automação do MSBuild e Visual Studio em alguns tipos de projeto, ele também suporta outros projetos e linguagens em vários graus.

A versão mais recente do NuGet suporta C#, Visual Basic, F#, WiX, C++ e Q#.

Quais modelos de projeto são suportados pelo NuGet?

O NuGet tem suporte total para uma variedade de modelos de projeto, como Windows, Web, Cloud, SharePoint, Wix e assim por diante.

Como atualizo pacotes que fazem parte de modelos do Visual Studio?

Vá para a guia Atualizações na interface do usuário do Gerenciador de Pacotes e selecione Atualizar Tudoou use o comando no Console do Gerenciador de Pacotes.

Para atualizar o modelo em si, você precisa atualizar manualmente o repositório de modelos. Veja no blog do Xavier Decoster sobre este assunto. Observe que isso é feito por sua conta e risco, porque as atualizações manuais podem corromper o modelo se a versão mais recente de todas as dependências não for compatível entre si.

Posso usar o NuGet fora do Visual Studio?

Sim, o NuGet funciona diretamente a partir da linha de comando. Consulte a do guia Instalação e a referência da CLI .

Linha de comando NuGet

Como faço para obter a versão mais recente da ferramenta de linha de comando NuGet?

Consulte o guia Instalação . Para verificar a versão atual instalada da ferramenta, use nuget help.

Qual é a licença para nuget.exe?

Você tem permissão para redistribuir nuget.exe sob os termos da licença MIT. Você é responsável pela atualização e manutenção de quaisquer cópias de nuget.exe que você optar por redistribuir.

É possível estender a ferramenta de linha de comando NuGet?

Sim, é possível adicionar comandos personalizados ao nuget.exe, conforme descrito no post de Rob Reynold, disponível via Archive.org.

Console do Gerenciador de Pacotes NuGet (Visual Studio no Windows)

Como faço para obter acesso ao objeto DTE no console do Gerenciador de Pacotes?

O objeto de nível superior no modelo de objeto de automação do Visual Studio é chamado de objeto DTE (Development Tools Environment). O console fornece isso por meio de uma variável chamada $DTE. Para obter mais informações, consulte Visão geral do modelo de automação na documentação de extensibilidade do Visual Studio.

Tento converter a variável $DTE para o tipo DTE2, mas recebo um erro: Não é possível converter o valor "EnvDTE.DTEClass" do tipo "EnvDTE.DTEClass" para o tipo "EnvDTE80.DTE2". Qual é o problema?

Esse é um problema conhecido com a forma como o PowerShell interage com um objeto COM. Tente o seguinte:

`$dte2 = Get-Interface $dte ([EnvDTE80.DTE2])`

Get-Interface é uma função auxiliar adicionada pelo host do NuGet PowerShell.

Criação e publicação de pacotes

Como faço para listar meu pacote em um feed?

Tenho várias versões da minha biblioteca que visam versões diferentes do .NET Framework. Como faço para criar um único pacote que suporte isso?

Como configuro meu próprio repositório ou feed?

Consulte a visão geral dos pacotes de hospedagem .

Como posso carregar pacotes para o meu feed NuGet em massa?

Consulte Pacotes NuGet de publicação em massa (jeffhandly.com).

Trabalhar com pacotes

É possível instalar pacotes NuGet sem conectividade com a Internet?

Sim, consulte a postagem do blog de Scott Hanselman Como acessar o NuGet quando nuget.org está inativo (ou você está em um avião) (hanselman.com).

Como faço para instalar pacotes em um local diferente da pasta de pacotes padrão?

Defina a configuração repositoryPath em Nuget.Config usando nuget config -set repositoryPath=<path>.

Como faço para evitar adicionar a pasta de pacotes NuGet ao controle do código-fonte?

Defina o disableSourceControlIntegration em Nuget.Config para true. Essa chave funciona no nível da solução e, portanto, precisa ser adicionada ao arquivo $(Solutiondir)\.nuget\Nuget.Config. Habilitar a restauração de pacotes do Visual Studio cria esse arquivo automaticamente.

Como faço para desativar a restauração de pacotes?

Por que recebo um "Não é possível resolver o erro de dependência" ao instalar um pacote local com dependências remotas?

Você precisa selecionar o All source ao instalar um pacote local no projeto. Isso agrega todos os feeds em vez de usar apenas um. A razão pela qual esse erro aparece é que os usuários de um repositório local geralmente querem evitar a instalação acidental de um pacote remoto devido a políticas corporativas.

Tenho vários projetos na mesma pasta, como posso usar arquivos packages.config separados para cada projeto?

Na maioria dos projetos em que projetos separados vivem em pastas separadas, isso não é um problema, pois o NuGet identifica os arquivos packages.config em cada projeto. Com o NuGet 3.3+ e vários projetos na mesma pasta, você pode inserir o nome do projeto na packages.config nomes de arquivo usam o padrão packages.{project-name}.confige o NuGet usa esse arquivo.

Isso não é um problema ao usar PackageReference, pois cada arquivo de projeto contém sua própria lista de dependências.

Não vejo nuget.org na minha lista de repositórios, como posso recuperá-los?

  • Adicione https://api.nuget.org/v3/index.json à sua lista de fontes, ou
  • Exclua %appdata%\.nuget\NuGet.Config (Windows) ou ~/.nuget/NuGet/NuGet.Config (Mac/Linux) e deixe o NuGet recriá-lo.

Eu migrei para PackageReference, por que minha compilação está falhando 'Este projeto faz referência ao(s) pacote(s) NuGet que estão faltando neste computador.'?

Em projetos packages.config, quando um pacote com build props ou destinos era instalado, o NuGet adicionava um destino EnsureNuGetPackageBuildImports para verificar se o conteúdo msbuild dos pacotes foi importado antes da compilação. Se o target tiver sido modificado manualmente, o NuGet pode não ser capaz de detetar que ele precisa ser removido durante a migração.

Se o seu projeto é PackageReference e você ainda tem esse destino no arquivo de projeto, ele deve ser seguro para remover.

Não há nenhum LEIA-ME no Gerenciador de Pacotes NuGet do Visual Studio para o pacote selecionado.

Se você vir a mensagem "Não há LEIA-ME disponível para a versão do pacote selecionado" no Gerenciador de Pacotes NuGet do Visual Studio, isso significa que a versão selecionada do pacote NuGet não tem um arquivo LEIA-ME incorporado.

  • Se esta não for a versão mais recente do pacote, considere verificar a versão mais recente.
  • Se a versão mais recente também não tiver o arquivo LEIA-ME incorporado e você não for o mantenedor deste pacote, considere registrar um problema ou entrar em contato com o mantenedor para solicitar um LEIA-ME.
  • Se você é o mantenedor do pacote, aqui está o guia sobre como incorporar o LEIA-ME em seu pacote. Observe que, se você adicionou o arquivo LEIA-ME no NuGet.org, mas não o incorporou em seu pacote, o LEIA-ME não será mostrado no Visual Studio.