web-dev-qa-db-fra.com

Échec de la restauration du package NuGet pour le projet PROJECT: recherche de la version 2.0.0 du package 'Microsoft.Net.Compilers' impossible

J'ai utilisé l'extension GitHub de Visual Studio 2015 pour cloner mon projet sur un nouvel ordinateur. J'essaie de restaurer des paquets et j'obtiens une erreur qui dit: 

NuGet Package restore failed for project PROJECT: Unable to find version 2.0.0 of package 'Microsoft.Net.Compilers'

J'ai examiné d'autres questions sur des problèmes similaires, mais aucune de ces solutions n'a encore fonctionné pour moi. 

J'ai essayé de supprimer le dossier des packages, d'ouvrir à nouveau Visual Studios, puis de le reconstruire. Cela n'a pas résolu le problème.

J'ai essayé d'installer manuellement Microsoft.Net.Compilers dans la console du gestionnaire de packages.

 PM> Install-Package Microsoft.Net.Compilers

J'ai essayé de supprimer ce morceau de code du fichier csproj (cela semblait fonctionner pour certains):

    <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>

J'ai essayé de réinstaller tous les paquets avec

Update-Package –reinstall

Jusqu'ici, je n'ai pas eu la moindre chance de résoudre le problème. Toute aide est appréciée. 

MODIFIER:

I tried the response below and received this error:

Install-Package : Some NuGet packages are missing from the solution. The packages need to be restored in order to build the dependency graph. Restore the packages before performing any operations.
At line:1 char:16
+ Install-Package <<<<  -Id Microsoft.Net.Compilers -Version 1.3.2 -Source nuget.org
    + CategoryInfo          : InvalidOperation: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetMissingPackages,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Cela m'a également incité à restaurer des paquets. Lorsque j'ai appuyé sur restaurer, j'ai eu la même erreur que d'habitude. 

10
Dylan Caudill

En fonction de votre message d'erreur, il semble que vous recherchiez une version qui n'existe plus et qui ne peut pas dire quelle source de package vous avez sélectionnée. J'ai l'impression que vous recherchez la version 2.0.0 qui n'est pas disponible dans le référentiel nuget.org. Le dernier en date est 2.0.0-rc et il est candidat à la publication préliminaire. 

S'il vous plaît essayez cette commande si vous voulez obtenir la dernière version

Install-Package -Id Microsoft.Net.Compilers -Version 2.0.0-rc -Source nuget.org

Si vous voulez la dernière version stable (1.3.2), essayez cette commande

Install-Package -Id Microsoft.Net.Compilers -Version 1.3.2 -Source nuget.org

UPDATE.__ Si le package ne peut toujours pas être installé, il est possible que ce package ne soit pas synchronisé entre packages.config, packages/folder et le fichier .csproj

Veuillez suivre ces étapes pour effectuer un nettoyage manuel

  1. Fermer studio visuel.
  2. Ouvrez .csproj dans un bloc-notes ou un éditeur de texte et supprimez manuellement toutes les entrées relatives à Microsoft.Net.Compilers.
  3. Ouvrez packages.config dans un bloc-notes ou un éditeur de texte et supprimez une entrée pour le package Microsoft.Net.Compilers.
  4. Allez dans packages/folder dans l'Explorateur Windows et supprimez le dossier Microsoft.Net.Compilers.
  5. Maintenant, démarrez le studio visuel et ouvrez la solution.
  6. Maintenant, essayez de réinstaller le paquet.

Certaines des entrées que vous devrez peut-être supprimer de .csproj à l’étape 2 sont les suivantes:

<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />

<NuGetPackageImportStamp></NuGetPackageImportStamp>

<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.3.2\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props'))" />
</Target>
14
Vinod

C'est peut-être un peu tard mais ça aidera quand même quelqu'un. Lorsque vous essayez d’archiver votre code et que vous obtenez ce genre d’erreur, cela signifie que le paquet a été installé et désinstallé à nouveau. Il vous suffit donc de localiser le paquet sous les modifications incluses, dans mon exemple, une utilisation de TFS, et exclure ou annuler. cela résoudra le problème.

1
Serame Simon

J'ai déplacé mon projet par rapport au lieu où les packages NuGet avaient été initialement stockés dans mon projet et j'ai finalement découvert que cela posait un problème avec ce fichier .csproj qui n'était peut-être pas immédiatement évident.

Après le déplacement et après avoir effectué une restauration de package NuGet, une deuxième entrée avait été ajoutée à la cible EnsureNuGetPackageBuildImports de mon fichier .csproj, reflétant le chemin relatif du nouvel emplacement.

La cible ressemblait maintenant à ceci:

  <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.2.10.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.2.10.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.2.10.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.2.10.0\build\Microsoft.Net.Compilers.props'))" />
  </Target>

Notez les deux entrées, avec des chemins différents vers où se trouvent les packages. Cela signifiait que l'un d'entre eux (le premier, qui était avant que je ne déplace le projet) échouerait toujours.

Le correctif était assez simple. Je viens de supprimer le premier noeud Error de la Target.

J'ai également constaté qu'il existait un problème similaire dans les nœuds Import initiaux du nœud racine Project.

J'ai eu le suivant:

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <Import Project="..\..\packages\Microsoft.Net.Compilers.2.10.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\..\packages\Microsoft.Net.Compilers.2.10.0\build\Microsoft.Net.Compilers.props')" />
  <Import Project="..\packages\Microsoft.Net.Compilers.2.10.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.10.0\build\Microsoft.Net.Compilers.props')" />

Là encore, le correctif consistait simplement à supprimer le noeud Import erroné.

0
crush

J'ai eu une erreur similaire et j'ai dû procéder comme suit pour que Visual Studio puisse restaurer automatiquement les packages NuGet manquants. Dans VS, allez dans "Outils> Options> Gestionnaire de paquets NuGet> Sources de paquet" et vérifiez que cela ressemble à la capture d'écran ci-dessous. L’ajout de la source de paquets nuget.org en haut indique à VS de se connecter en ligne pour télécharger les packages s’il ne trouve pas les versions appropriées sur la machine locale.

 enter image description here

0
Tawab Wakil

Je sais pourquoi, il se trouve dans le dossier C:\Program Files (x86)\Microsoft SDK\NuGetPackages. Il y a des paquets que vous avez installés auparavant.

0
Xoan Sao