LogoNuget

Disponibilizado pela Microsoft a partir do Visual Studio 2010, o NuGet é uma ferramenta que tem por objetivo principal simplificar o gerenciamento das bibliotecas e frameworks dos quais uma solução depende. Tais itens são manipulados pelo NuGet sob a forma de pacotes, com este utilitário oferecendo funcionalidades que permitem localizar, instalar ou, até mesmo, atualizar os recursos utilizados por um projeto.

Diante do exposto, são os inegáveis os benefícios e vantagens decorrentes do uso do NuGet no desenvolvimento de soluções na plataforma .NET. No entanto, muitos desenvolvedores são unânimes em apontar uma dificuldade bastante comum na interação com esta ferramenta: a instalação de pacotes costuma gerar um grande número de arquivos, aumentando consideravelmente o espaço ocupado pelos fontes de uma aplicação no repositório em que a mesma se encontra armazenada.

No caso específico do Visual Studio 2013, os pacotes que integram uma solução estão localizados em uma pasta chamada “packages”. Este diretório é criado automaticamente pelo NuGet, sendo que na Imagem 1 é possível observar a grande quantidade de dependências geradas em uma aplicação baseada na versão 5.1.2 do ASP.NET MVC.

Os pacotes deste simples projeto ocupam em torno de 15 MB, algo que poderia induzir um desenvolvedor menos desavisado a proceder com a exclusão da pasta package. Se este fosse o caso, erros aconteceriam durante a tentativa de compilação da aplicação considerada. É possível, no entanto, economizar o espaço ocupado pelos diferentes pacotes de um projeto, através do uso de um mecanismo que permite restaurar automaticamente as dependências não encontradas. Isto será demonstrado, de uma forma extremamente simples, através de ajustes descritos na próxima seção deste artigo.

Imagem01
Imagem 1. Dependências de uma aplicação ASP.NET MVC

Habilitando o NuGet para baixar automaticamente packages não encontrados

O primeiro passo para permitir que o NuGet baixe automaticamente packages faltantes envolve, basicamente, a realização de um ajuste no próprio ambiente de desenvolvimento do Visual Studio. Para habilitar este tipo de comportamento acessar dentro da IDE do Visual Studio 2013 o menu “Tools”, opção “Options” (Imagem 2).

Imagem02
Imagem 2. Acessando a opção “Options” no menu “Tools”

Aparecerá então a janela “Options”. Selecionar o item “NuGet Package Manager” e, em seguida, o subitem “General”. Certificar-se de que as opções “Allow NuGet to download missing packages” e “Automatically check for missing packages during build in Visual Studio” estão marcadas (Imagem 3).

nuget-imagem03
Imagem 3. Habilitando no Visual Studio o download automático de packages não encontrados

As soluções em que se fará necessário o restore automático de packages também precisam passar por ajustes. No caso da Solution apresentada aqui, tal procedimento poderá ser realizado acionando a opção “Enable NuGet Package Restore”, a partir do menu de contexto da janela “Solution Explorer” (Imagem 4). Será exibida então uma tela, na qual deverá ser confirmada esta modificação (Imagem 5).

Imagem04
Imagem 4. Habilitando uma Solution para o download automático de packages não encontrados

Imagem05
Imagem 5. Confirmando o ajuste para o download automático de packages não encontrados em uma Solution

Com o restore habilitado, uma pasta chamada “.nuget” será criada no diretório-raiz da Solution (Imagem 6). A pasta packages poderá neste momento ser excluída sem maiores consequências. Uma simples recompilação da solução fará com que todos os pacotes sejam carregados automaticamente, como indicado na Imagem 7.

Imagem06
Imagem 6. Pasta .nuget criada após ajustes na Solution

Imagem07
Imagem 7. Restauração de pacotes durante a compilação da aplicação

Com isto concluo este post a respeito do desenvolvimento na plataforma .NET a partir do Visual Studio. Espero que esta dica possa ser útil no seu dia-a-dia. Até uma próxima oportunidade!

Links

NuGet
https://www.nuget.org/

Gerenciando dependências em projetos .NET com a extensão NuGet
http://www.devmedia.com.br/gerenciando-dependencias-em-projetos-net-com-a-extensao-nuget/28196

Renato Groffe

Atua como consultor em atividades voltadas ao desenvolvimento de softwares há mais de 13 anos. Bacharel em Sistemas de Informação, com especialização em Engenharia de Software. Microsoft Certified Technology Specialist (Web, WCF, Distributed Applications, ADO.NET, Windows Forms), Microsoft Specialist (HTML5 with JavaScript and CSS3, Developing ASP.NET MVC 4 Web Applications), Oracle Certified Associate (PL/SQL), Sun Certified (SCJP, SCWCD), ITIL Foundation V2, Cobit 4.1 Foundation.

Facebook Google+ 

Comentários

comentarios