visual-studio - them - visual studio nuget package restore failed




Os pacotes NuGet estão ausentes (20)

CUIDADO - isso atualiza os pacotes de toda a solução, não apenas do projeto.

Se você tiver mais um pacote nuget ausente que deu o erro ao criar sua solução, use o seguinte comando usando o Nuget Command Console em Ferramentas> Nuget Package Manager> Console do Gerenciador de Pacotes. Ele reinstalará todos os pacotes atuais.

 <Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

Atualizar:

Você pode passar o nome específico do projeto como um parâmetro.

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />

Eu procurei esse problema, mas nenhuma das soluções funcionou. Eu tenho o Visual Studio Professional 2015 instalado e estou usando o TFS. Minha versão do NuGet é 3.1.6. Esse problema está acontecendo apenas no meu projeto C # Web API / MVC.

Estou recebendo o erro abaixo:

Este projeto faz referência aos pacotes NuGet que estão faltando neste computador. Use o NuGet Package Restore para baixá-los. Para mais informações, consulte http://go.microsoft.com/fwlink/?LinkID=322105 . O arquivo ausente é .. \ packages \ Microsoft.Net.Compilers.1.0.0 \ build \ Microsoft.Net.Compilers.props

  1. Não tenho a pasta .nuget nas minhas soluções.
  2. Eu tenho uma pasta de pacotes na solução e, quando a apago, parece que o NuGet reconstrói as dependências, mas o projeto ainda tem o erro acima.
  3. Tentei remover o projeto do TFS e ele não o corrigiu.
  4. Juntamente com o erro acima, todas as referências no projeto têm sinais de aviso amarelos e dizem que estão ausentes.
  5. Quando verifiquei o NuGet Package Manager para o projeto, tudo o que está "ausente" tem uma marca verde ao lado, incluindo o Microsoft.Net.Compilers.
  6. Tentei adicionar um novo projeto de API / MVC da Web e ele enfrentou um problema semelhante, onde a maioria das referências como Owin estava "ausente" com o sinal de aviso amarelo.

A mensagem de erro está completamente correta. Eu tentei todos os truques e nenhum funcionou. O projeto (teste simples do MVC Web App) foi movido da comunidade Windows 8.1 VS 2015 para minha nova caixa de teste no Windows 10. Todas as atualizações mais recentes do VS 2015 foram aplicadas. Eu não conseguia nem instalar nenhuma versão mais recente do pacote de compiladores.

<!--<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>
</system.codedom>-->

Finalmente, apenas copiei o Microsoft.Net.Compilers.1.0.0 do projeto antigo para o novo e funcionou. Eu poderia então começar a atualizar outros pacotes para a versão mais recente. Parece um bug do processo de atualização do projeto de pepita para mim.

NOTA: O projeto original foi criado no VS 2015 e não possui nenhuma metodologia de nuget herdada.


Basta ativar a Restauração do pacote NuGet. Clique com o botão direito do mouse na sua solução> escolha 'Ativar restauração do pacote NuGet'.

Isso criará a pasta .nuget com o arquivo NuGet.Config e corrigiu o meu problema.


Comente a opção do compilador no WebConfig :

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

Atualizar a versão mais recente dos pacotes no arquivo de configuração do pacote

