Empacotar uma biblioteca de classes do Razor
Uma tarefa que você costuma executar é de empacotamento de bibliotecas para reutilização por outros desenvolvedores. O empacotamento do NuGet torna trivial para qualquer desenvolvedor em praticamente qualquer lugar adquirir e configurar adequadamente todas as referências .NET para seus aplicativos.
Na unidade anterior, você criou seu componente de caixa de diálogo modal e o utilizou em seu próprio aplicativo. Agora você o reutilizará em outros aplicativos.
Nesta unidade, você aprenderá as etapas necessárias para configurar uma biblioteca de classes do Razor como um pacote NuGet. Você também aprenderá como empacotar a biblioteca para distribuição usando um serviço de repositório de pacotes, como NuGet.org ou repositórios do GitHub.
Configurar uma biblioteca de classes do Razor para pacotes NuGet
O ecossistema .NET facilita a definição das propriedades necessárias para que outros desenvolvedores identifiquem e usem seus componentes. Você pode definir todas essas propriedades no arquivo de projeto (*.csproj) de sua biblioteca de classes Razor para que elas viajem e sejam atualizadas adequadamente após a atualização da biblioteca.
Você pode configurar campos que identifiquem seu pacote na caixa de diálogo Propriedades do Projeto – Pacote do Visual Studio ou pode criar entradas diretamente no arquivo *.csproj.
Os quatro campos necessários para criar um pacote são:
Campo | Descrição | Valor padrão |
---|---|---|
PackageId | Um identificador de pacote, exclusivo em todo o repositório NuGet. | AssemblyName da biblioteca |
Versão | Um número de versão específico no formato Major.Minor.Patch[-Suffix], em que -Suffix define, opcionalmente, as versões de pré-lançamento. | 1.0.0 |
Autores | Os autores do pacote. | AssemblyName |
Empresa | O nome da empresa responsável por criar e publicar o pacote. | AssemblyName |
Alguns desses campos têm valores padrão e pode parecer estranho publicar um pacote com o nome de empresa MyFirstLibrary. Recomendamos a definição explícita desses valores.
Na unidade anterior, você aprendeu que o conteúdo estático de uma biblioteca de classes Razor está disponível em _content/[PACKAGE_ID]/
, e agora você sabe onde o valor PackageId
é configurado.
Um exemplo de arquivo de projeto com esses valores configurados pode ter a seguinte aparência:
<PropertyGroup>
<PackageId>Learn.MyFirstLibrary</PackageId>
<Version>0.1.0-alpha1</Version>
<Authors>Susan Developer, Terry Programmer</Authors>
<Company>AdventureWorks</Company>
</PropertyGroup>
Ao compilar o projeto, você também pode configurá-lo para gerar um pacote NuGet selecionando a opção Gerar pacote NuGet na compilação na caixa de diálogo Propriedades do Projeto do Visual Studio ou adicionando uma entrada GeneratePackageOnBuild
ao lado dos outros campos do pacote, conforme mostrado aqui:
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
Você pode configurar muitas propriedades de projeto opcionais, incluindo:
- Um
Description
que é apropriado para exibição no repositório NuGet - Uma notificação de direitos autorais
- Informações de licenciamento
- Ícones
- URLs de Projeto
Para obter uma lista completa das propriedades, confira a documentação da Microsoft no Destino do pacote do MSBuild.
Empacotar a biblioteca
Depois de gravar a configuração da biblioteca no arquivo *.csproj, você pode gerar o pacote NuGet no Visual Studio clicando com o botão direito do mouse no projeto e selecionando o comando Pacote, ou na pasta do projeto, executando o seguinte comando:
dotnet pack
Esse comando dotnet pack
gera um pacote com o PackageID e o número da versão e o coloca na pasta de saída de compilação do projeto padrão.