Como instalo um arquivo .nupkg do pacote NuGet localmente?

Respostas:

462

Menu FerramentasOpçõesGerenciador de Pacotes

Digite a descrição da imagem aqui

Dê um nome e local da pasta. Clique OK. Solte os arquivos do pacote NuGet nessa pasta.

Vá para o seu projeto, clique com o botão direito do mouse e selecione "Gerenciar pacotes NuGet" e selecione sua nova fonte de pacotes.

Digite a descrição da imagem aqui

Aqui está a documentação .

Shyju
fonte
22
Na verdade, já dei o passo 1 algumas vezes. Mas meu pacote não está aparecendo na etapa 2, quando eu abro para exibir pacotes instalados, atualizações ou pacotes recentes.
Tom
2
Na minha tela, só tenho "Todos" em "Pacotes instalados", não a "fonte do pacote oficial do NuGet", não o meu "newNuget" personalizado, eles estão ausentes.
Tom
1
Estou usando o vs2010. Tentando baixar e instalar o nuget mais recente da página inicial agora. Baixe clique próximo próximo ... depois erro ... M $ conforme o esperado, há um link de problemas conhecidos, verifiquei que, diz incompatibilidade de assinatura, preciso desinstalar o nuget existente e é fácil corrigir. tudo bem, faça isso. Quando eu reinicio o computador e instalo novamente, o mesmo erro volta, incompatibilidade de assinatura ... então agora estou preso com a versão antiga, a nova versão não deseja instalar.
Tom
2
Problema resolvido. Eu desinstalei o nuget do windows -> painel de controle. Não foi assim que funcionou. Eu precisava iniciar o VS e entrar em Ferramentas-> Gerenciador de extensões ... e clicar em desinstalar o nuget a partir daí. Reiniciado VS. Então foi instalar o nuget novamente, funcionou. Agora, os arquivos nupkg locais também estão aparecendo (edite: eles estão na guia Online, não na guia Instalado, meu erro na imagem que eu publico). Obrigado pela ajuda :)
Tom
1
Ainda não tenho reputação suficiente para comentar - mas para responder a Michael nos comentários de resposta aceitos sobre o VS2015 ainda querendo ficar online. Eu tive o mesmo problema, mas nas opções, se você desmarcar todas as fontes online, ela funciona nas fontes offline. Opções de nuget pic
Mick m
302

Você também pode usar o Package Manager Console e chamar o Install-Packagecmdlet, especificando o caminho para o diretório que contém o arquivo do pacote no -Sourceparâmetro:

Install-Package SomePackage -Source C:\PathToThePackageDir\
Enrico Campidoglio
fonte
2
posso fazer algo assim com a ferramenta de linha de comando também?
Poul K. Sørensen
5
Sim. A -Sourceopção também está disponível no nuget.exe . Por exemplo:nuget install SomePackage -Source C:\PathToThePackageDir
Enrico Campidoglio
16
Pode ser necessário especificar o sinalizador -IncludePrerelease também. Caso contrário, se a versão do pacote tiver um sufixo-traço (por exemplo, "-beta1"), o Install-Package não o encontrará.
Jeff afiada
9
Esta é uma resposta muito mais direta do que a aceita. Obrigado pela informação!
18720 David
2
Não funciona para o VS 2017, consulte f.ex. Responder por @Granger.
precisa saber é o seguinte
124

Para arquivos .nupkg eu gosto de usar:

