Criando pacotes NuGet Multi-Targeting

0 16

Com a evolução da plataforma .NET da Microsoft, se fez necessário prover uma forma de entregar pacotes NuGet que suportem as várias versões disponíveis.

Conhecer e saber utilizar estratégias efetivas para migração e/ou atualização de um sistema, pode ser uma mão na roda. Pensando nisso, a Microsoft introduziu no Visual Studio a possibilidade de criarmos pacotes multi-targeting.

Imagine um cenário onde a mesma biblioteca, distribuída via NuGet, é usada por vários projetos e, que, realizar a atualização de todos ao mesmo tempo é arriscado e custoso.

Como resolver esse impasse? Pacotes multi-targeting.

Assim, podemos criar um pacote contendo os assemblies para mais de uma plataforma (4.5.1, 4.7.2, Core…), mantendo a consistência de vários projetos e, possibilitando uma migração gradativa.

Como configurar o projeto de pacotes multi-targeting

Inicialmente, precisaremos criar um projeto .NET Standard no Visual Studio (VS).

Projeto multi-targeting
Projeto .NET Standard multi-targeting

Após a criado, podemos observar que o projeto possui apenas dependências para o .NET Standard.

Dependências do projeto multi-targeting
Dependências do projeto multi-targeting

Assim, para contemplarmos outros targets, faremos uma pequena alteração no .csproj, modificando a tag TargetFramework para TargetFrameworks e, adicionando as plataformas desejadas.

Alteração dos target frameworks no csproj
Alteração dos target frameworks no csproj

Em seguida, ao voltarmos para o VS, veremos que ele alterou as dependências de acordo com a configuração feita.

Projeto multi-targeting com novas dependências-configuradas
Projeto multi-targeting com novas dependências-configuradas

Abaixo vemos que o projeto não permite especificar um target dada as modificações que fizemos.

Projeto sem target específico
Projeto sem target específico

Na sequência, mudaremos mais uma configuração, ativar a geração dos pacotes durante o build.

Projeto com geração de pacotes no build
Projeto com geração de pacotes no build

Agora vamos “buildar” a aplicação e teremos o seguinte na sua pasta bin.

Projeto multi-targeting pacote criado nas plataformas configuradas
Projeto multi-targeting pacote criado nas plataformas configuradas

Conclusão

Conforme vimos, é bastante simples realizar a configuração de uma biblioteca multi-targeting.

Apesar dessa solução ser bastante útil, ela não é uma bala de prata, podendo não se aplicar a alguns cenários.

Deixe seus comentários abaixo, ficarei feliz em responder. Até a próxima!

Deixe uma resposta

Seu endereço de email não será publicado.