Invista no exterior sem taxas com a Nomad

Criando pacotes NuGet Multi-Targeting

1.514

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

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

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

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

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

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

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!

Os comentários estão fechados, mas trackbacks E pingbacks estão abertos.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More

Sair da versão mobile