Install-Package C:\Path\To\Some\File.nupkg
Felix Alcala
fonte
7
A única coisa que funcionou. Se o caminho para o diretório contiver espaços, inclua-o entre aspas duplas.
Nikos #
4
Aceita. E vale a pena mencionar que somente caminhos trabalho absoluta
Sebastian J.
5
Não funciona para o VS 2017, consulte f.ex. Responder por @Granger.
RenniePet
1
@RenniePet que funcionou para mim no VS2017 (mas eu já tinha colocado a minha .nupkgsob o mesmo diretório todos os outros pacotes foram armazenados)
Rafalon
1
Não está funcionando para mim, estou usando a versão 12.0.21..5 do VS2013 e o gerenciador de pacotes Nuget 2.12.0.817 :(
Niraj Trivedi
56

Para o Visual Studio 2017 e seu novo formato .csproj

Você não pode mais usar o Install-Package para apontar para um arquivo local. (Provavelmente porque o PackageReferenceelemento não suporta caminhos de arquivo; apenas permite especificar o ID do pacote.)

Você primeiro precisa informar ao Visual Studio sobre o local do seu pacote e adicioná-lo a um projeto. O que a maioria das pessoas faz é acessar o NuGet Package Manager e adicionar a pasta local como fonte (menu FerramentasOpçõesNuGet Package ManagerFontes de Pacotes ). Mas isso significa que a localização da sua dependência não é confirmada (para controle de versão) com o restante da sua base de código.

Pacotes NuGet locais usando um caminho relativo

Isso adicionará uma fonte de pacote que se aplica apenas a uma solução específica e você pode usar caminhos relativos.

Você precisa criar um nuget.configarquivo no mesmo diretório que o seu .slnarquivo. Configure o arquivo com a (s) fonte (s) do pacote que você deseja. Quando você abrir a solução no Visual Studio 2017, todos os arquivos .nupkg dessas pastas de origem estarão disponíveis. (Você verá as fontes listadas no Gerenciador de Pacotes e encontrará os pacotes na guia "Procurar" ao gerenciar pacotes para um projeto.)

Aqui está um exemplo nuget.configpara você começar:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="MyLocalSharedSource" value="..\..\..\some\folder" />
    </packageSources>
</configuration>

História de fundo

Meu caso de uso para essa funcionalidade é que tenho várias instâncias de um único repositório de código em minha máquina. Há uma biblioteca compartilhada dentro da base de código que é publicada / implantada como um arquivo .nupkg. Essa abordagem permite que as várias soluções dependentes em nossa base de código usem o pacote na mesma instância do repositório. Além disso, alguém com uma nova instalação do Visual Studio 2017 pode fazer o check-out do código onde quiser, e as soluções dependentes serão restauradas e construídas com êxito.

Granger
fonte
Estou usando o VS 2017 e não encontrei esse problema. Acabei de passar a -Sourcediscussão Update-Packagee funcionou bem. Talvez algo a ver especificamente com o Install-Packagecomando?
precisa
48
  1. Adicione os arquivos a uma pasta chamada LocalPackages ao lado da sua solução (não precisa ser chamada assim, mas ajuste o xml na etapa a seguir).
  2. Crie um arquivo chamado NuGet.config ao lado do arquivo de solução com o seguinte conteúdo

    <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <add key="LocalPackages" value="./LocalPackages" />
        </packageSources>
        <activePackageSource>
          <!-- this tells that all of them are active -->
          <add key="All" value="(Aggregate source)" />
        </activePackageSource>
     </configuration>
  3. Se a solução estiver aberta no Visual Studio, feche-a e abra-a novamente.

Agora seus pacotes devem aparecer no navegador ou serem instaláveis ​​usando o Install-Package

Samuel Jack
fonte
Resposta fantástica, exatamente a solução que eu estava procurando. Obrigado!
Jonathan
1
Isso pode ser apenas porque eu tenho um pacote com o mesmo nome que um no repositório Nuget, mas eu precisava usar o Package Manager Console e selecionar a fonte do pacote como LocalPackages antes de executar o Install-Package.
Luke
42

Se você possui um arquivo .nupkg e precisa apenas do arquivo .dll, basta alterar a extensão para .zip e encontrar o diretório lib.

Marlon Cristian
fonte
3
se você o tratar como um arquivo zip, os arquivos com espaço no nome do arquivo serão extraídos com% (substituindo os espaços). Para evitar esta instalação usando o NuGet.
Rahatur
2
Na verdade, você nem precisa renomear a extensão. Apenas clique com o botão direito do mouse no arquivo, escolha Abrir com e encontre um aplicativo que possa abrir o arquivo .zip, e o arquivo .nupkg possa ser aberto, e você poderá extrair o arquivo dll necessário para a pasta designada.
jyao
1
Melhor solução que eu preciso #
Leo Nguyen
8

Apenas para atualizar, há pequenas alterações para os usuários do Visual Studio 2015.

Para usar ou instalar o pacote manualmente, vá em Ferramentas -> Opções -> Gerenciador de Pacotes NuGet -> Origens do pacote

Clique no botão Adicionar, escolha a fonte e não se esqueça de clicar em " Atualizar ", pois ele atualizará o local da pasta para seus pacotes, edite o nome desejado da fonte do pacote, se desejar:

insira a descrição da imagem aqui

Para escolher o seu pacote adicionado, clique com o botão direito do mouse na sua solução e selecione " Gerenciar pacotes Nuget "

A lista suspensa está à direita e escolha Procurar para procurar os pacotes que você especificou na origem da pasta. Se não houver pacote de nuget na origem da pasta, ele ficará vazio:

insira a descrição da imagem aqui

Willy David Jr
fonte
6

No Linux, com a NuGet CLI, os comandos são semelhantes. Para instalar o my.nupkg, execute

nuget add -Source some/directory my.nupkg

Em seguida, execute a dotnet restorepartir desse diretório

dotnet restore --source some/directory Project.sln

ou adicione esse diretório como uma fonte NuGet

nuget sources Add -Name MySource -Source some/directory

e então diga msbuildpara usar esse diretório com /p:RestoreAdditionalSources=MySourceou /p:RestoreSources=MySource. A segunda opção desativará todas as outras fontes, o que é bom para cenários offline, por exemplo.

user7610
fonte
1
No mac (estou assumindo o Linux também), você não pode confiar nuget sourcesse estiver usando dotnet restore(ou VS Mac ) por causa desse bug. Eu tive que adicionar a fonte local ~/.nuget/NuGet/NuGet.Configmanualmente (consulte esta questão GH ).
Gabe