Eu gostaria de saber
No projeto C # ou VB.NET, devemos incluir a pasta PACKAGE (pasta nugget package criada para a raiz do meu projeto que contém os arquivos nupkg e outro conteúdo) em nosso repositório de controle de origem (Git, por exemplo).
Eu gostaria de saber
No projeto C # ou VB.NET, devemos incluir a pasta PACKAGE (pasta nugget package criada para a raiz do meu projeto que contém os arquivos nupkg e outro conteúdo) em nosso repositório de controle de origem (Git, por exemplo).
Respostas:
Muito tempo se passou, e o NuGet mudou, então aqui está uma nova resposta.
O NuGet não cria mais uma pasta de pacotes dentro da sua estrutura de origem. Em vez disso, existe um no diretório do usuário ( %HOME%\.nuget\packages
para ser específico) em que ele coloca todos os pacotes baixados e os projetos apenas os referenciam.
Portanto, a resposta simples hoje em dia é não, você não deveria. Se você está preocupado com os pacotes que precisam desaparecer, crie um espelho local do NuGet para fazer backup separadamente.
Depende.
Confira a resposta de Bart van Ingen Schenau para determinar se é possível ignorar a packages
pasta.
Basicamente: sim, o NuGet foi projetado para que você possa ignorar a packages
pasta e o NuGet extrairá tudo da Internet, se estiver ausente.
Mas você deveria ignorá-lo? Eu digo: depende.
Na IMO, é uma questão de "podemos continuar trabalhando caso o repositório de pacotes não esteja disponível" (seja temporário ou permanentemente)
Para meus projetos pessoais de OSS, tenho a packages
pasta ignorada em todos eles.
Quando o nuget.org estiver offline, esperarei e continuarei outro dia.
Mas é algo diferente no trabalho.
Certamente, você provavelmente ainda possui os pacotes localmente em alguma máquina, mas está economizando algum espaço que vale a pena quando suas compilações estão sendo interrompidas porque o servidor de compilação não pode acessar o nuget.org?
Decidimos que o espaço é barato e não queremos problemas, é por isso que estamos comprometendo a packages
pasta com o controle de origem.
A regra básica para o que entra em um repositório de controle de origem é que você armazene 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ê pode jogar fora a pasta PACKAGE e seu conteúdo sem afetar sua capacidade de continuar trabalhando no projeto (a compilação pode demorar mais, mas você não precisa procurar e instalar nada), a pasta pode ser deixado de fora do repositório com segurança.
Se a pasta contiver pacotes de terceiros que podem demorar muito para serem baixados ou ficarem indisponíveis, isso pode ser um motivo para adicioná-los ao seu repositório de qualquer maneira.