Empacotar uma biblioteca de classes do Razor
- 3 minutos
Uma tarefa que muitas vezes você precisa executar é empacotar bibliotecas para reutilização por outros desenvolvedores. O empacotamento NuGet torna trivial para qualquer desenvolvedor em qualquer lugar adquirir e configurar corretamente todas as referências .NET para seus aplicativos.
Na unidade anterior, você criou seu componente de diálogo modal e o usou em seu próprio aplicativo. Agora você quer reutilizá-lo 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 aprende a empacotar a biblioteca para distribuição usando um serviço de repositório de pacotes, como NuGet.org ou repositórios GitHub.
Configurar uma biblioteca de classes do Razor para empacotar no 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) da sua biblioteca de classes do Razor para que elas viajem com a biblioteca. As propriedades são então atualizadas automaticamente quando a sua biblioteca é atualizada.
Você pode configurar campos que identificam seu pacote na caixa de diálogo Visual Studio Project Properties - Package ou você mesmo pode criar entradas diretamente no arquivo de *.csproj.
Os quatro campos necessários para criar um pacote são:
| Campo | Descrição | Valor padrão |
|---|---|---|
| Identidade do Pacote | 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], onde -Suffix opcionalmente define as versões de pré-lançamento. | 1.0.0 |
| Autores | Os autores do pacote. | AssemblyName |
| Companhia | O nome da empresa responsável pela criação e publicação do pacote. | AssemblyName |
Alguns desses campos têm valores padrão, e pode parecer engraçado publicar um pacote com o nome da empresa de MyFirstLibrary. É altamente recomendável que você defina explicitamente esses valores.
Na unidade anterior, você aprendeu que o conteúdo estático de uma biblioteca de classes do Razor está disponível em _content/[PACKAGE_ID]/e agora você vê onde o valor PackageId está configurado.
Um arquivo de projeto de exemplo com esses valores configurados pode se parecer com o exemplo a seguir:
<PropertyGroup>
<PackageId>Learn.MyFirstLibrary</PackageId>
<Version>0.1.0-alpha1</Version>
<Authors>Susan Developer, Terry Programmer</Authors>
<Company>AdventureWorks</Company>
</PropertyGroup>
Ao criar 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 GeneratePackageOnBuild entrada ao lado dos outros campos do pacote, conforme mostrado aqui:
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
Você pode configurar muitas propriedades opcionais do projeto, incluindo:
- Um
Descriptionapropriado para exibição no repositório NuGet - Uma declaração de direitos de autor
- Informações sobre licenciamento
- Ícones
- URLs do projeto
Para obter uma lista completa de propriedades, consulte a documentação da Microsoft sobre o alvo do pacote 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 Pack , ou na pasta do projeto, executando o seguinte comando:
dotnet pack
Este 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.