Antes de existir o NuGet, e para adicionar um biblioteca a um projeto, era necessário fazer download dos ficheiros necessários para que esta pudesse ser utilizada com sucesso. Dependendo da biblioteca, poderia ser só colocar os ficheiros em alguma pasta especifica ou poderia ser o adicionar uma ou mais referências a ficheiros dll. Quando se pretendia fazer a atualização de uma biblioteca para uma versão mais atual, era necessário saber quais os ficheiros/referências a alterar/remover/adicionar.
Com o NuGet, esta tarefa, por vezes complexa e enfadonha, tornou-se numa operação muito simples.
O que é o NuGet
O NuGet é uma extensão do Visual Studio para gerir a instalação de bibliotecas e ferramentas.
Ao instalar um pacote via NuGet, este vai atualizar o projeto, gerindo todas as referências e dependências entre pacotes, e copiando os ficheiros para as pastas corretas. O NuGet também permite, de uma forma muito simples, verificar se existem novas versões de um pacote previamente instalados e proceder à sua atualização. Também torna possível desinstalar um pacote, removendo as referências e ficheiros sem quebrar o código.
Outra grande vantagem é a possibilidade de qualquer pessoa poder criar pacotes e partilhá-los na galeria do NuGet.
Desde a versão 2012 do Visual Studio que o NuGet faz parte integrante do seu IDE. Os novos projetos criados nesta versão também já têm as bibliotecas instaladas com o NuGet, sendo assim muito fácil de geri-las.
Adicionar um pacote
Existem 2 formas de adicionar um pacote a um projeto. A primeira é uma forma gráfica e para tal, basta aceder ao menu
Tools > Library Package Manager > Manage Nuget Package for Solution…
Ao clicar nesta opção vai aparecer uma janela para gestão de pacotes, estando esta dividida em 3 áreas:
- do lado esquerdo, pode-se definir se é pretendido ver os pacotes instalados, os pacotes que se encontram online para instalar e as atualizações a pacotes instalados;
- ao centro, pode-se ver a lista de pacotes (consoante o que foi selecionado no lado esquerdo: instalados, online e para atualização);
- do lado direito, encontra-se uma caixa de pesquisa por nome de pacote e por baixo uma área que mostra, ao selecionar um pacote da lista, os detalhes do pacote.
Por exemplo, se for pretendido instalar o pacote
Unity para
MVC4, seleciona-se Online no lado esquerdo, e no lado direito, escreve-se
Unity na caixa de pesquisa. Na lista de pacotes vão aparecer todos os que correspondem a este critério de pesquisa. Depois de selecionar o pacote correto (
Unity.MVC), clica-se em
Install.
Aparecerá uma janela para especificar em que projeto (ou projetos) é que se pretender instalar o pacote. De seguida, o NuGet vai começar a copiar ficheiros e adicionar as referências necessárias.
A segunda forma de adicionar um pacote é através da consola de gestão de pacotes. Para abrir a consola, clica-se em T
ools > Library Package Manager > Package Manager Console.
Depois de aberta a consola e, para instalar o pacote do exemplo anterior, só é necessário escrever o comando
Install-Package Unity.MVC4
Ao fazer Enter o pacote começa a ser instalado, ficando logo o Unity para MVC 4 pronto para ser utilizador.
Atualizar um pacote
Para atualizar um pacote, para a versão mais atual, basta abrir o modo gráfico da gestão de pacotes e, do lado esquerdo escolher
Updates. Depois, pode-se clicar
Update All, que aparece na lista de pacotes, para que se atualize tudo o que está instalado ou, no caso de se querer só atualizar um pacote, seleciona-se o pacote em questão e clica-se no botão
Update.
Também é possível fazer o mesmo, utilizando a consola e o comando
Update-Package jQuery
Desinstalar um Pacote
Através do modo gráfico, seleciona-se, do lado esquerdo,
Installed packages e depois de selecionar o pacote que se pretende desinstalar, clica-se no botão
Uninstall.
O mesmo objetivo pode ser atingido, executando, através da consola, o comando
Uninstall-Package Unity.MVC4
Restaurar pacotes durante a compilação
Quando se utiliza o NuGet, os ficheiros dos pacotes instalados são adicionados na pasta
packages que está ao mesmo nível que o ficheiro da solução. Dependendo do número de pacotes instalados , esta página pode ser bastante pesada.
Para que a partilha de soluções bem como para a utilização de software de source control, é de todo o interesse que a pasta
packages não seja considerada. Mas o Visual Studio tem de restaurar todos os pacotes aquando da compilação, caso contrário não encontra os ficheiros nas referências. Para tal, basta clicar na opção de menu
Enable NuGet Package Restore que se encontra no menu
Project.
Depois de se permitir que esta opção seja habilitada, será criado uma nova pasta na solução. Quando se executar um
Build, vai ser garantido que a pasta
packages existe e que todos os ficheiros dos pacotes instalados se encontram nessa pasta, fazendo com que a compilação ocorra sem erros de referências.