Início Rápido: Crie e publique um pacote NuGet usando o Visual Studio (apenas para Windows)

Neste início rápido, usa o Microsoft Visual Studio para criar um pacote NuGet a partir de uma biblioteca de classes .NET. Depois publicas o pacote para nuget.org usando uma ferramenta de interface de linha de comandos (CLI).

Este início rápido é apenas para utilizadores de Windows. Se estiveres a usar uma plataforma diferente, usa a CLI .NET .

Pré-requisitos

  • Visual Studio 2026 com uma carga de trabalho relacionada com .NET.

    Pode instalar a edição Community 2026 gratuitamente a partir do visualstudio.microsoft.com, ou optar pela edição Professional ou Enterprise.

    O Visual Studio 2017 e versões posteriores incluem automaticamente capacidades NuGet quando instala uma carga de trabalho relacionada com .NET.

  • O .NET CLI.

    Para o Visual Studio 2017 e posteriores, a CLI .NET é instalada automaticamente com qualquer carga de trabalho relacionada com .NET. Também podes instalar o SDK .NET para obter a .NET CLI. A CLI .NET é necessária para .NET projetos que utilizam o formato SDK (e um atributo SDK). O modelo padrão da biblioteca de classes .NET no Visual Studio 2017 e posteriores utiliza o atributo SDK.

    Importante

    Se estiver a trabalhar com um projeto que não seja do tipo SDK, siga os procedimentos em Crie e publique um pacote usando Visual Studio (.NET Framework, Windows) em vez disso para criar e publicar o pacote. Para este artigo, recomenda-se a CLI .NET. Embora possa publicar qualquer pacote NuGet usando a CLI NuGet, alguns dos passos deste artigo são específicos para projetos ao estilo SDK e para a CLI .NET. A CLI NuGet é usada para projetos não do estilo SDK (tipicamente projetos .NET Framework).

  • Uma conta gratuita no nuget.org. Deve registar-se e confirmar a conta antes de poder carregar um pacote NuGet.

  • A CLI do NuGet Podes instalá-lo descarregando do nuget.org. Adicione o ficheironuget.exe a uma pasta adequada e adicione essa pasta à variável de ambiente PATH .

Criar um projeto de biblioteca de classes

Pode usar um projeto de biblioteca de classes .NET existente para o código que pretende empacotar, ou pode criar um seguindo os seguintes passos:

  1. No Visual Studio, selecione File>Novo>Project/Solution.

  2. Na janela Criar um novo projeto , vá à caixa de pesquisa e introduza a biblioteca de classes.

  3. Na lista resultante de modelos de projeto, selecione o modelo de Biblioteca de Classes que cumpra os seguintes critérios:

    • Contém a descrição Um projeto para criar uma biblioteca de classes destinada a .NET ou .NET Standard
    • Tem uma etiqueta C#

    Selecione Avançar.

  4. Na janela Configure o seu novo projeto, para Nome do projeto, introduza AppLogger e depois selecione Seguinte.

  5. Na janela de informação adicional , selecione um valor apropriado para Framework e depois selecione Criar.

    Se não tiver a certeza de qual framework escolher, a versão mais recente é uma boa escolha e pode ser facilmente alterada mais tarde. Para informações sobre qual framework utilizar, veja Quando direcionar netx.0 vs. netstandard.

  6. (Opcional) Para este início rápido, não precisa de escrever código adicional para o pacote NuGet, porque a biblioteca de classes de modelo é suficiente para criar um pacote. No entanto, se quiser adicionar algum código funcional ao pacote, inclua o seguinte código:

    namespace AppLogger
    {
        public class Logger
        {
            public void Log(string text)
            {
                Console.WriteLine(text);
            }
        }
    }
    

Configurar propriedades do pacote

