Criar um pacote NuGet

Concluído

Ao empacotar sua biblioteca de classes Razor, você tem um arquivo 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 em que outros desenvolvedores possam adquiri-lo.

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

Adicionar propriedades de pacote ao 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 do 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. Próximo ao topo do arquivo, na seção com a tag <PropertyGroup>, adicione o seguinte conteúdo antes da tag de fechamento </PropertyGroup>:

        <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>
    

    Esse código define sua biblioteca de classes razor como tendo <PackageId> "My.FirstClassLibrary" e <Version> 0.1.0. Insira seu próprio nome e 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 solução possam referenciá-lo.

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

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

dotnet pack

Esse comando grava um arquivo chamado My.FirstClassLibrary.0.1.0.nupkg na 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, pois ele estava na mesma estrutura de pastas que o aplicativo Web.

Agora, desfaça essa referência de projeto e adicione uma referência ao pacote NuGet criado anteriormente.

As seguintes etapas não descrevem uma configuração típica. Projetos de biblioteca que residem nas mesmas pastas ou solução que os aplicativos que desejam referenciá-los podem referenciar o 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
    

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

Verifique seu trabalho

O 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 navegador, vá para a home page do aplicativo MyBlazorApp: https://localhost:5000.

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