Message d'erreur “fichier de Métadonnées '...\Release\project.dll " ne peut pas être trouvé dans Visual Studio”
Récemment, j'ai commencé à avoir ce message au hasard:
Fichier de métadonnées '...\Release\project.dll " ne peut pas être trouvé dans Visual Studio
J'ai une solution avec plusieurs projets. La version actuelle est en mode Debug, et tous les projets configurations sont définies à Déboguer. Mais lorsque j'essaie d'exécuter le projet principal - parfois, il me donne quelques erreurs, qui sont tous des "Métadonnées" fichier...\Release\projectX.dll "ne peut pas être trouvé" - et, regardez, il dit à propos de la LIBÉRATION du dossier, que la mode Debug. Pourquoi? J'ai essayé de chercher de la référence à "Release\projectX.dll" à l'intérieur de tous les fichiers de solution, et j'en ai trouvé un dans ResolveAssemblyReference.fichier de cache.
J'ai fait une bonne recherche sur Internet et a trouvé un petit nombre de personnes avec un problème similaire, mais il n'y a pas de solution, ou au moins pas de solution de travail.
J'ai essayé de supprimer les références à ces projets et de les lire, mais dans quelques temps, j'ai commencez à recevoir ces erreurs à nouveau.
Il semble comme un bug. Pourquoi est-il de la recherche pour des projets référencés dans la Version de dossiers lorsque j'utilise toujours le mode Debug?
PS. Pour ceux qui ont rencontré ce problème: je ne pouvais pas le résoudre d'une manière simple. Il a disparu qu'après que j'ai réinstallé Windows 🙁
- La première chose à faire pour les questions de ce genre est de supprimer la .suo fichier et de le reconstruire.
- ce problème peut se produire si un référencés dll est en utilisant différentes (en bas) de la version de .net Framework
- Je recevais ce problème de façon constante jusqu'à ce que j'ai éteint des constructions parallèles. Je pense qu'il y a un bug dans la génération en parallèle la vérification de la dépendance, peut-être liée à la mise en cache des informations périmées. (Pour mémoire, j'utilise des constructions parallèles maintenant, et je viens de construire à nouveau si le problème se produit, qui fonctionne en général.)
- stackoverflow.com/a/17723774/1724702
- Double Possible de fichier de méta-données '.dll " est introuvable
Vous devez vous connecter pour publier un commentaire.
Tout le monde est correct...tout essayer...(dans l'ordre d'un peu ou beaucoup de temps perdu)
.dll
et.exe
fichier . Pour éviter cela, ouvrez le.csproj
fichier de chaque espace de noms avec un fichier texte , et de trouver de l'ancien chemin d'accès dans le fichier. enlever, nettoyer et reconstruire la solution. Cela a fonctionné pour moi. J'ai passé une journée entière à travailler sur ce problème.J'ai eu exactement le même problème. Grande solution visual studio avec+ de 50 projets.
Toutes les références ont été ajoutées sous forme de projets.
Projet d'ordre de construction est correcte (clic droit sur votre projet et sélectionnez ordre de construction).
Cependant lors de la construction de certains des plus hauts niveau des projets de la "racine" du projet qu'ils dépendent n'ont pas été construits.
Le problème est que ces projets n'ont pas été retenus pour la construction dans la configuration actuelle (je ne sais pas comment c'est arrivé).
Pour vérifier cela, sélectionnez "Gestionnaire de Configuration" (menu de construction) e vérifiez si la problématique projets sont mis à construire.
Quand vous dites que vous avez supprimé les références à ces projets et rajouté eux, comment avez-vous rajouter, exactement? Avez-vous utilisez le bouton "Parcourir" dans l'onglet "Ajouter une Référence" dialogue dans Visual Studio? Ou, avez-vous utilisé l'onglet "Projets" (qui liste les voisins projets dans votre solution)?
Modifier: Si vous utilisez l'onglet "Parcourir", et d'ajouter manuellement la référence pour vos .dll qui se trouve dans le /dossier de Version, puis Visual Studio sera toujours la .dll dans cet endroit, quel que soit le mode, vous êtes actuellement dans (Debug ou Release).
Si vous avez supprimé le réel .fichier dll à partir de la publication du dossier (soit manuellement, soit en faisant "Solution Propre"), puis votre référence pause, car la .dll n'existe pas.
Je te suggère de supprimer la référence à ProjectX.dll et l'ajouter à nouveau-mais cette fois, utilisez l'onglet "Projets" dans le "Ajouter une Référence" boîte de dialogue. Lorsque vous ajoutez une référence de cette façon, Visual Studio ne sait d'où pour obtenir le approprié .dll. Si vous êtes en mode Debug, il va l'obtenir à partir de l' /dossier de Débogage. Si en mode Release, le /dossier de presse. Votre erreur de construction devrait s'en aller, et vous aussi ne sera plus (mal) de la référence d'une Libération .dll en mode Débogage.
Bien, ma réponse n'est pas seulement le résumé de toutes les solutions, mais il offre plus que cela.
Section (1):
En général des solutions:
J'ai eu 4 erreurs de ce type (les métadonnées de fichier n'a pas pu être trouvée") avec 1 erreur de dire " Source de Fichier Ne Peut Être Ouvert ("erreur non spécifiée")'.
J'ai essayé de se débarrasser de métadonnées de fichier n'a pas pu être trouvé d'erreur". Pour cela, j'ai lu de nombreux messages, les blogs, etc et a trouvé ces solutions peuvent être efficaces (les résumer ici):
Redémarrer VS et essayez de construire à nouveau.
Aller à "Solution Explorer". Clic droit sur la Solution. Aller à Propriétés. Aller à "Gestionnaire de Configuration". Vérifier si les cases à cocher sous 'Construire' sont vérifiées ou non. Si tout ou partie d'entre eux ne sont pas cochées, puis de les vérifier et essayer de construction à nouveau.
Si la solution ci-dessus(s) ne fonctionne pas, puis suivez la séquence mentionnée dans l'étape 2 ci-dessus, et même si toutes les cases sont cochées, les décocher, vérifier à nouveau et essayez de construire à nouveau.
Ordre de construction et les Dépendances d'un Projet:
Aller à "Solution Explorer". Clic droit sur la Solution. Aller à 'les Dépendances d'un Projet...'. Vous verrez 2 onglets: 'Dépendances' et "Build Order",. Cet ordre de construction est celui dans lequel la solution s'appuie. Vérifiez les dépendances d'un projet et de le construire afin de vérifier si certaines de projet (dire "projet1"), qui dépend des autres (dire "project2') est d'essayer de construire avant que l'un (project2). Cela peut être la cause de l'erreur.
Vérifiez le chemin d'accès à la disparition de l' .dll:
Vérifiez le chemin d'accès à la disparition de l' .dll. Si le chemin d'accès contient des espaces ou tout autre chemin d'accès non valide caractère, retirez-le et essayez de construire à nouveau.
Si c'est la cause, puis de régler l'ordre de la génération.
Section (2):
Mon cas particulier:
J'ai essayé toutes les étapes ci-dessus avec diverses permutations et les combinaisons avec le redémarrage de VS à quelques reprises. Mais, il ne m'aide pas.
Donc, j'ai décidé de me débarrasser d'une autre erreur, j'ai été à venir à travers les ('Fichier Source ne Peut Pas Être Ouvert ("erreur non spécifiée")').
Je suis tombé sur un blog:
http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539
J'ai essayé les étapes mentionnées dans ce blog et je me suis débarrasser de l'erreur 'Fichier Source ne Peut Pas Être Ouvert ("erreur non spécifiée") ' et étonnamment je me suis débarrassé d'autres erreurs (les métadonnées de fichier n'a pas pu être trouvée") ainsi.
Section (3):
Morale de l'histoire:
Essayer toutes les solutions comme le mentionne le paragraphe (1) ci-dessus (et d'autres solutions) pour se débarrasser de l'erreur. Si rien ne fonctionne sur le blog mentionné dans la section (2) ci-dessus, supprimer les entrées de tous les fichiers sources qui ne sont plus présents dans le contrôle de source et le système de fichiers à partir de votre .fichier csproj.
J'ai eu ce problème avant, et le seul moyen que j'ai trouvé pour résoudre d'exécuter la Solution Propre et redémarrez Visual Studio.
Ré-ouvrez Visual Studio en tant qu'Administrateur.
Pour moi, c'est généralement le framework cible est à off (4.5.2 au lieu de 4.6) Si vous corrigez la cible cadre du projet pour correspondre à la cible cadre de la solution et de construire, une nouvelle .dll sera créé.
La plupart des answares dire que vous devez supprimer les bibliothèques de votre solution, c'est vrai, mais lorsque vous ajoutez de nouveau les bibliothèques de l'erreur sera affiché à nouveau. Vous devez vérifier si toutes les bibliothèques référencées compatible .net framework avec le .net framework de votre solution. Puis fixer toutes les erreurs dans votre code et de reconstruire la solution.
Avez-vous vérifié les paramètres de Configuration manager? Dans le dialogue paramètres du projet coin en haut à droite.
Parfois, il arrive qu'entre toutes les entrées de dédouanement d'une entrée de débogage est en.
Si oui, l'auto dépendance créée par le graphe de dépendance de la solution tout confus.
J'ai aussi vu cette erreur dans les solutions où j'ai plusieurs projets (généralement netTiers projets où j'ai mis à jour un ou plusieurs des sous-projets afin de cibler le framework 4.0). Il peut être difficile à enlever. Souvent, il peut être résolu, cependant, par la fixation de toutes les autres erreurs dans les sous-projets (par exemple, toutes les références manquantes), individuellement reconstruction de ces sous-projets, puis à enlever/rajouter toutes les références à ces sous-projets dans Visual Studio. Personnellement, j'ai eu peu de chance, la résolution de cette erreur par la solution de nettoyage seul.
Nous avons récemment rencontré ce problème après la mise à niveau vers Office 2010 à partir d'Office 2007 - nous avons dû modifier manuellement les références dans notre projet à la version 14 de l'Office Interops nous utilisons dans certains projets.
Espère que ça aide - nous a fallu quelques jours pour comprendre.
Dans mon cas, il a été causé par deux choses (VS.2012):
1) l'Un des projets a été configuré pour AnyCPU au lieu de x86
2) Un projet qui a été référencé avait en quelque sorte la "construction" de la case décochée.
Faire vérifier votre Build | Gestionnaire de Configuration pour obtenir une vue d'ensemble de ce qui est en cours de construction et pour la plate-forme. Aussi assurez-vous de vérifier à la fois Debug & Libération, car ils peuvent avoir des paramètres différents.
Dans mon cas, j'ai eu des erreurs dans mon code. Visual Studio a montré l'erreur que vous avez eu au lieu de la véritable erreurs comme des erreurs de syntaxe ou inconnue des noms de classe. Essayez la solution de nettoyage et de construction de projet après projet. De cette façon, vous permettra de découvrir les erreurs réelles.
Encore une fois, c'est juste ce que la cause de l'erreur pour moi.
J'ai eu ce problème et a pris du temps à le comprendre. Problème est venu quand j'ai enlevé les projets de la solution et a remplacé ceux avec les packages nuget.
Solution semble être bien mais la .csproj fichier contenait toujours les projets à plusieurs reprises à titre de référence.
Semble que VS ne permet pas de nettoyer ce fichier de façon appropriée. C'était encore le référencement supprimés projets sous le capot. Quand supprimé manuellement les références de fichier csproj tout fonctionne à nouveau! wohoo
Ce problème est dû à des fichiers pdb ou CodeContracts.
À résoudre:
Nettoyer votre dossier de sortie et la reconstruction de la solution.
Re-Configurer le CodeContracts ou de la désactiver pour accroissement temporaire.
Nous avons ce problème assez souvent, mais seulement avec des références à C++/CLI projets de projets C#. C'est évidemment un bug au plus profond de Visual Studio et Microsoft a décidé de ne pas corriger, parce que c'est "trop complexe" et ils ont promis une refonte de la génération C++ système qui est désormais ciblée pour Visual Studio; 2010.
C'était il y a quelques temps, et peut-être le correctif est même allé dans Visual Studio; 2008; je n'ai pas suivi sur plus. Cependant, généralement, notre solution a été
J'ai eu le même problème moi-même.
Visual Studio 2013 m'a seulement dit qu'il ne pouvait pas référence à elle, et il ne pouvait pas trouver les métadonnées. Quand j'ai ouvert ma solution (qui a de multiples projets en elle) elle a dit que j'ai été en utilisant les projets inférieurs à la version de framework, de l'un de mes projets.
Donc je suis passé tout à la version 4.5, et cela a fonctionné à nouveau.
Me semble me rappeler avoir un problème similaire il y a quelques mois. Je l'ai résolu temporairement par la copie de référence de la DLL dans le dossier de Version, ainsi satisfaire Visual Studio attentes. Plus tard, j'ai découvert la référence à la Version de la DLL dans mon code. Vous devriez essayer de faire une recherche par le biais de l'ensemble du projet pour \release\project.dll.
Aussi, j'ai remarqué que Visual Studio test de l'unité des projets parfois mettre un "DeploymentItem" attribut sur chacune des méthodes d'essai pointant vers votre cible de DLL, et si vous basculez entre Debug et Release, Visual Studio peuvent se confondre si la DLL n'est plus dans l'emplacement prévu. Dans mon expérience, ces attributs peuvent être supprimés en toute sécurité si vous n'avez pas les mettre là-même dans le cadre d'un déploiement unique" scénario.
J'ai eu ce problème et c'était dû à une défaillance de la méthode dans la délinquance de la bibliothèque (dll) qui ne renvoie pas une valeur, par exemple
Quand je commmented ce tout compilé 🙂
Parfois VS2010 commutateurs de ma configuration à partir de n'Importe quel CPU pour des plates-formes Mixtes. Quand cela arrive, je reçois ce message d'erreur.
De le résoudre de revenir à n'Importe quel CPU:
1. Clic droit sur la solution et sélectionnez propriétés.
2. Cliquez sur Propriétés de Configuration puis de la Configuration du Gestionnaire de bouton.
3. En vertu de l'Actif de la solution de plate-forme de sélectionner n'Importe quel CPU
Je trouve que c'est généralement le cas pour moi quand j'ai encore une déclaration de méthode dans une interface, une classe qui implémente, mais que j'avais supprimé et avait oublié de retirer de l'interface. J'ai l'habitude de simplement enregistrer la totalité de la solution toutes les 30mins n puis il suffit de revenir à une version antérieure si je ne peux pas trouver l'erreur.
J'ai fini par la suppression de mes références (j'avais ajouté correctement à l'aide de l'onglet projets, et ils servent à construire très bien), la main de l'édition de mon .csproj de fichiers et de suppression bizarre entrées qui ne font pas partie -- et réglage de mes sorties pour le debug et release, x86 et le x64 et une unité centrale pour tous "\bin" -- je l'ai construit une fois, puis re-ajout de la référence (encore une fois, à l'aide de l'onglet projets), et tout a commencé à travailler à nouveau pour moi. Ne pas avoir à redémarrer Visual Studio à tous.
Pour moi cela a été causé par l'accumulation de la cible ayant été remanié de manière à ne pas la sortie de la dll. La suppression de ce repli sur la valeur par défaut créer cible fixe le problème.
Il semble se produire lorsque vous commander une solution avec plusieurs projets qui ont des liens entre eux, et vous n'avez pas construit avant. Si vous avez des références directement à la dll, au lieu de référencer le projet, vous aurez ce message.
Vous devriez toujours utiliser l'onglet Projets dans le dialogue Ajouter une Référence à ajouter une référence à un projet dans la même solution. De cette façon, VS pouvez connaître le bon ordre pour construire la solution
même chose m'est arrivé aujourd'hui, comme décrit par Vidar.
J'ai une erreur de compilation dans une Bibliothèque d'aide (qui est référencé par d'autres projets) et au lieu de me dire qu'il y a une erreur dans la Bibliothèque d'aide, le compilateur arrive avec la liste de Métafichier introuvable erreurs de type. Après la correction de l'erreur de génération dans la Bibliothèque d'aide, le Métafichier erreurs disparu.
Est-il un paramètre dans VS pour améliorer cela?
J'ai eu le même problème. J'ai remarqué que ma db contexte (EF4) qui était situé dans le projet dll n'était pas reconnaître pour une raison quelconque. Je l'ai supprimé et créé une autre à la place. et qui a résolu pour moi.
Eu le même problème aujourd'hui.
Ma demande, une des applications Windows Forms, accidentellement avait une référence à lui-même. Bizarre.
Une fois retiré, l'erreur a disparu.
De référence ont été ajoutés à chaque fois, j'ai traîné un contrôle utilisateur, situé dans le projet Windows Forms lui-même, à une forme.
Je suis d'accord avec la plupart des réponses postées ici. Toutefois, si les solutions proposées ne fonctionnent pas, considérez que vous avez probablement un autre type d'erreur dans votre liste d'erreurs, c'est la prévention de VS pour construire un projet DLL nécessaire pour les autres projets. Alors peu importe l'ordre de la génération ou de la configuration, vous ne serez pas en mesure de se débarrasser de "métadonnées" erreur jusqu'les autres questions sont triés.
VÉRIFIER VOTRE DOSSIER DE PROJET. Il ne doit avoir aucun caractère irrégulier comme la virgule et l'espace
par exemple c'est le chemin d'accès incorrect:
d:\my applications\Projet1
et c'est vrai chemin
d:\my_applications\Project1
Visual studio ne peut pas construire le projet quand il y a un non alphabétiques et numériques personnage dans son chemin dans le disque et ça affiche pas de message pour cette faute!
Également l'installation de certains outils ont le même problème quand ils commencent à l'installation et ne peut pas être extrait.
J'ai eu le même problème. De supprimer manuellement et ajouter les dll n'a pas aidé. ClassLibraries ne compile pas pour tous les projets et ont disparu dans la ...\bin\Debug dossier pour le projet [parce que j'ai nettoyé solution par erreur]. Depuis la bibliothèque de classe n'a pas de compilation qui signifie qu'il y a peut être quelques erreurs quelque part dans l'un de ces sous-projets.
Solution: Depuis ma dll étaient là pour la ...\bin\Release dossier, j'ai essayé de reconstruire sur le mode de Libération et trouvé une erreur sur une ligne dans l'un des sous-projets. Résolution de l'erreur et de la reconstruction de la solution de s'en débarrasser au large de la erreur de construction.
Pour moi, Visual Studio a créé un projectname.v11 type de Solution Visual Studio "Options Utilisateur". J'ai supprimé ce fichier et redémarré et tout allait bien.
J'ai eu le même problème et la raison derrière cette question, c'est que le fichier dll du projet de référence est utilisé par un autre processus. Dans mon cas, j'ai été le débogage d'une application et l'application a été attaché avec débogueur visual studio. Lorsque j'ai été re-construction d'une autre application qui utilise le même projet, alors j'ai été faire cette erreur. Après de les attacher, j'ai été en mesure de construire seconde application avec succès.
Ce problème a été résolu. J'ai ouvert le Gestionnaire de paquets Paramètres et cliqué sur "Autoriser NuGet pour télécharger les paquets manquants". Le projet s'appuie.
https://github.com/gitextensions/gitextensions/issues/1969
J'ai aussi eu ce problème aujourd'hui. Le mien a été causé par un dépendance cyclique. Projet Un Projet référencé B et vice versa.
Êtes-vous à l'aide d'une base de données outil de génération de code comme SQLMETAL dans votre projet?
Si oui, vous pouvez être confronté à une pluralisation de unpluralized problème de transition.
Dans mon cas, j'ai noté que certains vieux pluriel (*) les noms de table (sur lequel SQLMETAL ajoute, par défaut, un "s" lettre à la fin) tableau des références à des classes générées par SQLMETAL.
Depuis, j'ai récemment désactivé la Pluralisation des noms, après regerating une base de données relative des classes, certains d'entre eux ont perdu leur "s" préfixe. Par conséquent, toutes les références à la table affectée classes est devenu invalide. Pour cette raison, j'ai plusieurs erreurs de compilation comme suit:
Comme vous le savez, je prend uniquement sur les erreurs à éviter une assemblée à partir de la compilation. Et c'est l'absence de assemply sont liés à des assemblées dépendantes, provoquant l'original "fichier de Métadonnées 'XYZ' n'a pas pu être trouvé"
Après la fixation de classe affecté les tables de références manuellement à leur nom actuel (unpluralized), j'ai enfin pu obtenir mon projet de retour à la vie!
(*) Si l'option Visual Studio > menu Outils > Options > Outils de Base de données > Concepteur O/R > la Pluralisation des noms est activée, certaines SQLMETALl générateur de code va ajouter un "s" lettre à la fin de certains généré table des classes, même si le tableau n'a pas de "s" suffixe sur la base de données cible. Pour de plus amples informations, veuillez vous référer à http://msdn.microsoft.com/en-us/library/bb386987(v=vs. 110).aspx
Ce post a beaucoup de bons conseils. Juste ajouter un de plus.
Dans mon cas, lors d'une fusion, il semble que la solution fichier est manquant quelques références de projet. De nouveau manuellement ajouter le projet à la solution, il fixe. Vous pouvez également modifier manuellement le fichier de solution, mais vous devez être prudent et savoir ce que vous faites.
J'ai eu un problème similaire. J'ai supprimé les classes et d'une interface et d'après ce que mes builds a commencé à échouer.
Dans ma situation, j'ai eu un Dossier avec une interface à l'intérieur.
par exemple, FooSolution.StupidProject.Interfaces
Ce qui s'est passé est que j'ai commenté l'interface IUnicorns (FooSolution.StupidProject.Les Interfaces.IUnicorns), de sorte qu'il ne serait pas plus être utilisés.
Aucun autre projet avait IUnicorn en plus. Tout était très bien.
Cependant...
certains autres projets étaient toujours en ayant à l'aide des déclarations de ce dossier:
Solution:
Au lieu de commenter l'interface comme,
//public interface IUnicorn {
Je commente aussi l'espace de noms au-dessus de l'interface, comme ceci:
Conclusion:
vérifiez votre usage dans d'autres projets.
L' ~30 réponse 🙂
Dans VS2015:
Dans mon cas, faire l'étape-par-étape aidé découvert que mon problème est que sans toutes ces erreurs jeté à gauche et à droite.
Si vous avez eu à connaître, j'ai ajouté Cadre de l'Entité (EF) 6.1.3 via NuGet lorsque le projet a été mis pour .NET 4.5.2. Plus tard, j'ai revu à la baisse la .NET Framework 4, et puis l'erreur a été de plus en plus évidents. Via NuGet, j'ai désinstallé EF et re-il ajouté.
VS 2015, de supprimer "les Analyseurs de' sous 'Références' a résolu le problème
Vérifier si l' .vs dossier dans la racine du projet est masqué ou non. Le mien n'était pas (et devrait) depuis que j'ai fait un copier/coller à partir d'un autre pc. La suppression il a résolu le problème, Visual Studio 2015, simplement recréé pour moi.
Pour moi a été de supprimer/supprimer tout .vs dossier(qui est invisible) et ensuite:
et fait.
J'ai eu ce problème lorsque vous essayez d'ajouter une référence de projet, et après beaucoup de recherche et d'essayer beaucoup de choses d'en haut, ma configuration de build et les sorties étaient correctes.
J'ai finalement juste supprimé le \bin et \obj des dossiers à partir de la source et référence du projet.
Honnêtement, je crois que c'était le
obj
dossier ne contenant pas le bon métadonnées ou endommagé de métadonnées.Tout est fixé maintenant.
C'était avec Visual Studio 2015 - .NET de 4,6 projets.
Mise à JOUR:
Ci-dessus a travaillé sur la première génération, mais sur les versions ultérieures, il a échoué, j'ai donc fini par recréer le fichier de solution, ainsi que la suppression et de la lecture les packages NuGet qui ont été référencés de manière incorrecte dans mes fichiers de projet, qui fait référence à la mauvaise indicateur de chemin de.
Qui semblait avoir fixé jusqu'à présent sur les versions ultérieures.
Un échantillon de référence à l'intérieur d'un .fichier csproj
J'ai eu le même problème, non des réponses, il fixe avant. Apparemment, cela pourrait être un problème avec la .fichier csproj. Pour une raison quelconque, les références à des fichiers qui n'étaient même pas fait n'importe où dans mon code était toujours "manquant".
Ouvrir votre .csproj fichier avec un éditeur de texte et recherchez les fichiers manquants, de supprimer, de les enregistrer et d'être heureux.
dans mon cas, je travaille sur une branche master. j'ai donc vérifié la branche master, a couru un build puis vérifié ma branche. Il fixe le problème. Si vous êtes déjà sur le maître, je vous suggère de vérifier précédente livraison, puis le construire.