Visual studio - avoir d'erreur “fichier de Métadonnées 'XYZ' n'a pas pu être trouvé” après la modification continuer
Je suis tombé sur un problème qui est vraiment ennuyeux.
Quand je debug de mon logiciel, tout est OK, mais si j'ai touché un point d'arrêt et de modifier le code, quand j'essaie de continuer l'exécution j'obtiens une erreur:
Metadata file 'XYZ' could not be found
Après avoir regardé autour pendant un moment, j'ai trouvé quelques un des problèmes similaires, mais ils étaient tous ce qui concerne une construction d'échec, ce qui n'est pas mon cas (cela se produit uniquement après l'edit de continuer).
Ce que j'ai essayé jusqu'à présent:
- Mon code compile et s'exécute.
- J'ai nettoyé la solution et redémarré VS.
- J'ai fait en sorte que le fichier manquant du projet est en cours de construction pour la configuration, je suis en cours d'exécution (dans le gestionnaire de configuration).
- J'fabriqués manuellement le fichier manquant du projet.
Quelques informations supplémentaires:
- Il n'a pas d'importance ce que je change, reçois toujours le même message d'erreur (le changement n'est pas lié au fichier manquant).
- Cela arrive aussi quand j'ai une pause et de continuer (et pas seulement des points d'arrêt)
- Je suis en cours d'exécution du projet à l'aide d'une configuration personnalisée (gestionnaire de configuration...). Lorsque je l'exécute à l'aide de la valeur par défaut
Debug
configuration de l'erreur ne se produit pas.
Des idées?
- Le potentiel de solution rapide pour de nombreux en réinitialisant les dépendances d'un projet - voir ma réponse ci-dessous: stackoverflow.com/a/34596007/2284031
- stackoverflow.com/a/17723774/1724702
- Dans mon cas, une erreur de compilation se cachait à l'intérieur de la botte de foin de plusieurs dizaines de
Metadata file could not be found
erreurs.
Vous devez vous connecter pour publier un commentaire.
Finalement, ce qui a résolu le problème était:
Je suppose que pour une raison quelconque, il suffit de nettoyer la solution a un effet différent que spécifiquement le nettoyage de chaque projet individuellement.
Edit:
Comme par @maplemale commentaire, Il semble que, parfois, la suppression et re-ajout de chaque référence est également nécessaire.
Mise à jour 2019:
Cette question a obtenu beaucoup de trafic dans le passé, mais il semble que, depuis VS 2017 a été libéré, il a reçu beaucoup moins d'attention.
Une autre suggestion serait - mise à Jour vers une version plus récente de VS (>= 2017) et entre autres les nouvelles fonctionnalités de ce problème peut aussi être résolu
Autant que je peux dire, ce qui arrive quand les dépendances du projet se foiré pour quelque raison que ce soit (alors que toutes les inter-projet, les références sont toujours intactes. Pour de nombreux cas, il n'est PAS un code. Et pour ceux qui ont plus que quelques projets, en passant par un par un n'est PAS acceptable.
Il est facile de réinitialiser les dépendances d'un projet -
Pour ceux qui ont un problème dans leur code ou d'un autre problème qui est la cause de ce problème, vous devez évidemment avoir à résoudre cette question en premier.
Une raison possible pourrait être que vous avez mis à niveau de certains de vos projets (dans la solution) à la version supérieure par exemple à partir .NET 4.0 à 4.5 Ce qui s'est passé dans mon cas, lorsque j'ai ouvert la solution de VS 2013 (initialement créés à l'aide de visual studio 2010 et .NET 4.0). Quand j'ai ouvert en VS 2013 mon projet C++ s'est mis à jour à .NET 4.5 et j'ai commencé à voir le problème.
Généralement ce genre d'erreur est livré avec des erreurs humaines, comme si nous changeons l'espace de noms dans un mauvais chemin, ou la modification des noms de dossier à partir de l'explorateur de projet en cours etc, où le compilateur ne détecte parfois.
Je suis tombé sur la même erreur, de résoudre j'ai essayé quelques étapes. Veuillez suivre toutes les étapes :
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "**Client**", "**Client** \ **Client**.csproj", "{4503E259-0E3B-414A-9074-F251684322A5}"
EndProject
Vérifier de nouveau Foldernames (j'ai mis en GRAS) et le faire ressembler à ce que vous avez fait dans étape 2.
Nettoyer l'ensemble de la solution de nouveau
Construire La Solution (Si elle ne fonctionne pas essayer de construction individuelle après le nettoyage à nouveau)
Assurez-vous que tous vos projets dépendants sont en utilisant la même .Net Framework version. J'ai eu le même problème causé par une personne à charge du projet à l'aide 4.5.1, tandis que tous les autres ont été à l'aide de 4.5. Modification du projet de 4.5.1 à 4.5 et la reconstruction de ma solution a résolu ce problème pour moi.
XYZ ne pouvait pas être trouvé, car on ne construit pas encore....
Clic droit sur la solution et vérifier les Dépendances d'un Projet, le Projet de Construire devrait aussi changer selon les dépendances qui ont été définies.
La seule chose qui a fonctionné pour moi a été de supprimer la Solution d'Options de l'Utilisateur (
.suo
) fichier. Remarque, c'est un fichier caché.Pour localiser ce fichier, fermez votre Virsual studio et de la recherche .suo depuis l'explorateur de fichier dans votre projet.
PS: une nouvelle .suo fichier sera créé à nouveau lorsque vous reconstruisez votre projet et nous espérons que cette nouvelle habitude de vous donner des problèmes.
J'espère que ça aide quelqu'un à se débarrasser de ce un erreur :).
J'ai eu ce problème pendant des jours! J'ai essayé tous les trucs ci-dessus, mais le problème revenait. Lorsque ce message est affiché, il peut avoir le sens de "un ou plusieurs projets dans votre solution n'a pas compiler proprement" ainsi, les métadonnées pour le fichier n'a jamais été écrite. Mais dans mon cas, je n'ai pas vu tout de l'autre des erreurs de compilation!!! J'ai continué à travailler à essayer de compiler chaque solution manuellement, et seulement après l'obtention de VS2012 à fait en révéler quelques erreurs de compilation que je n'avais pas vu précédemment, ce problème a disparu.
Je dupé autour avec les ordres de construction, pas de construire des commandes, référencement de débogage dll (qui ont été manuellement compilé)... RIEN ne semblait fonctionner, jusqu'à ce que j'ai trouvé ces erreurs qui ne se présentent pas lors de la compilation de l'ensemble de la solution!!!!
Parfois, il semble que, lors de la compilation, le compilateur va exister sur certaines erreurs... j'ai vu cela dans le passé, après la fixation de questions, à la suite compile montrer de NOUVELLES erreurs. Je ne sais pas pourquoi cela arrive et c'est assez rare pour moi d'avoir ces problèmes. Toutefois, si vous ne disposez pas de cette façon, c'est une vraie douleur en essayant de trouver ce qu'il se passe. Bonne Chance!
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 à la "Solution Explorer". Clic droit sur la Solution. Allez dans les Propriétés. Allez dans "Configuration Manager". Vérifier si les cases à cocher en vertu de la "construction" sont coché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 à la "Solution Explorer". Clic droit sur la Solution. Aller à 'les Dépendances d'un Projet...'. Vous verrez 2 onglets: les 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.
Ê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
Espère que cela aide!
J'ai eu cette erreur venir. J'ai suivi toutes les solutions ici, mais rien n'a fonctionné. J'ai été à l'aide de Visual Studio 2013 Professional. Je ne pouvais pas obtenir le projet individuel reconstruit à travailler et j'ai finalement compris qu'il y avait un dépendance circulaire dans mes références. Visual Studio fait un assez bon travail normalement de vous avertir si vous ajoutez une référence à quelque chose qui fait référence en arrière, mais pour quelque raison il n'a pas dans ce cas. J'ai ajouté une référence à un projet de référence le projet que je travaillais sur - et il a accepté. VS bug peut-être?
Mes 5 cents.
Ce problème a commencé après une solution du grand nettoyage.
J'ai réussi à prendre le problème à l'aller par le réglage de la configuration de la Solution Active dans: Build -> gestionnaire de Configuration de la libération. Ensuite, à construire et à définir à déboguer à nouveau. La compilation a réussi par la suite.
Près VS, de localiser et de supprimer les 'packages' dossier de l'extérieur de visual studio. Redémarrez VS et build -> toutes les dépendances sont réinstallés
Pour une nouvelle construction, il se pourrait que certaines dépendances ne sont pas installés. Pour moi, c'était Crystal Reports.
ceci se produit en raison de la différence des noms dans le nom de dossier et le nom d'espace de noms. Si u créer un espace dans un nom , et, plus tard, de le renommer l'espace de noms, l'ancien nom de lui-même. Et la compilation va prendre l'ancien chemin pour trouver la
.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.
Il se passe quand un projet dll est en échec, et qui est référencé par un certain nombre de projets. Donc en premier lieu de la réparer, et puis de Construire des individus.
My code is compiling and running.
J'ai eu ce problème et il a commencé après l'importation de notre solution de TFS comme un nouveau projet.Je suis tombé sur ce sujet et a trouvé une solution rapide avec un peu d'inspiration à partir de vos réponses.
Tout ce que je nécessaire à faire est de reconstruire le projet c'est soi-disant perdu son fichier de métadonnées et voila , le problème est résolu.
Il y a aussi un autre idiot raison pour laquelle vous devriez vérifier avec de la patience... comme il m'est apparu après perdre 4 heures à la recherche de réponses:
L'histoire pour moi c'est que j'ai accidentellement changé une petite ligne de code parmi des milliers de c# fichiers de classe et d'essayer de reconstruire la solution. Comme vous pouvez l'imaginer, je me suis retrouvé avec 40+ méta-fichier de données manquantes erreurs et avec 1 erreur de compilation parmi eux -- que je n'ai pas de vérifier soigneusement, purement pensant que toutes les erreurs ont été les mêmes!
après 4 heures de recherche, puis accidentellement une double vérification de ma liste d'erreurs, j'ai trouvé que la stupide erreur de code, il fixe, compilé, et puis d'erreur a disparu.
Pas une bonne réponse à votre problème, mais n'espère que mon cas n'était pas même à la vôtre.
J'ai eu le même problème. Dans mon cas, j'avais par erreur, j'avais mis tous les projets au-delà du projet avec les principaux de la méthode d'application de console.
À résoudre, je suis allé à chaque projet autre que celui avec la fonction principale et clic droit> properites > type de sortie > bibliothèque de classe
il était arrivé à moi parce que j'ai un étrange affrontement dans les espaces de noms:
J'ai eu
AssemblyA
avec l'espace de noms
AssemblyA.ParentNamespace
sorcière définit ClassA
et dans la même assemblée, un autre espace de noms avec le nom
AssemblyA.ParentNamespace.ChildNamespace
sorcière définit un autre ClassA (mais avec le même nom)
J'avais alors dans AssemblyA.ParentNamespace IInterfaceB sorcière avait une méthode que dans le début, renvoie IEnumerable et un ClassB sorcière met en œuvre IInterfaceB
Que j'ai ensuite modifié la méthode dans ClassB de retour IEnumerable mais j'ai oublié de mettre à jour le IInterfaceB définition, de sorte que la méthode il y a encore de retour IEnumerable
le fait amusant, c'est que la solution encore compiler si je fait un tout reconstruire, mais les tests de la sorcière se réfère AssemblyA didsn fonctionne pas et renvoie le "fichier de Métadonnées n'a pas pu être trouvé"erreur.
mise à jour InterfaceB à renvoyer correctement IEnumerable de son réalisateur ClassB n'a résolu le problème, malheureusement, le message d'erreur était vague et aussi le fait que la compilation a fonctionné me fait supposer que peut-être il ya quelque chose à corriger dans le compilateur
J'ai eu ce et réussi à le résoudre à l'aide de cette SORTE de réponse:
Le fichier de métadonnées '.dll " n'a pas pu être trouvé
J'ai dû décocher toutes les cases, cliquez sur Appliquer, réactiver toutes les cases à cocher et puis cliquez sur appliquer de nouveau, mais il a résolu le problème.
Je viens de tomber sur ce problème, et après une heure de vissage autour de réalisé que j'avais ajouté un aspx fichier de mon produit qui avait le même nom que l'une de mes Linq-to-Sql classes.
La classe et la Page où la "File d'attente".
Modifié la page pour QueueMgr.aspx et tout ce qui construit l'amende juste.
Un collègue était en cours d'exécution sur le problème et la cause a été éluder nous. Finalement, nous avons réalisé que le répertoire du projet (et donc le chemin vers les packages NuGet) contenues
%20
(merci, certains Git outil graphique qui ne sera pas nommé) et les messages d'erreur ont montré que le compilateur a la recherche d'une très semblables, mais qui avait à%20
, plutôt un espace. Apparemment, quelque chose dans le système de construction, quelque part effectue HTML-décodage sur le système de fichiers local chemins d'accès.Renommé le répertoire de la copie de travail et tout a commencé à travailler.