Como habilito a Restauração de Pacotes NuGet no Visual Studio?


272

Há uma postagem semelhante na pilha, mas isso não ajuda no meu problema, possivelmente porque estou usando o Visual Studio 2015.

Como faço para que a opção "Ativar restauração do pacote NuGet" apareça no VS2015?

Eu escolhi Arquivo> Novo Projeto e criei um Aplicativo Web ASP.NET vazio . Estou procurando esta opção de menu.

insira a descrição da imagem aqui

Devo mencionar que procurei arquivos nuGet pré-existentes na minha pasta do projeto e não há nenhum.


4
Verifique se você está tentando fazer isso na sua solução e não no projeto da Web. Por padrão, a solução não é exibido quando há apenas um projeto
— JConstantine

1
Sim, esse é definitivamente um erro fácil de cometer, mas verifiquei a solução, acho que pode estar relacionada a 2015. A opção Ativar está disponível no VS2013 quando sigo as mesmas etapas.
— Dan Beaulieu

2
O mesmo aqui. Até tentei excluir a pasta .nuget, que reativa a opção Ativar restauração do pacote NuGet no VS 2013, mas ainda não há dados. Estou tentando abrir um aplicativo existente MVC que foi criado em VS 2013.
— Vinney Kelly

4
@justanotherdev Seria útil se você fornecesse uma referência ao novo fluxo de trabalho para tornar seu comentário um pouco mais produtivo.
— Avantprime

1
Eu não vi o artigo de David Ebbo referenciado por oligofren, então apenas abri os arquivos sln & csproj no Notepad ++ e excluí as seções que ele ilustrou. Eu tinha a solução aberta no VS2015 e, depois de salvar os arquivos, o VS solicitou que eu os recarregasse e minhas referências de solução agora estão boas e minha solução é compilada. Muito obrigado, Vinney!
— Rich Ward

Respostas:


248

Demorou muito tempo, mas finalmente encontrei este documento sobre a migração de soluções integradas ao MSBuild para a restauração automática de pacotes e consegui resolver o problema usando os métodos descritos aqui.

  1. Remova o '.nuget'diretório da solução junto da solução
  2. Remova todas as referências nuget.targetsdos seus arquivos .csprojou .vbproj. Embora não seja oficialmente suportado, o documento é vinculado a um script do PowerShell se você tiver muitos projetos que precisam ser limpos. Eu editei manualmente o meu manualmente, para que eu não possa dar nenhum feedback sobre minha experiência com ele.

Ao editar seus arquivos manualmente, eis o que você estará procurando:

Arquivo de solução (.sln)

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F4AEBB8B-A367-424E-8B14-F611C9667A85}"
ProjectSection(SolutionItems) = preProject
    .nuget\NuGet.Config = .nuget\NuGet.Config
    .nuget\NuGet.exe = .nuget\NuGet.exe
    .nuget\NuGet.targets = .nuget\NuGet.targets
EndProjectSection
EndProject

Arquivo de projeto (.csproj / .vbproj)

  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
  </Target>

3
Estou totalmente faltando alguma coisa aqui. Quando uso esse método, recebo um monte de pacotes instalados em todas as soluções que tenho. Eu tenho uma solução com 10 pacotes e outra solução com exatamente os mesmos pacotes: dois diretórios diferentes são criados, cada um contendo os 10 pacotes. Usando esse método, como você consolida todos os seus pacotes em um único diretório (como o antigo método VS2013 permite ao editar o arquivo NuGet.Config)?
— Quarkly 3/08/15

Não encontra uma pasta .nuget? Vá verificar as soluções sobre a exclusão de pastas na pasta packages. É possível que seu pacote esteja meio restaurado e esse lixo esteja impedindo a restauração total.
— 5135 Greg Greg

De fato, essa era a solução. Além disso, adicionei "restauração de nuget" antes de começar a compilar o projeto. Os pacotes nuget são baixados automaticamente e a construção do projeto funciona bem depois disso.
— TarmoPikaro

5
Para economizar um pouco de tempo, o script a ser executado no repositório GitHub mencionado por @VinneyKelly é migrateToAutomaticPackageRestore.ps1, sua mágica, funciona!
— Riga

60

A Microsoft abandonou o suporte à 'Ativar restauração do pacote NuGet' no VS2015 e você precisa fazer algumas alterações manuais para migrar soluções antigas ou adicionar o recurso a novas soluções. O novo recurso é descrito muito bem no NuGet Package Restore .