Depois de criar o seu projeto, pode configurar as propriedades do pacote NuGet seguindo estes passos:

  1. Em Solution Explorer, selecione o seu projeto e em seguida selecione Project><nome-do-projeto> Propriedades, onde <nome-do-projeto> é o nome do seu projeto.

  2. Expande o nó Package e depois selecciona Geral.

    O nó Package aparece apenas para projetos ao estilo SDK em Visual Studio. Se estiver a apontar para um projeto de estilo não SDK (normalmente projetos .NET Framework), migre o projeto, ou consulte Criar e publicar um pacote usando o Visual Studio (.NET Framework, Windows) para instruções passo a passo.

    Captura de ecrã de uma janela de propriedades de projeto em Visual Studio. As propriedades gerais de um pacote NuGet são visíveis, como o ID do pacote e o título.

  3. Para o ID do Pacote, dê ao seu pacote um ID único.

    Importante

    Deve atribuir ao pacote um identificador único em todo o host que utiliza, como nuget.org. Caso contrário, ocorre um erro. Para este quickstart, recomendamos incluir Sample ou Test no ID, pois a etapa de publicação torna o pacote visível publicamente. Para mais informações sobre a seleção de um ID, consulte Melhores práticas para o identificador de pacote.

  4. Preencha quaisquer outras propriedades desejadas. Para pacotes construídos para consumo público, preste especial atenção à propriedade Etiquetas , porque as etiquetas ajudam outros a encontrar o seu pacote e a perceber o que ele faz.

    Todas as propriedades vão para o manifesto .nuspec que Visual Studio cria para o projeto. Para uma tabela que mostra como as propriedades Microsoft Build (MSBuild) em projetos ao estilo SDK correspondem às propriedades do ficheiro .nuspec, veja pack target. Para uma descrição das propriedades do ficheiro .nuspec , veja referência .nuspec.

  5. (Opcional) Para ver as propriedades diretamente no ficheiro de projeto AppLogger.csproj, selecione Projeto>Editar Ficheiro de Projeto.

    O ficheiro AppLogger.csproj abre numa nova aba.

    Esta opção está disponível para projetos que utilizam o atributo do estilo SDK.

Executar o comando pack

Para criar um pacote NuGet a partir do seu projeto, siga estes passos:

  1. Selecione Build>Configuration Manager, e depois defina o valor da configuração da solução Ativa para Release.

  2. Em Solution Explorer, clique com o botão direito no projeto AppLogger e depois selecione Pack.

    Visual Studio constrói o projeto e cria o ficheiro .nupkg.

  3. Examine a janela de Saída para informações detalhadas, incluindo o caminho para o ficheiro do pacote. Neste exemplo, o assembly construído está na pasta bin\Release\net8.0, o que é apropriado para um alvo .NET 8.0:

    1>------ Build started: Project: AppLogger, Configuration: Release Any CPU ------
    1>  AppLogger -> d:\proj\AppLogger\AppLogger\bin\Release\net8.0\AppLogger.dll
    1>  Successfully created package 'd:\proj\AppLogger\AppLogger\bin\Release\Contoso.App.Logger.Test.1.0.0.nupkg'.
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    

Se o comando Pack estiver ausente do menu, provavelmente o teu projeto não é do tipo SDK. Tome um dos seguintes passos:

(Opcional) Gerar pacote na compilação

Pode configurar o Visual Studio para gerar automaticamente o pacote NuGet quando constrói o projeto:

  1. Selecione o seu projeto em Solution Explorer e depois selecione Project><nome-do-projeto> Propriedades, onde <nome-do-projeto> é o nome do seu projeto (AppLogger neste caso).

  2. Expanda o nó Pacote, selecione Geral e depois selecione Gerar pacote NuGet na compilação.

    Captura de ecrã de uma janela de propriedades de projeto em Visual Studio. Na secção de propriedades Gerais, está selecionada a opção Generate NuGet on build.

Note

Quando seleciona esta opção, o tempo extra necessário para gerar o pacote aumenta o tempo total de construção do seu projeto.

(Opcional) Embalar com MSBuild

Como alternativa ao comando do menu Pack , pode usar o msbuild -t:pack comando para construir um pacote NuGet a partir do seu projeto. O NuGet 4.x+ e o MSBuild 15.1+ suportam um destino pack quando o seu projeto inclui os dados necessários do pacote.

  1. Com o seu projeto aberto em Solution Explorer, abra uma janela do prompt de comandos selecionando Tools>Command Line>Developer Command Prompt.

    A janela do prompt de comandos abre-se no diretório do teu projeto.

  2. Execute o seguinte comando: msbuild -t:pack.

Para mais informações, consulte Criar um pacote NuGet usando MSBuild.

Publicar o pacote

Depois de criar um ficheiro .nupkg, siga os passos nas secções seguintes para o publicar na nuget.org. Pode usar a CLI .NET ou a CLI NuGet para publicar. Também usas uma chave API que adquires de nuget.org.

