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