Criar um pacote NuGet
Ao empacotar sua biblioteca de classes Razor, você tem uma entrega binária que pode ser referenciada por projetos Blazor e os componentes contidos nela 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ê atualizará esse projeto e gerará um pacote NuGet. Por fim, você implantará esse pacote NuGet em seu aplicativo de servidor Blazor.
Adicionar propriedades de pacote a FirstClassLibrary
Comece atualizando o projeto FirstClassLibrary com propriedades que permitirão que ele seja empacotado para implantação como um pacote NuGet.
Abra o arquivo do projeto MyClassLibrary clicando duas vezes nele no Gerenciador de Soluções do Visual Studio ou abrindo o arquivo MyClassLibrary.csproj no Visual Studio Code.
Próximo à parte superior do arquivo, na seção com a marca
<PropertyGroup>
, adicione o seguinte conteúdo antes da marca 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 contendo "My.FirstClassLibrary"
<PackageId>
e 0.1.0<Version>
. Insira seu próprio nome e o nome da empresa nesses dois campos.
Empacotar a biblioteca para reutilização
Agora execute o .NET na linha de comando para empacotar a biblioteca de classes Razor a fim de que outros aplicativos fora de sua solução possam fazer referência a ela.
Você pode executar essas mesmas etapas em seu processo de integração contínuo para empacotar uma biblioteca e implantá-la em NuGet.org, em um repositório GitHub ou em outro local para a sua organização compartilhar.
Na mesma pasta que o arquivo MyClassLibrary.csproj, execute o seguinte comando:
dotnet pack
Esse comando grava um arquivo chamado My.FirstClassLibrary.0.1.0.nupkg na pasta bin/Debug.
Adicionar uma referência ao pacote NuGet no aplicativo MyBlazorServer
Você já referenciou o projeto FirstClassLibrary no aplicativo MyBlazorServer, porque ele estava na mesma estrutura de pastas do aplicativo Web.
Agora, você desfará essa referência de projeto e adicionará uma referência ao pacote NuGet que criou anteriormente.
Essas etapas não são uma configuração típica. Projetos de biblioteca que residem nas mesmas pastas ou soluções que os aplicativos que desejam fazer referência a eles podem fazer referência ao projeto diretamente, como você viu no exercício anterior.
Abra o arquivo MyBlazorServer.csproj clicando duas vezes no nome do projeto MyBlazorServer no Visual Studio ou abrindo o arquivo no Visual Studio Code.
No arquivo MyBlazorServer.csproj, remova a seguinte linha:
<ProjectReference Include="..\FirstClassLibrary\FirstClassLibrary.csproj" />
Na mesma pasta de MyBlazorServer.csproj, execute o seguinte comando:
dotnet add package My.FirstClassLibrary -s ..\FirstClassLibrary\bin\Debug
Esse comando captura o pacote NuGet que você criou anteriormente, instala uma cópia no cache local de pacotes NuGet e adiciona uma referência a esse pacote no arquivo MyBlazorServer.csproj.
Verificar seu trabalho
O novo pacote foi instalado corretamente? Você consegue iniciar o aplicativo FirstServer e ver uma janela modal quando o aplicativo é aberto?
Vamos descobrir isso:
Inicie o aplicativo MyBlazorServer no Visual Studio selecionando F5 ou, na pasta MyBlazorServer, executando o seguinte comando:
dotnet run
No navegador, acesse a página inicial page do aplicativo MyBlazorServer:
https://localhost:5000
.A caixa de diálogo Meu primeiro Modal foi exibida? Se sim, parabéns! Você empacotou e implantou o projeto FirstClassLibrary corretamente com êxito. Aplicativos em todos os lugares agora podem usar seu componente de janela modal fazendo referência ao seu pacote NuGet recém-criado.