Note

  • Nuget.org analisa todos os pacotes carregados à procura de vírus e rejeita quaisquer pacotes que contenham vírus. Nuget.org também analisa periodicamente todos os pacotes listados existentes.

  • Os pacotes que publicas para nuget.org são publicamente visíveis para outros programadores, a menos que os deslistes. Para alojar pacotes de forma privada, consulte Hospedar os seus próprios feeds NuGet.

Adquira a sua chave API

Antes de publicar o seu pacote NuGet, crie uma chave de API:

  1. Inicie sessão na sua conta nuget.org ou crie uma conta se ainda não tiver uma.

  2. No canto superior direito, selecione o seu nome de utilizador e depois selecione Chaves API.

  3. Selecione Criar e depois introduza um nome para a sua chave.

  4. Em Selecione escopos, selecione Push.

  5. Em Select Packages, para Glob Pattern, insira um asterisco (*).

  6. Selecione Criar.

  7. Selecione Copiar para copiar a nova chave.

    Captura de ecrã de uma página nuget.org que mostra a nova chave da API, uma mensagem sobre copiar a chave agora e o botão Copiar, que está destacado.

Importante

  • Mantenha sempre a sua chave API em segredo. A chave API é como uma palavra-passe que qualquer pessoa pode usar para gerir pacotes em seu nome. Exclua ou regenere sua chave de API se ela for revelada acidentalmente.
  • Guarde a sua chave num local seguro, porque não pode copiá-la novamente mais tarde. Se você retornar à página de chave da API, precisará gerar novamente a chave para copiá-la. Você também pode remover a chave da API se não quiser mais enviar pacotes.

O scoping permite criar chaves de API separadas para diferentes fins. Cada chave tem um período de expiração, e podes atribuir a chave a pacotes específicos ou padrões de globos. Você também define o escopo de cada chave para operações específicas: envie novos pacotes e versões de pacotes, envie apenas novas versões de pacotes ou cancele a lista.

Por meio do escopo, você pode criar chaves de API para diferentes pessoas que gerenciam pacotes para sua organização, para que elas tenham apenas as permissões necessárias.

Para mais informações, consulte Chaves API Restringidas.

Publique usando a CLI .NET ou a CLI NuGet

Podes usar a CLI .NET ou a CLI NuGet para enviar um pacote para o servidor e publicá-lo. Vai ao separador da ferramenta que queres usar.

A CLI .NET (dotnet.exe) é a alternativa recomendada à CLI NuGet.

Na pasta que contém o arquivo .nupkg , execute o seguinte comando. Substitui <package-file> pelo nome do ficheiro .nupkg e substitui <API-key> pela tua chave API.

dotnet nuget push <package-file> --api-key <API-key> --source https://api.nuget.org/v3/index.json

A saída mostra os resultados do processo de publicação:

Pushing <package-file> to 'https://www.nuget.org/api/v2/package'...
  PUT https://www.nuget.org/api/v2/package/
  Created https://www.nuget.org/api/v2/package/ 2891ms
Your package was pushed.

Para obter mais informações, consulte dotnet nuget push.

Erros durante a publicação

Quando executas o push comando, por vezes encontras um erro. Por exemplo, pode receber um erro nas seguintes situações:

  • A tua chave API é inválida ou expirada.
  • Tentas publicar um pacote que tenha um identificador que já existe no host.
  • Fazes alterações a um pacote publicado, mas esqueces-te de atualizar o número de versão antes de tentares publicá-lo novamente.

A mensagem de erro indica tipicamente a origem do problema.

Por exemplo, suponha que o identificador Contoso.App.Logger.Test existe em nuget.org. Se tentar publicar um pacote com esse identificador, obtém o seguinte erro:

Response status code does not indicate success: 403 (The specified API key is invalid, has expired, or does not have permission to access the specified package.).

Para resolver esta situação, verifique o âmbito, a data de expiração e o valor da sua chave API. Se a chave for válida, o erro indica que o identificador do pacote já existe no host. Para ultrapassar o problema, altere o identificador do pacote para ser único, reconstrua o projeto, recrie o ficheiro .nupkg e tente novamente o push comando.

Gerir o pacote publicado

Quando o seu pacote é publicado com sucesso, recebe um email de confirmação. Para ver o pacote publicado, vá a nuget.org, selecione o seu nome de utilizador no canto superior direito e depois selecione Gerir Pacotes.

