Criar um pacote NuGet

Concluído

Quando você empacota sua biblioteca de classes Razor, você tem um produto binário que outros projetos Blazor podem referenciar e os componentes dentro dele podem ser usados nesses projetos.

Em uma unidade anterior, você criou uma biblioteca de classes Razor com um componente modal que fornece uma janela de diálogo modal para aplicativos Blazor. Para compartilhar esse componente para uso em outros aplicativos, você precisa empacotá-lo e colocá-lo em um repositório ou em uma pasta onde outros desenvolvedores possam adquiri-lo.

Nesta unidade, você atualiza esse projeto e gera um pacote NuGet. Finalmente, você implanta esse pacote NuGet em seu aplicativo de servidor Blazor.

Adicionar propriedades de pacote a FirstClassLibrary

Comece atualizando o projeto FirstClassLibrary com propriedades que permitem que ele seja empacotado para implantação como um pacote NuGet.

  1. Abra o arquivo de projeto para o projeto FirstClassLibrary . Clique duas vezes no projeto no Gerenciador de Soluções do Visual Studio ou abra o arquivo FirstClassLibrary.csproj no Visual Studio Code.

  2. Perto da parte superior do arquivo, na seção com a tag <PropertyGroup>, adicione o seguinte conteúdo antes da tag </PropertyGroup> de fechamento:

        <PackageId>My.FirstClassLibrary</PackageId>
        <Version>0.1.0</Version>
        <Authors>YOUR NAME</Authors>
        <Company>YOUR COMPANY NAME</Company>
        <Description>This is a Razor component library with a cool modal window component.</Description>
      </PropertyGroup>
    

    Este código define sua biblioteca de classes Razor como tendo <PackageId> "My.FirstClassLibrary" e <Version> 0.1.0. Introduza o seu próprio nome e o nome da empresa nesses dois campos.

Empacotar a biblioteca para reutilização

Em seguida, execute o comando .NET na linha de comando para empacotar a biblioteca de classes Razor para que outros aplicativos fora da sua solução possam fazer referência a ela.

Você pode executar essas mesmas etapas em seu processo de integração contínua para empacotar uma biblioteca e implantá-la no NuGet.org, em um repositório GitHub ou em outro local para sua organização compartilhar.

Na mesma pasta que o arquivo FirstClassLibrary.csproj , execute o seguinte comando:

dotnet pack

Este comando grava um arquivo chamado My.FirstClassLibrary.0.1.0.nupkg em sua pasta bin/Release .

Adicionar uma referência ao pacote NuGet no aplicativo MyBlazorApp

Você já fez referência ao projeto FirstClassLibrary em seu aplicativo MyBlazorApp, porque ele estava na mesma estrutura de pastas que o aplicativo Web.

Agora, você desfaz essa referência de projeto e adiciona uma referência ao pacote NuGet criado anteriormente.

As seguintes etapas não descrevem uma configuração típica. Os projetos de biblioteca que residem nas mesmas pastas ou solução que os aplicativos que desejam fazer referência a eles podem fazer referência ao projeto diretamente, como você viu no exercício anterior.

  1. Abra o arquivo MyBlazorApp.csproj clicando duas vezes no nome do projeto MyBlazorApp no Visual Studio ou abrindo o arquivo no Visual Studio Code.

  2. No arquivo MyBlazorApp.csproj , remova a seguinte linha:

    <ProjectReference Include="..\FirstClassLibrary\FirstClassLibrary.csproj" />

  3. Na mesma pasta que MyBlazorApp.csproj, execute o seguinte comando:

    dotnet add package My.FirstClassLibrary -s ../FirstClassLibrary/bin/Release
    

    Este comando pega o pacote NuGet que você criou anteriormente, instala uma cópia no cache de pacote NuGet local e adiciona uma referência a esse pacote no arquivo MyBlazorApp.csproj .

Verifique o seu trabalho

Seu novo pacote foi instalado corretamente? Você pode iniciar o aplicativo FirstServer e ver uma janela modal quando o aplicativo é iniciado?

Vamos descobrir:

  1. Inicie o aplicativo MyBlazorApp no Visual Studio, selecionando F5 ou na pasta MyBlazorApp, executando o seguinte comando:

    dotnet run

  2. No seu navegador, vá para a página inicial do aplicativo MyBlazorApp: https://localhost:5000.

    A caixa de diálogo Meu primeiro Modal é exibida? Se sim, parabéns! Você empacotou e implantou com êxito o projeto FirstClassLibrary corretamente. Aplicativos em todos os lugares agora podem usar seu componente de janela modal fazendo referência ao seu pacote NuGet recém-criado.