Há também um guia de migração para projetos existentes (como mencionado anteriormente) aqui: Guia de Migração do NuGet

Ao atualizar:

  1. não exclua o diretório .nuget.
  2. Exclua os arquivos nuget.exe e nuget.targets.
  3. Deixe o nuget.config.
  4. Limpe manualmente cada um dos arquivos do projeto de qualquer referência aos destinos do NuGet. O script do Powershell mencionado parecia causar mais danos do que benefícios.

Ao criar um novo projeto:

  1. Na sua solução do Visual Studio 2015, crie um Diretório de Soluções chamado .nuget.
  2. Crie um diretório real do diretório da solução (onde o arquivo .sln reside) e chame-o de .nuget (observe que o diretório da solução não é o mesmo que o diretório real do sistema de arquivos, mesmo tendo o mesmo nome).
  3. Crie um arquivo no diretório .nuget chamado nuget.config.

  4. Adicione o 'nuget.config' ao diretório da solução criado na etapa # 2.

  5. Coloque o seguinte texto no arquivo nuget.config:

    <?xml version="1.0" encoding="utf-8"?> <configuration> <config> <add key="repositorypath" value="$\..\..\..\..\Packages" /> </config> <solution> <add key="disableSourceControlIntegration" value="true" /> </solution> </configuration>

Esse arquivo de configuração permitirá consolidar todos os seus pacotes em um único local, para que você não tenha 20 cópias diferentes do mesmo pacote flutuando no sistema de arquivos. O caminho relativo será alterado dependendo da arquitetura do diretório da solução, mas deve apontar para um diretório comum a todas as suas soluções.

Você precisa reiniciar o visual studio após executar a etapa 5. O Nuget não reconhecerá as alterações até que você o faça.

Por fim, pode ser necessário usar o 'Nuget Package Manager for Solutions' para desinstalar e reinstalar os pacotes. Não sei se esse foi um efeito colateral do script do Powershell que eu executei ou apenas um método para ativar o NuGet novamente. Depois de executar todas essas etapas, minha arquitetura de compilação complicada funcionou perfeitamente para derrubar novos pacotes quando fiz o check-out de projetos do TFVC.


1
Por que excluir o arquivo nuget.targets, receberei uma compilação consistente quando está faltando?
— Frode Nilsen

1
Os destinos parecem estar integrados ao IDE agora, bem como a função que o 'nugget.exe' costumava fornecer. A única coisa que você ainda precisa é da configuração.
— Quarkly

1
Além das etapas mencionadas por DRAirey, eu tinha que fazer o seguinte: 1) Em vez de $ \ .. \ .. \ .. \ .. \ Packages, usado ../../ (convenção de caminho pai do Windows, não $ no início 2) Salve a solução, feche e reabra para que o nuget.config seja lido e honrado pela instalação de pacotes
— Sudhanshu Mishra

Isso ajudou no meu novo projeto do VS2015, em que comprometi o dir de pacotes e outros membros da equipe não puderam ser reconstruídos devido às dependências do NuGet.
— Azec-pdx 21/12/2015

1
Você precisa reiniciar o visual studio após executar a etapa 5. O Nuget não reconhecerá as alterações até que você o faça.
— Barry Colebank Jr

35

Opcionalmente, você pode remover todas as pastas da pasta "packages" e selecionar "Manage NuGet Packages for Solution ...". Nesse caso, o botão "Restaurar" aparece no NuGet Packages Windows.


1
Tente fechar e reabrir a janela de pacotes do NuGet depois de remover as pastas da pasta "packages".
— perfil completo de Ivan Branets

6
+1 Isso funcionou para mim, observe que o botão de restauração aparece na parte superior da janela, logo abaixo da guia. Diz: "Alguns pacotes NuGet estão ausentes nesta solução. Clique para restaurar a partir das fontes de pacotes on-line".
— quer

Tão simples e fácil .. isso funcionou para mim .. Acho que isso deve ser mais votado resposta :)
— Nirman

Tão simples e fácil. Essa deve ser a resposta.
— Axel

Não seria uma boa ideia adicionar esta pasta ao arquivo .gitignore?
— Axel

26

Como já mencionado por Mike, não há opção 'Ativar restauração do pacote NuGet' no VS2015. Você precisará chamar o processo de restauração manualmente. Uma boa maneira - sem mexer com arquivos e diretórios - é usando o Console de Gerenciamento de Pacotes NuGet : Clique no campo 'Início rápido' (geralmente no canto superior direito), digite console, abra o console de gerenciamento e digite o comando:

Update-Package –reinstall

Isso reinstalará todos os pacotes de todos os projetos em sua solução. Para especificar um único projeto, digite:

Update-Package –reinstall -ProjectName MyProject

Obviamente, isso só é necessário quando o Restorebotão - às vezes oferecido pelo VS2015 - não está disponível. Comandos de atualização mais úteis estão listados e explicados aqui: https://docs.microsoft.com/en-us/nuget/consume-packages/reinstalling-and-updating-packages


Muito obrigado, tive o problema semelhante. Acabei de resolver o meu problema através do seu procedimento. Muito obrigado
— McElie

Mesmo aqui, o único que trabalhou e não precisa de um monte de coisas escritas em todo o lugar
— Harvey Lin

Resposta mais útil aqui!
— neo

13

Se você tiver algum problema ou estiver faltando algum pacote, basta clicar com o botão direito do mouse em seu projeto e selecionar " Gerenciar pacotes NuGet para solução ... ". Depois de clicar nisso, uma tela será aberta, onde você verá uma barra de menus dizendo "Restaurar": Restaurar

Clique nele e os pacotes necessários serão instalados automaticamente.
Eu acredito que é isso que você está procurando, isso resolveu meus problemas.


3
Mas isso só ajuda se a barra de alerta aparecer, não no meu caso.
— Nicholas Petersen

2
Uma etapa que instala manualmente um pacote ignora completamente o objetivo de uma restauração automatizada.
— Quarkly

Eu acredito que este deve ser provavelmente a resposta aceita, é a mesma funcionalidade
— user25064

1
Consegui ver a opção de restauração clicando com o botão direito do mouse na solução. Estava lá em "Gerenciar pacotes NuGet para solução". Fiz o truque para mim.
— Daryl

1
Não funciona para mim - vejo avisos na solução sobre pacotes de nuget ausentes, mas gerenciar pacotes de nuget não me apresenta uma opção para baixá-los. Também não consigo construir e restaurar. Além disso, o comando restore não faz nada.
— Markus


6

Ao atualizar projetos com pacotes nuget do Vx20XX para o VS2015, você pode ter um problema com os pacotes nuget.

Exemplo de mensagem de erro: Este projeto faz referência aos pacotes NuGet que estão faltando neste computador. Ative a Restauração do pacote NuGet para baixá-los.

Atualização 06-02-2016: eu tinha um link para as informações, mas elas não funcionam mais. Eu suspeito que um caminho recente resolveu o problema ??

Corrigi o meu problema ao escrever um pequeno programa que faz a restauração de pacotes MSBuild-Integrated vs. Restauração automática de pacotes

Você pode baixar o executável da ferramenta aqui .

Por favor, deixe-me saber o resultado :-)!

insira a descrição da imagem aqui

Código como referência:

<Window x:Class="FixNuGetProblemsInVs2015.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:FixNuGetProblemsInVs2015"
        mc:Ignorable="d"
        Title="Fix NuGet Packages problems in Visual Studio 2015 (By Eric Ouellet)" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition Width="10"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>

        <TextBlock Grid.Row="0" Grid.Column="0">Root directory of projects</TextBlock>
        <Grid Grid.Row="0" Grid.Column="2">
            <Grid.ColumnDefinitions>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition Width="Auto"></ColumnDefinition>
            </Grid.ColumnDefinitions>

            <TextBox Grid.Column="0" Name="DirProjects"></TextBox>
            <Button Grid.Column="1" VerticalAlignment="Bottom" Name="BrowseDirProjects" Click="BrowseDirProjectsOnClick">Browse...</Button>
        </Grid>

        <!--<TextBlock Grid.Row="1" Grid.Column="0">Directory of NuGet Packages</TextBlock>
        <Grid Grid.Row="1" Grid.Column="2">
            <Grid.ColumnDefinitions>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition Width="Auto"></ColumnDefinition>
            </Grid.ColumnDefinitions>

            <TextBox Grid.Column="0" Name="DirPackages"></TextBox>
            <Button Grid.Column="1"  Name="BrowseDirPackages" Click="BrowseDirPackagesOnClick">Browse...</Button>
        </Grid>-->

        <TextBox Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Name="TxtLog" IsReadOnly="True"></TextBox>

        <Button Grid.Row="3" Grid.Column="0" Click="ButtonRevertOnClick">Revert back</Button>
        <Button Grid.Row="3" Grid.Column="2" Click="ButtonFixOnClick">Fix</Button>
    </Grid>
</Window>


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Xml;
using System.Xml.Linq;
using Application = System.Windows.Application;
using MessageBox = System.Windows.MessageBox;

/// <summary>
/// Applying recommanded modifications in section : "MSBuild-Integrated package restore vs. Automatic Package Restore"
/// of : http://docs.nuget.org/Consume/Package-Restore/Migrating-to-Automatic-Package-Restore
/// </summary>

namespace FixNuGetProblemsInVs2015
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            DirProjects.Text = @"c:\prj";
            // DirPackages.Text = @"C:\PRJ\NuGetPackages";
        }

        private void BrowseDirProjectsOnClick(object sender, RoutedEventArgs e)
        {
            FolderBrowserDialog dlg = new FolderBrowserDialog();
            dlg.SelectedPath = DirProjects.Text;
            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                DirProjects.Text = dlg.SelectedPath;
            }
        }

        //private void BrowseDirPackagesOnClick(object sender, RoutedEventArgs e)
        //{
        //  FolderBrowserDialog dlg = new FolderBrowserDialog();
        //  dlg.SelectedPath = DirPackages.Text;
        //  if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        //  {
        //      DirPackages.Text = dlg.SelectedPath;
        //  }
        //}

        // private string _dirPackages;

        private void ButtonFixOnClick(object sender, RoutedEventArgs e)
        {
            DoJob(false);
        }

        private void ButtonRevertOnClick(object sender, RoutedEventArgs e)
        {
            DoJob(true);
        }

        private void DoJob(bool revert = false)
        {
            TxtLog.Text = "";

            string dirProjects = DirProjects.Text;
            // _dirPackages = DirPackages.Text;

            if (!Directory.Exists(dirProjects))
            {
                MessageBox.Show("Projects directory does not exists: " + dirProjects);
                return;
            }

            //if (!Directory.Exists(_dirPackages))
            //{
            //  MessageBox.Show("Packages directory does not exists: " + _dirPackages);
            //  return;
            //}

            RecurseFolder(dirProjects, revert);
        }

        private void RecurseFolder(string dirProjects, bool revert = false)
        {
            if (revert)
            {
                Revert(dirProjects);
            }
            else
            {
                FixFolder(dirProjects);
            }

            foreach (string subfolder in Directory.EnumerateDirectories(dirProjects))
            {
                RecurseFolder(subfolder, revert);
            }
        }

        private const string BackupSuffix = ".fix_nuget_backup";

        private void Revert(string dirProject)
        {
            foreach (string filename in Directory.EnumerateFiles(dirProject))
            {
                if (filename.ToLower().EndsWith(BackupSuffix))
                {
                    string original = filename.Substring(0, filename.Length - BackupSuffix.Length);
                    if (File.Exists(original))
                    {
                        File.Delete(original);                                          
                    }
                    File.Move(filename, original);
                    Log("File reverted: " + filename + " ==> " + original);
                }
            }
        }

        private void FixFolder(string dirProject)
        {
            BackupFile(System.IO.Path.Combine(dirProject, "nuget.targets"));
            BackupFile(System.IO.Path.Combine(dirProject, "nuget.exe"));

            foreach (string filename in Directory.EnumerateFiles(dirProject))
            {
                if (filename.ToLower().EndsWith(".csproj"))
                {
                    FromProjectFileRemoveNugetTargets(filename);
                }
            }
        }

        private void BackupFile(string path)
        {
            if (File.Exists(path))
            {
                string backup = path + BackupSuffix;
                if (!File.Exists(backup))
                {
                    File.Move(path, backup);
                    Log("File backup: " + backup);
                }
                else
                {
                    Log("Project has already a backup: " + backup);
                }
            }
        }

        private void FromProjectFileRemoveNugetTargets(string prjFilename)
        {
            XDocument xml = XDocument.Load(prjFilename);

            List<XElement> elementsToRemove = new List<XElement>();

            foreach (XElement element in xml.Descendants())
            {
                if (element.Name.LocalName == "Import")
                {
                    var att = element.Attribute("Project");
                    if (att != null)
                    {
                        if (att.Value.Contains("NuGet.targets"))
                        {
                            elementsToRemove.Add(element);
                        }
                    }
                }

                if (element.Name.LocalName == "Target")
                {
                    var att = element.Attribute("Name");
                    if (att != null && att.Value == "EnsureNuGetPackageBuildImports")
                    {
                        elementsToRemove.Add(element);
                    }
                }
            }

            if (elementsToRemove.Count > 0)
            {
                elementsToRemove.ForEach(element => element.Remove());
                BackupFile(prjFilename);
                xml.Save(prjFilename);
                Log("Project updated: " + prjFilename);
            }
        }

        private void Log(string msg)
        {
            TxtLog.Text += msg + "\r\n";
        }

    }
}

