Devemos incluir a pasta Nuget PACKAGE no controle de versão?

56

Eu gostaria de saber

No projeto C # ou VB.NET devemos incluir a pasta PACKAGE (pasta do pacote nugget que é criada para a raiz do meu projeto que contém os arquivos nupkg e outros conteúdos) em nosso repositório de controle de origem (Git por exemplo). / p>     

por Bastien Vandamme 03.11.2015 / 07:44
fonte

3 respostas

23

Passou muito tempo e o NuGet mudou, por isso aqui está uma nova resposta.

O NuGet não cria mais uma pasta de pacotes dentro de sua estrutura de origem. Em vez disso, há um em seu diretório de usuários ( %HOME%\.nuget\packages para ser específico), onde ele coloca todos os pacotes que ele baixa, e os projetos apenas fazem referência a eles.

Então a resposta simples hoje em dia é não, você não deveria. Se você está preocupado com pacotes que você precisa desaparecer, você deve criar um espelho NuGet local que você faça backup separadamente.

    
por 10.03.2017 / 10:50
fonte
43

Depende.

Confira a resposta de Bart van Ingen Schenau para determinar se é possível ignorar a pasta packages .

Basicamente: sim, o NuGet foi projetado para que você possa ignorar a pasta packages e o NuGet removerá tudo da Internet, se estiver faltando.

Mas você deveria ignorar isso? Eu digo: depende.
IMO é uma questão de "podemos continuar trabalhando no caso do repositório de pacotes não estar disponível" (seja temporariamente ou permanentemente)

Para meus projetos OSS pessoais, tenho a pasta packages ignorada em todos eles.
Quando o nuget.org estiver offline, vou apenas esperar e continuar outro dia.

Mas é algo diferente no trabalho.
Claro, você provavelmente ainda tem os pacotes localmente em alguma máquina, mas está economizando algum espaço que vale a pena quando seus builds estão quebrando porque o seu servidor de construção não pode acessar o nuget.org?

Decidimos que o espaço é barato e não queremos o incômodo, é por isso que estamos comprometendo a pasta packages no controle de origem.

    
por 03.11.2015 / 23:45
fonte
24

A regra básica para o que entra em um repositório de controle de origem é que você armazena lá tudo relacionado a um projeto que você precisa para construir, testar, implantar e executar o projeto e que não pode ser gerado a partir de itens já presentes no repositório.

Em outras palavras, se você puder jogar fora a pasta PACKAGE e seu conteúdo sem afetar sua capacidade de continuar trabalhando no projeto (a compilação pode levar mais tempo, mas você não precisa procurar e instalar nada), então a pasta pode ser deixada com segurança fora do repositório.
Se a pasta contiver pacotes de terceiros que podem levar muito tempo para serem baixados ou que podem se tornar indisponíveis, isso pode ser um motivo para adicioná-los ao seu repositório de qualquer maneira.

    
por 03.11.2015 / 08:40
fonte