**/packages/*

Reconstrua se tudo estiver ok, não é necessário continuar; caso contrário, clique com o botão direito do mouse no projeto, clique em 'descarregar projeto'.

Valide o caminho do Codedom, ele não estava tendo o net45 nos caminhos anteriores, adicione manualmente, salve, carregue, reconstrua. Deveria funcionar.

 <Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" /> 

Estou usando o VS2012 e enfrentando o mesmo erro. Eu removi a seguinte marca Target do arquivo .csproj e ela começou a compilar sem nenhum erro.

<package id="Microsoft.Net.Compilers" version="2.0.1"
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3"

Eu corrigi esse erro, na verdade eu estava tendo uma versão diferente do MSTest.TestAdapter (1.3.2) na minha pasta packages e nas referências de arquivo .csproj estavam apontando para MSTest.TestAdapter (1.1.0). Substituí todo o MSTest.TestAdapter (1.1.0) por MSTest.TestAdapter (1.3.2) e isso resolveu o meu problema.


Eu tinha essa mensagem exatamente frustrante. O que finalmente funcionou para mim foi excluir todos os arquivos e pastas dentro de / packages e deixar o VS buscar novamente tudo na próxima compilação.


Eu tive esse problema como uma falha na compilação no Azure, quando implantado no Git.

Acontece que meu .gitignore estava excluindo a pasta de build de ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props .

Depois que a pasta de build foi (forçada) confirmada no Git, o problema foi resolvido.


Não encontrei soluções para isso, então adicionei uma cópia do nuget.exe e um script do PowerShell ao diretório raiz da solução chamada prebuild.ps1 com o seguinte conteúdo.

  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.4" targetFramework="net452" />

Chamei esse script do PowerShell na minha compilação no caminho do script de pré-compilação


Não tenho certeza se isso ajudará alguém, mas ocorreu um problema quando excluí o código-fonte da minha máquina local sem nunca ter salvo o arquivo de solução no TFS. (Durante o desenvolvimento inicial, cliquei com o botão direito do mouse e fiz o check-in no projeto no Solution Explorer, mas esqueci-me de sempre fazer o check-in da solução.) Quando precisei trabalhar nisso novamente, tudo o que tinha no TFS era o arquivo .csproj, nenhum arquivo .sln. Assim, no VS, eu fiz um Arquivo -> Controle de origem -> Avançado - Abrir do servidor e abri o arquivo .csproj. A partir daí, fiz um Save All e ele me perguntou onde eu queria salvar o arquivo .sln. Eu estava salvando esse arquivo .sln no diretório do projeto com as outras pastas (App_Data, App_Start, etc.), não no diretório de nível superior. Finalmente, descobri que preciso salvar o arquivo .sln em um diretório da pasta do projeto, para que fique no mesmo nível da pasta do projeto. Todos os meus caminhos foram resolvidos e eu pude construí-lo novamente.


O problema para mim foi que o NuGet não pôde obter / atualizar automaticamente os pacotes porque o caminho completo do arquivo seria muito grande. Corrigido, movendo minha solução para uma pasta em meus documentos, em vez de uma pasta profundamente aninhada .

Em seguida, clique com o botão direito do mouse na solução e selecione "Restaurar pacotes NuGet" (o que provavelmente não é necessário, se você o compilar e deixar fazer isso por você) e, em seguida, selecione "Gerenciar pacotes NuGet para solução" para obter todos os pacotes atualizado para a versão mais recente.

Isto foi para uma solução de um aplicativo ASP MVC de amostra baixado do site da Microsoft.


Para expandir algumas das respostas aqui, sim, você pode remover o seguinte bloco do seu arquivo .csproj:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

e isso corrige o problema, no entanto, no meu caso, notei que tinha referências adicionais aos .NET.Compilers e .CodeDom.Providers com versões diferentes:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>

Quando meu packages.config referenciou apenas o seguinte:

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />

A remoção dos itens 1.0.0 do arquivo .csproj corrigiu o problema.


Para mim, o problema era que, quando copiei a solução para uma nova pasta e a abri, estava faltando a pasta Nuget, como mostrado abaixo. Copiei esta pasta e tudo funcionou. Nota: Essa mesma pasta estava em nosso controle de origem, mas não neste projeto de soluções, era um diretório.


Para mim, os pacotes estavam lá no caminho correto, mas as pastas de construção dentro da pasta de pacotes não estavam. Simplesmente removi todos os pacotes que estavam faltando e reconstruí a solução e ele criou com êxito as pastas de compilação e os arquivos .props. Portanto, as mensagens de erro estavam corretas ao me informar que algo estava errado.


Para quem tropeça aqui com o problema que tive (alguns, mas nem todos os pacotes foram restaurados em um servidor de compilação), a parte final do quebra-cabeça para mim foi adicionar um NuGet.config na raiz da minha solução, irmão do .SLN arquivo como David Ebbo explicou aqui: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html .

No blog do Ebbo, o conteúdo do arquivo para mim é simplesmente

Loop:
<LOOP>This seems to be a Ground Hog Day phenomena.</LOOP>
GoTo Loop

ATUALIZAR:

O URL da API do NuGet foi alterado para v3 (atual em setembro de 2016). De https://www.nuget.org/

$nugetexe = 'nuget.exe'
$args = 'restore SOLUTION_NAME_HERE.sln'
Start-Process $nugetexe -ArgumentList $args

Resolvi esse problema removendo o seguinte código do arquivo .csproj

Update-Package -Reinstall


Sei que essa pergunta é antiga, no entanto, encontrei a mesma situação hoje e queria jogar meus 2 centavos para alguém que tivesse encontrado esse problema recentemente. Um projeto ASP MVC que eu havia movido manualmente para uma subpasta na minha solução e depois removido e lido para a solução, usando o Visual Studio 2017, estava dando o erro mencionado. Mover as pastas "lib" e "packages" para a raiz da mesma subpasta que o projeto MVC corrigiu meu problema.


Solução que funciona no meu caso - Visual Studio 2015 Enterprice, projeto .NET 4.6.1

  1. Atualizar para a atualização 3
  2. Instalar ferramentas de desenvolvedor da Web


Uma combinação das 2 respostas funcionou para mim. Primeiro, modifiquei o arquivo .csproj para remover a referência à versão 1.0.0

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
    <Error Condition="!Exists('packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
  </Target>

e depois

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  -- Error messages within Target Tag
</Target>

do e funcionou.


Você também pode usar a mensagem de erro sugerida como uma dica. Veja como, encontre o Gerenciar pacotes para solução e clique no resolver pacote de nuget ausente.

É isso aí





visual-studio-2015