O programa funcionou bem para converter uma tonelada de projetos em minha solução. A versão mais recente também possui um campo "Diretório de pacotes NuGet", mas não pareceu afetar a saída. O que isso faz?
— Christoffer Årstrand

Desculpe, não faço ideia. Eu suspeito que isso vai depender do conteúdo do arquivo. Talvez você possa acompanhar a função: "FromProjectFileRemoveNugetTargets" e ver se seu arquivo pode ser afetado? Desculpe por essa resposta ruim, eu não me lembro o que eu codificado :-( Eu só sei que eu usei duas vezes em 2 de computador diferente com sucesso!.
— Eric Ouellet

5

Vá para References no visual studio e veja quais pacotes estão faltando. Agora clique com o botão direito do mouse em Solution in Visual e clique em open folder no explorador de arquivos. Agora abra a pasta packages e exclua a pasta packages em falta. Abra o visual studio e apenas crie a solução. todos os pacotes ausentes serão restaurados. Marque isso como resposta se eu ajudar.


4

Suponho que para o projeto asp.net 4 estamos migrando para a restauração automática, portanto não há necessidade disso. Para projetos mais antigos, acho que é necessário um pouco de trabalho para converter.

http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore


Você provavelmente está certo. Eu apenas tentei criar o projeto usando exatamente as mesmas etapas no VS2013 e a opção "Ativar restauração do pacote Nuget" estava lá. Obrigado pelo link, vou ver agora.
— Dan Beaulieu

4

Essa abordagem funcionou para mim:

  • Fechar VS2015
  • Abra a solução temporariamente no VS2013 e ative a restauração do pacote nuget clicando com o botão direito do mouse na solução (eu também fiz uma reconstrução, mas suspeito que isso não seja necessário).
  • Fechar VS2013
  • Reabra a solução no VS2015

Agora você também ativou a restauração de pacotes de nuget no VS2015.


4

Eu enfrentei o mesmo problema ao tentar criar um projeto de exemplo gplus-quickstart-csharp-master .

Procurei atentamente a mensagem de erro e encontrei uma solução alternativa para superar esse erro, espero que isso ajude.

  • Clique com o botão direito do mouse no arquivo de solução e abra no Windows Explorer.
  • Copie a pasta .nuget com NuGet.Config, NuGet.exe, NuGet.targets ( link para download ou simplesmente copie de outro projeto e substitua)
  • Tente reconstruir a solução.

Aproveitar !!


4

Ivan BranetsA solução de é essencialmente o que corrigiu isso para mim, mas mais alguns detalhes podem ser compartilhados.

No meu caso, eu estava no VS 2015 usando a restauração automática de pacotes e o TFS . Isso é tudo bastante padrão.

O problema era que, quando outro desenvolvedor tentou obter uma solução do TFS, alguns pacotes não estavam sendo totalmente restaurados. (Ora, ainda não tenho certeza.) Mas a pasta packages continha uma pasta para a referência e o pacote NuGet, mas não estava sendo expandida (digamos, estava faltando uma pasta lib contendo uma DLL.) lá, mas o conceito não muito correto estava impedindo a restauração do pacote.

Você reconhecerá isso porque a referência terá um ponto de exclamação amarelo por não ter sido resolvido.

Portanto, a solução de excluir a pasta dentro dos pacotes remove o problema de bloqueio da restauração do pacote. Em seguida, você pode clicar com o botão direito do mouse no nível superior da solução para ter a opção de restaurar pacotes e agora deve funcionar.


4

Feche o VS. Exclua tudo na pasta packages. Reabra sua solução. Clique com o botão direito do mouse no seu projeto, selecione 'Gerenciar pacotes de nuget ...'. Você verá uma barra amarela na parte superior da janela 'Nuget Package Manager', solicitando a restauração dos pacotes. Isso tem funcionado para mim.


3

Console do Gerenciador de Pacotes (Visual Studio, Ferramentas> Gerenciador de Pacotes NuGet> Console do Gerenciador de Pacotes): Execute o comando Update-Package -reinstall -ProjectName em que é o nome do projeto afetado, como aparece no Gerenciador de Soluções. Use o Update-Package-reinstall sozinho para restaurar todos os pacotes na solução. Consulte Pacote de atualização. Você também pode reinstalar um único pacote, se desejar.

de https://docs.microsoft.com/en-us/nuget/quickstart/restore


1

Também pode ser o resultado da execução do programa enquanto você tenta instalar o pacote. fica acinzentado se você tentar clicar nele enquanto o IIS interno estiver em execução em segundo plano.


1

Caso alguém encontre esse problema no Visual Studio 2017, verifique se o projeto é aberto pelo arquivo .sln e não pela pasta, pois o visual studio não selecionará as configurações se for aberto por pasta. Isso acontece por padrão se você estiver usando os serviços online do Visual Studio para git.


1

Eu usei msbuild /t:restore.


Crédito e fonte:

Meu problema estava no MSBuild. Então, segui o link de @Vinney Kelly : Migrando soluções integradas do MSBuild para a restauração automática de pacotes

e...

Isso funcionou como um encanto =]