Note

Pode demorar algum tempo até o seu pacote ser indexado e aparecer nos resultados de pesquisa onde outros o possam encontrar. Durante esse tempo, a sua encomenda aparece em Pacotes Não Listados, e a página da encomenda mostra a seguinte mensagem:

Captura de ecrã de uma mensagem de aviso nuget.org sobre o pacote ainda não ter sido publicado. O texto afirma que a validação e a indexação podem demorar uma hora.

Agora que o seu pacote NuGet foi publicado em nuget.org, outros programadores podem usá-lo nos seus projetos.

Se criares um pacote que não é útil (como este pacote de exemplo de uma biblioteca de classes vazia), ou se não quiseres que o pacote seja visível, podes deslistar o pacote para o esconder dos resultados de pesquisa:

  1. Depois de o pacote aparecer em Pacotes Publicados na página Gerir Pacotes , selecione o ícone a lápis ao lado da lista de pacotes.

    Captura de ecrã da página nuget.org Pacotes. A secção de Pacotes Publicados lista um pacote. O ícone de edição está destacado.

  2. Na página seguinte, selecione Listagem, elimine a caixa Lista nos resultados de pesquisa e depois selecione Guardar.

    Captura de ecrã de uma página nuget.org. Na secção de Listagem, a opção para listar o pacote nos resultados de pesquisa está destacada.

O pacote agora aparece em Pacotes Não Listados em Gerir Pacotes e já não aparece nos resultados de pesquisa.

Note

Para evitar que o seu pacote de teste fique ativo no nuget.org, pode enviá-lo para o site de teste nuget.org em https://int.nugettest.org. Note que os pacotes carregados para o site de teste int.nugettest.org podem não ser preservados.

Adiciona um read-me ou outro ficheiro

Pode incluir um ficheiro read-me ou outros ficheiros no seu pacote.

Adicionar um ficheiro read-me

Para adicionar um ficheiro read-me ao pacote, siga os seguintes passos:

  1. Abra o ficheiro do projeto selecionando Project>Editar ficheiro do projeto.

  2. No ficheiro do projeto, vá ao PropertyGroup elemento e depois adicione um PackageReadmeFile elemento filho:

    <Project Sdk="Microsoft.NET.Sdk">
        <PropertyGroup>
            ...
            <PackageReadmeFile>readme.md</PackageReadmeFile>
            ...
        </PropertyGroup>
    </Project>
    
  3. Vai ao ItemGroup elemento e depois adiciona um None elemento filho:

    <Project Sdk="Microsoft.NET.Sdk">
        <PropertyGroup>
            ...
            <PackageReadmeFile>readme.md</PackageReadmeFile>
            ...
        </PropertyGroup>
    
        <ItemGroup>
            ...
            <None Include="readme.md" Pack="true" PackagePath="\" />
            ...
        </ItemGroup>
    </Project>
    

No exemplo anterior, a propriedade especifica um ficheiro chamado readme.md na raiz do projeto. Depois de compilar, embalar e publicar o seu pacote, nuget.org mostra o conteúdo do ficheiro read-me na página do pacote. O Visual Studio também mostra o conteúdo desse ficheiro na interface do Package Manager.

Por exemplo, a captura de ecrã seguinte mostra o ficheiro read-me do HtmlAgilityPack pacote:

Captura de ecrã da interface Visual Studio Package Manager que mostra um painel de detalhes do pacote. O separador README descreve as capacidades de análise HTML do pacote.

Adicionar outros ficheiros

Para adicionar outros ficheiros a um pacote, abra o ficheiro project selecionando Project>Editar Project Ficheiro. Depois adiciona um Content elemento filho ao ItemGroup elemento:

<ItemGroup>
  <Content Include="other-content.md">
    <Pack>true</Pack>
    <PackagePath>\</PackagePath>
  </Content>
</ItemGroup>

Para obter mais informações, consulte Incluindo conteúdo em um pacote.

Para vídeos sobre o uso do NuGet para gestão de pacotes, veja .NET Gestão de Pacotes com NuGet para Iniciantes e NuGet para Iniciantes.

Para saber como criar um pacote NuGet com o Visual Studio .NET Framework, consulte Criar um pacote usando a nuget.exe CLI.

Para obter mais informações sobre o NuGet, consulte os seguintes artigos: