web-dev-qa-db-fra.com

Erreur lors de l'utilisation de nuget dans VS2012 "packages manquants"

Lorsque je crée mon projet à partir de VS2012, j'obtiens le message d'erreur suivant

This project references NuGet package(s) that are missing on this computer. 
Enable NuGet Package Restore to download them. 

J'ai les options nuget définies pour NuGet pour télécharger les packages manquants.

picture of nugget options

Pourtant, je reçois toujours l'erreur. J'ai installé la pépite 2.7. Avec la mise à jour VS2012 3

30
John S

Comme Dan faisait allusion à, si votre solution a un dossier .nuget (d'activer la restauration de package), alors la fonction de restauration automatique de package de nuget 2.7 est désactivée, comme par http://docs.nuget.org/docs/workflows/migration-to-automatic-package-restore .

Si la restauration automatique des packages est désactivée, tout package qui installe un fichier cible de projet entraînera l'échec de votre génération jusqu'à ce que vous restauriez manuellement ce package dans votre solution, comme décrit par http://blogs.msdn.com/b /dotnet/archive/2013/06/12/nuget-package-restore-issues.aspx . (Notez que les solutions de contournement décrites dans le lien sont obsolètes maintenant que la restauration automatique du package nuget 2.7 est disponible.)

Donc, si ces deux choses sont vraies, supprimez le fichier NuGet.targets dans le dossier .nuget et Nuget restaurera ensuite le package manquant avant d'appeler MSBuild. Vous pouvez également supprimer nuget.exe dans le dossier .nuget, car il ne sera plus utilisé.

21
Jonathan Roeder

Veuillez suivre les étapes mentionnées ci-dessous:

Étape 1: Veuillez activer la restauration du package Nuget en cliquant avec le bouton droit sur la solution [comme mentionné dans la capture d'écran ci-dessous]

Enable Nuget Package Restore

Étape 2: [Suivez ceci si le problème/l'erreur n'est pas résolu en suivant l'étape 1] Toujours si vous rencontrez le problème, veuillez ouvrir le fichier .csproj dans le bloc-notes et vérifier le chemin du package qui pourrait ressembler à

Package Path

Ainsi, la structure de votre répertoire de solutions sera comme:

\SolutionDirectory\

Répertoire des packages:

\SolutionDirectory\packages

Répertoire du projet:

\SolutionDirectory\ProjectName\ProjectName.csproj

Veuillez ouvrir ce fichier .csproj [dans lequel vous obtenez une erreur] dans le bloc-notes et recherchez le chemin des packages et mettez-le à jour vers son chemin d'accès approprié.

Par exemple mon .csproj contenait, si le fichier .csproj contient ..\..\packages puis mettez à jour ce chemin avec ..\packages

26
Nirav Mehta

Les réponses me sont très utiles pour trouver la solution. Étant donné que la résolution de mon problème spécifique nécessite une étape supplémentaire, je la signale ici au cas où elle serait utile à d'autres. L'erreur que j'obtenais:

Error   117 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 ..\..\Windows Phone 8\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets.

J'ai suivi les réponses et supprimé toutes les choses suggérées, mais l'erreur persiste. Je m'en suis finalement débarrassé en supprimant la ligne suivante dans le .csproj:

<Error Condition="!Exists(...
10
Hong
  1. Supprimer NuGet
  2. Supprimez avec le bloc-notes .targets qui, en fonction de NuGet du fichier de projet
  3. Installer la dernière version de NuGet
  4. Redémarrez Visual Studio et rouvrez le projet/la solution.
  5. Si vous le souhaitez, vous pouvez ajouter de nouveaux fichiers .nuget avec la dernière version de NuGet
6
Petar

Ouvrez le fichier csproj dans le bloc-notes et supprimez Error Condition éléments d'ici (ou faire fonctionner ces conditions):

<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'))" />
    <Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.101.0\build\net45\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.101.0\build\net45\System.Data.SQLite.Core.targets'))" />
  </Target>
2
opewix

essaye ça,

  1. Élément de liste
  2. clic droit sur la solution
  3. cliquez sur gérer NuGet
  4. cliquez sur réglage dans le coin inférieur gauche
  5. cochez Autoriser NuGet à télécharger le package manquant.
0
semmie Asrat

Cliquez simplement avec le bouton droit sur la solution et "Activer la restauration du package NuGet" pour résoudre mon problème.

0
arpan desai

Supprimez le répertoire .nuget de la solution s'il existe. Modifiez le fichier de projet et supprimez les éléments Import et Target qui contiennent des références au dossier .nuget, Enregistrez et rechargez le projet.

0
DeeArgee