web-dev-qa-db-fra.com

Fichier de métadonnées VS 2017 '.dll introuvable

Je sais qu’une autre question a exactement le même problème, mais j’ai parcouru toutes ces réponses et aucune ne m’a aidé. :( ( C'était la question. )

Je viens de créer un nouveau projet ASP.NET MVC et j'ai rejoint quelques ".dll" dans la solution. Maintenant, lorsque j'essaie de construire le projet, le message d'erreur indiqué ci-dessous s'affiche dans 3 des 5 bibliothèques.

Error   CS0006  Metadata file 'C:\Users\...\source\Database\bin\Debug\DataAccessLayer.dll' could not be found   Logic   C:\Users\...\source\Logic\CSC   1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\Logic\bin\Debug\Logic.dll' could not be found    PTS2-MVC    C:\Users\...\source\PTS2-MVC\CSC    1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\PTS2-MVC\bin\PTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:\Users\...\source\PTS2-MVC.Tests\CSC  1   Active

Lorsque je vais dans le dossier bin\debug de ce fichier .dll, je vois qu’il est vide et que l’autre fichier .dll pour lequel je ne reçois pas de message d’erreur, n’est pas vide. Mais je ne sais pas comment résoudre ce problème ou ce que j'ai fait pour y arriver.

La réponse la plus courante consiste à accéder à properties de solution, à configuration et à décocher -> appliquer -> vérifier et appliquer encore une fois, mais cela n'a pas fonctionné

32
Svenmarim

Ok, je l'ai corrigé maintenant, le problème était que j'avais d'autres messages d'erreur normaux dans mon projet, et apparemment après les avoir corrigés et quand j'ai nettoyé et construit mon projet AGAIN, tous les fichiers .dll ont réussi: D

Donc, pour d’autres personnes ayant ce problème à l’avenir: assurez-vous de ne pas avoir d’autres messages d’erreur dans votre projet et, le cas échéant, corrigez-les d’abord!

Je tiens à vous remercier pour votre aide!

37
Svenmarim

Étapes à suivre pour corriger cette erreur: Le fichier MetaData .dll est introuvable.

  1. Nettoyer tous les projets.

  2. Décharger tous les projets.

  3. Recharger tous les projets.

  4. Solution de reconstruction.

Alors le problème est résolu.

13
rjay dadula

Dans mon cas, il y avait une erreur, mais celle-ci n'a pas été correctement analysée et affichée dans la fenêtre "Liste des erreurs". Pour le trouver, vous devez voir la "sortie" de la fenêtre de construction, analyser les messages en partant de la base et résoudre l’erreur réelle. M $, s'il vous plaît réparer! C'est une énorme perte de temps pour les développeurs collectifs du monde. 

6
ebol2000

J'ai eu ce problème avec une solution contenant plusieurs projets.

Je pense que cela vient de dupliquer un .csproj et d’ajouter la copie à la solution. Un fichier .csproj contient un élément <ProjectGuid>. Je règle le GUID du projet copié sur un nouveau.

J'ai également effectué les étapes suivantes:

  1. Fermer la solution
  2. Supprimer le dossier bin
  3. Supprimer tous les dossiers obj
  4. Solution ouverte et construction
6
j00hi

Dans mon cas, j'ai dû ouvrir le fichier .csproj et ajouter la référence à la main, comme ceci (Microsoft.Extensions.Identity.Stores.dll était manquant):

<Reference Include="Microsoft.Extensions.Identity.Stores">
  <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\Microsoft.extensions.identity.stores\2.0.1\lib\netstandard2.0\Microsoft.Extensions.Identity.Stores.dll</HintPath>
</Reference>
2
toutecrimson

Vérifiez le nom de votre dossier de projet. Dans mon cas, mon dossier de projet a été nommé avec des espaces. Lorsque j'ai cloné le projet depuis Team Foundation Server à l'aide de git bash, les espaces du nom du dossier ont été convertis en: "% 20". Changer ces espaces en espaces fixes a résolu le problème pour moi.

2
roscoelee

Je résous ce problème en suivant ces étapes:

  1. Solution propre
  2. Fermer Visual Studio
  3. Suppression de/bin du répertoire du projet
  4. Redémarrer Visual Studio
  5. Reconstruire la solution
2
Lucas Prestes

Pour moi, le nettoyage et la construction ne fonctionnaient pas. Décharger le projet n'a pas fonctionné. Le redémarrage de Visual Studio ou même du PC ne fonctionnait pas. C'est ce qui a fonctionné:

Accédez à chacun des projets générant l'erreur, puis dans Références, supprimez la référence au projet problématique et ajoutez-la à nouveau. Cela résout le problème.

Le problème semble être lié au déplacement d'un projet (déplacez-le dans un dossier, par exemple), puis à un projet différent qui le référence, a un chemin incorrect et ne peut pas le trouver.

2
David Perez

Ce problème se produit lorsque vous avez renommé votre solution et que le framework .net ne peut pas trouver l'ancienne solution. 

Pour résoudre ce problème, vous devez rechercher et remplacer l'ancien nom de la solution et toutes ses dépendances par le nouveau nom. Si vous devez parcourir le fichier physique via l'explorateur de fichiers, faites-le. 

Les fichiers normalement affectés sont AssemblyInfo.cs, .sln et Propriétés> Application> Nom de l’ensemble et espace de nom par défaut. Assurez-vous de les mettre à jour avec le nouveau nom.

Ouvrez l'explorateur de fichiers. Si le dossier portant l'ancien nom existe toujours, vous devez le supprimer. Nettoyez ensuite et générez la solution jusqu'à ce que l'erreur disparaisse. (Si nécessaire, nettoyez et construisez le projet un par un, en particulier le projet affecté.)

J'espère que ça aide.

1

Une autre chose à vérifier est le cadre cible de tous les projets référencés pour vous assurer que le projet appelant utilise la même version ou une version ultérieure du cadre.

J'ai eu ce problème, j'ai essayé toutes les réponses suggérées précédemment et ensuite sur une intuition vérifié les cadres. L'un des projets référencés était le ciblage 4.6.1 alors que le projet appelant ne comportait que 4.5.2.

1
Rob

Exécuter cette commande dans bash pour supprimer tous les bacs qui ont fonctionné pour moi

$ find . -iname "bin" -o -iname "obj" | xargs rm -rf

Je ne peux pas garantir que cela fonctionnera pour quelqu'un d'autre si

Sachez également que tous les fichiers bin seront supprimés. Vous devrez donc reconstruire tous les projets. Évidemment, le mieux est de se connecter au répertoire approprié avant de l’utiliser.

1
Yair Halberstadt

Dans mon cas, je faisais face à la même erreur. Une de mes solutions de projet visait une assemblée de différents sites NuGet. Je viens de changer pour corriger l'emplacement pour résoudre cette erreur et reconstruire. et wow, le projet est construit avec succès et toutes les autres erreurs disparaissent.

1
Mukesh Kumar

J'ai le même problème, le problème était que le chemin de la solution contenait des espaces dans le nom et pour une raison quelconque, ne résolvait pas le package.

par exemple:  

/Repo/Project Name/src

devrait être  

/Repo/ProjectName/src
1
D__

J'ai eu le même problème, même sans qu'aucune autre erreur n'apparaisse dans la vue "Liste des erreurs" après "Rebuild Solution". Cependant, dans la vue "Sortie", j'ai vu l'erreur à l'origine du problème:

La référence principale "C: ...\myproj.dll" n'a pas pu être résolue car elle a été créée sur le framework ".NETFramework, Version = v4.6.1". Il s'agit d'une version plus récente que celle du framework actuellement ciblé ".NETFramework, Version = v4.5".

Une fois que j'ai corrigé cela, le problème a été résolu.

0
Ian

J'ai eu la même erreur. Dans mon cas, j'avais construit une bibliothèque (appelez-la commsLibrary) qui référençait d'autres bibliothèques en les incluant en tant que projets dans ma solution. Plus tard, quand j'ai construit un projet et ajouté mon commsLibrary , chaque fois que je construisais, le fichier de métadonnées ne pouvait pas être trouvé d'erreur. J'ai donc ajouté les bibliothèques que ma bibliothèque de communications a référencées au projet en cours, puis il a été possible de construire.

0
Joseph Mawer

Le nettoyage de ma solution a provoqué ce problème avec Visual Studio 2017. Le déchargement/rechargement de projets ou davantage de nettoyage ne faisaient aucune différence. La seule chose qui a fonctionné a été la fermeture et le redémarrage de Visual Studio.

0
John81

J'ai eu le même problème. Mon problème était que quelqu'un d'autre de l'équipe avait déplacé un dossier de classe et que le projet le recherchait. 

Pour moi, il y a eu 44 erreurs; 43 s'est terminé par .dll (recherche d'une dépendance) et le premier de la liste des erreurs s'est terminé par .cs (recherche de la classe réelle). J'ai essayé de nettoyer-construire, et nettoyer, décharger, recharger, construire, mais rien ne fonctionne. J'ai fini par localiser la classe dans le projet et je l'ai simplement supprimée, car elle apparaissait comme indisponible de toute façon, suivie d'une nouvelle construction.

Cela a fait le tour pour moi! J'espère que cela t'aides. 

0
Burke

Vérifiez que tous les projets sont chargés. Dans mon cas, l'un des projets a été déchargé et son rechargement efface les erreurs. 

0
Maryam

Après avoir affronté tant de problèmes, voici la solution que j'ai trouvée.

  1. ouvrez votre dossier de projet.
  2. find Your_Project_Name.csproj [Fichier de projet Visual C # (.csproj)]
  3. ouvrez ce fichier dans n’importe quel éditeur de texte et trouvez votre fichier manquant ItemGroup.

    <ItemGroup> <None Include="..." /> </ItemGroup>

  4. supprimez cet élément et ouvrez à nouveau votre projet et construisez

  5. Si cette référence est importante pour vous, ajoutez-la à nouveau.
0
Abhishek Shingadiya