MSBuild : use o msbuild /t:restorecomando que restaura os pacotes listados no arquivo do projeto ( apenas PackageReference ). Disponível apenas no NuGet 4.x + e no MSBuild 15.1+, incluídos no Visual Studio 2017 . nuget restoree dotnet restoreambos usam esse comando para projetos aplicáveis.


No meu caso / t: restore não cria o projeto para o qual eu tinha que usar o comando / restore
— Kishan Vaishnav

1

Se tudo mais falhar (ou talvez antes disso), convém verificar se o NuGet é uma fonte de pacote. Eu instalei o VS2017 e ele NÃO estava lá por padrão. Eu pensei que era meio estranho.

  1. Ferramentas - NuGet Package Manager - Configurações do Gerenciador de Pacotes
  2. Clique em 'Origens do pacote' na navegação esquerda da caixa de diálogo.
  3. Use o sinal de adição (+) para adicionar o URL do Nuget: https://api.nuget.org/v3/index.json

0

Eu tive que remover a pasta de pacotes fechar e reabrir a solução (VS2015). Eu não estava migrando e não tinha pacotes verificados no controle de origem. Tudo o que posso dizer é que algo ficou bagunçado e isso foi corrigido.


0

Ajudei-me a Ferramentas >>> Nuget Package Manager >>> Geral e marque a opção Permitir que o Nuget baixe o pacote ausente e verifique automaticamente se há pacotes ausentes durante a compilação no visual studio .

insira a descrição da imagem aqui


0

Para projetos do .NET Core , execute dotnet restoreou dotnet buildcomandoNuGet Package Manager Console (que executa automaticamente a restauração)

Você pode executar o console a partir de

Ferramentas> Gerenciador de Pacotes NuGet> Console do Gerenciador de Pacotes


0

Estou enfrentando o mesmo problema. Estou tentando adicionar um projeto MVC que foi criado no Visual Studio 2015 a uma solução que eu criei no Visual Studio 2019.

Já existem projetos no Visual Studio 2019, portanto, adicionar este projeto existente que criei no VS 2015 aciona o mesmo erro. Eu tentei todas as respostas aqui, mas isso não resolve o problema.

O que fiz foi colocar a pasta .nuget na pasta da solução. Originalmente, a hierarquia da pasta é esta:

Solution Folder (VS 2019)
  -> MVC 1 Project
  -> MVC 2 Project
  -> MVC 3 Project (Project that I am adding)
         -> .nuget folder (It contains a .nuget folder)

Portanto, o problema foi corrigido quando movi a pasta .nuget para a pasta da solução:

    Solution Folder (VS 2019)
  -> MVC 1 Project
  -> MVC 2 Project
  -> MVC 3 Project (Project that I am adding)
  -> .nuget folder (It contains a .nuget folder)

0

Solução VS 2019 Versão 16.4.4 destinada ao .NET Core 3.1

Depois de ter tentado quase todas as soluções propostas aqui, fechei o VS. Quando eu o reabri, depois de alguns segundos tudo voltou a ficar bem ...


-4

Ainda mais simples, adicione uma pasta .nuget à sua solução e os 'Restaurar pacotes do Nuget' serão exibidos (não tenho certeza se o nuget.exe precisa estar presente para que ele funcione).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.