Le fichier de métadonnées '.dll " n'a pas pu être trouvé

je travaille sur un projet WPF, C # 3.0, et je reçois cette erreur:

Error 1 Metadata file
'WORK=- ToolsVersionManagementSystemBusinessLogicLayerbinDebug
BusinessLogicLayer.dll' could not be found C:-=WORK=- Tools
VersionManagementSystemVersionManagementSystemCSC VersionManagementSystem

C'est ainsi que je me réfère à mes usercontrols:

xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>

ça arrive après chaque construction ratée. La seule façon d'obtenir la solution pour compiler est de commenter tous mes contrôles d'utilisateur et de reconstruire le projet, puis je décommente les contrôles d'utilisateur et tout va bien.

j'ai vérifié les commandes de construction et les dépendances configuration.

comme vous pouvez le voir, il semble avoir tronqué le chemin absolu du fichier DLL... J'ai lu qu'il y a un bug avec la longueur. Est-ce un problème?

c'est très ennuyeux et avoir à commenter, construire, et décommenter, la construction devient extrêmement ennuyeux.

502
demandé sur Peter Mortensen 2009-09-14 18:19:59

30 réponses

j'ai eu le même problème. Visual Studio ne construit pas le projet référencé.

  1. clic droit sur la solution et cliquez Propriétés.
  2. cliquez sur Configuration à gauche.
  3. assurez-vous que la case à cocher sous" construire " pour le projet qu'il ne trouve pas est cochée. Si elle est déjà cochée, décochez, appuyez sur Appliquer et cochez à nouveau les cases.
619
répondu Matt_Bro 2015-04-29 09:11:50

cela peut encore se produire dans les nouvelles versions de Visual Studio (je viens de le faire sur Visual Studio 2013):

une autre chose à essayer est de fermer Visual Studio et supprimer le fichier .suo qui est à côté du fichier .sln . (Il va être re-généré la prochaine fois que vous Save all (ou à la sortie de Visual Studio)).

j'ai eu ce problème en ajoutant de nouveaux projets à la solution sur une autre machine et en tirant les révisions dans, mais le fichier .suo peut être corrompu dans d'autres cas et conduire à un comportement visuel Studio très étrange, donc la suppression est l'une des choses que j'essaie toujours.

notez que la suppression du fichier .suo réinitialisera le(s) projet (s) de démarrage de la solution.

plus sur le fichier .suo est ici .

177
répondu corvuscorax 2018-04-19 14:29:58

La réponse n'a pas fonctionné pour moi. L'erreur est un leurre pour un autre problème.

j'ai découvert que je ciblais une version légèrement différente de .NET et cela a été signalé comme un avertissement par le compilateur, mais cela a causé l'échec de la construction. Cela aurait dû être signalé comme une erreur et non un avertissement.

102
répondu jordan koskei 2018-04-19 15:15:41

eh Bien, ma réponse n'est pas seulement le résumé de toutes les solutions, mais il offre plus que cela.

de la Section (1):

en solutions générales:

j'ai eu quatre erreurs de ce genre (‘le fichier de métadonnées ne pouvait pas être trouvé’) ainsi qu'une erreur disant 'le fichier Source ne pouvait pas être ouvert (‘erreur non spécifiée ‘)'.

j'ai essayé de se débarrasser de " fichier de métadonnées pourrait pas trouvé d'erreur". Pour cela, j'ai lu de nombreux messages, les blogs, etc. et trouvé ces solutions peuvent être efficaces (en les résumant ici):

  1. redémarrez Visual Studio et essayez de construire à nouveau.

  2. Aller à Solution Explorer " . Clic droit sur Solution. Allez à propriétés . Passez à " Gestionnaire de Configuration " . Vérifiez si les cases sous 'Construire' sont cochées ou non. Si l'un d'entre eux ou la totalité d'entre eux ne sont pas contrôlés, alors vérifiez-les et essayez de construire à nouveau.

  3. si la ou les solutions ci-dessus ne fonctionnent pas, suivez la séquence mentionnée à l'étape 2 ci-dessus, et même si toutes les cases à cocher sont cochées, décochez-les, Vérifiez à nouveau et essayez de construire à nouveau.

  4. Ordre de construction et les Dépendances d'un Projet:

    Aller à Solution Explorer " . Clic droit sur Solution. Passez à 'dépendances de projet..." . Vous verrez deux onglets: 'Dépendances' et "Build Order", . Cet ordre de construction est celui dans lequel la solution s'appuie. Vérifiez les dépendances du projet et l'ordre de construction pour vérifier si un projet (par exemple 'project1') qui dépend d'un autre (par exemple 'project2') essaie de construire avant celui-ci (project2). Cela peut être la cause de l'erreur.

  5. vérifiez le chemin des disparus .dll:

    vérifiez le chemin des disparus .DLL. Si le chemin contient de l'espace ou tout autre caractère de chemin invalide, supprimez-le et essayez de reconstruire à nouveau.

    si c'est la cause, ajustez l'ordre de construction.


Section (2):

mon cas particulier:

j'ai essayé toutes les étapes ci-dessus avec diverses permutations et combinaisons avec Redémarrage Visual Studio à quelques reprises. Mais, il ne m'aide pas.

donc, j'ai décidé de me débarrasser de l'autre erreur que j'ai rencontrée ('le fichier Source ne pouvait pas être ouvert (‘erreur non spécifiée ‘)').

je suis tombé sur un billet de blog: TFS Le fichier source d'erreur N'a pas pu être ouvert ('erreur non spécifiée‘)

j'ai essayé les étapes mentionnées dans ce billet de blog, et je me suis débarrassé de l'erreur 'le fichier Source ne pouvait pas être ouvert (‘erreur non spécifiée‘) ' et étonnamment j'ai éliminé d'autres erreurs (‘le fichier de métadonnées ne pouvait pas être trouvé’) ainsi.


Section (3):

Morale de l'histoire:

essayer toutes les solutions mentionnées dans la section (1) ci-dessus (et toute autre solution) pour se débarrasser de l'erreur. Si rien ne fonctionne, selon le blog mentionné dans la section (2) ci-dessus, supprimer les entrées de tous les fichiers source qui ne sont plus présents dans le contrôle source et le système de fichiers à partir de votre .fichier csproj .

77
répondu Vikram 2018-04-19 14:35:21

dans mon cas, cela a été causé par une inadéquation de la version .net Framework.

un projet était 3.5 et l'autre projet de référence 4.6.1.

31
répondu Eric Schneider 2018-04-19 15:18:04

fermer et rouvrir Visual Studio 2013 a fonctionné pour moi!

20
répondu Roffers 2018-04-19 14:58:59

Eh bien, rien dans les réponses précédentes n'a fonctionné pour moi, donc ça m'a fait réfléchir sur pourquoi je clique et espérer quand en tant que développeurs nous devrions vraiment essayer de comprendre ce qui se passe ici.

il me semblait évident que cette référence incorrecte de fichier de méta-données devait être conservée quelque part.

Une recherche rapide .le dossier csproj montre les coupables. J'avais une section appelée < itemGroup> qui semblait être accrochée à l'ancienne incorrecte chemin d'accès du fichier.

<ItemGroup>
    <ProjectReference Include="..\..\..\MySiteOld\MySite.Entities\MySite.Entities.csproj">
        <Project>{5b0a347e-cd9a-4746-a3b6-99d6d010a6c2}</Project>
        <Name>Beeyp.Entities</Name>
    </ProjectReference>
...

pour une solution simple, vraiment:

  1. la Sauvegarde de vos .fichier csproj.
  2. trouver les chemins incorrects dans le .csproj fichier et renommer de façon appropriée.

s'il vous Plaît assurez-vous de sauvegarder votre ancien .csproj avant de vous tripoter .

15
répondu Alex Stephens 2018-04-19 14:49:06

j'ai eu le même message d'erreur "fichier de méta-données '.dll" ne pouvait pas être trouvé", et j'ai essayé plusieurs choses décrites ci-dessus, mais la raison de l'erreur était que je faisais référence au fichier DLL tiers qui ciblait une version .NET plus élevé que mon projet cible version .NET. La solution était donc de changer le cadre cible de mon projet.

13
répondu Mladen Nikolov 2018-04-19 15:16:57

j'ai également rencontré ce problème. Tout d'abord, vous devez construire manuellement votre projet DLL, par clic droit, construire. Ensuite, il sera.

12
répondu BlueRaja - Danny Pflughoeft 2013-12-17 12:02:01

dans mon cas, j'ai installé mon répertoire de manière erronée.

si votre chemin de solution est quelque chose comme "mon projet%2C très populaire%2C Unité de test%2C Logiciel et matériel.zip", il ne peut pas résoudre le fichier de métadonnées, peut-être devrions-nous empêcher certains mots invalides comme %2C.

renommer le chemin en nom normal a résolu mon problème.

10
répondu masphei 2015-03-27 08:03:13

j'ai ajouté un nouveau projet à ma solution et j'ai commencé à obtenir ceci.

la raison? Le projet que j'ai introduit ciblait un cadre .NET différent (4,6 et mes deux autres étaient 4,5, 2).

10
répondu Todd Vance 2018-04-19 15:13:16

je me tirais les cheveux avec ce problème aussi, mais après avoir essayé les réponses précédentes la seule chose qui a fonctionné pour moi était d'ouvrir chaque projet dans ma solution 1 par 1 et les construire individuellement.

puis J'ai fermé Visual Studio 2013, réouvert ma solution et ça s'est très bien compilé.

c'est étrange, parce que si j'ai cliqué sur chaque projet dans mon explorateur de solutions et essayé de les construire de cette façon, ils ont tous échoué. J'ai dû ouvrir les seuls dans leurs propres solutions.

8
répondu prospector 2018-04-19 14:54:15

pour moi il s'est produit quand j'ai inclus un nouveau projet à la solution.

Visual Studio sélectionne automatiquement .net framework 4.5.

j'ai changé en version .net 4.5.2 comme les autres bibliothèques, et ça a marché.

8
répondu Andre Mesquita 2018-04-19 15:41:41

Pour moi, c'était d'essayer de trouver une DLL dans un chemin qui contenait le Projet, mais nous avions déménagé dans un nouveau répertoire. La Solution avait le bon chemin vers le projet, mais Visual Studio continuait à chercher dans l'ancien emplacement.

Solution: renommer chaque projet de problème - il suffit d'ajouter un caractère ou quoi que ce soit - puis le renommer à son nom d'origine.

cela doit réinitialiser une sorte de cache global dans Visual Studio, parce que cela efface cette question et plusieurs comme elle, alors que les choses comme propre ne le font pas.

7
répondu Chris Moschini 2014-01-28 06:14:08

pour moi, les étapes suivantes ont fonctionné:

  • trouver le projet qui ne construit pas
  • supprimer/ajouter les références aux projets dans la solution.
7
répondu Baglay Vyacheslav 2018-04-19 14:37:11

mon exemple du problème a été causé par un projet commun qui avait un nom de classe dupliqué (sous un nom de fichier différent). Il est étrange que Visual Studio n'ait pas pu le détecter et ait simplement fait exploser le processus de construction.

6
répondu Eric 2018-04-19 14:38:01

J'ai eu ce problème dans Visual Studio 2012 dans une solution qui avait de nombreux projets. Reconstruire chaque projet dans la solution manuellement dans le même ordre que le projet construire L'ordre (clic droit et reconstruire dans Solution Explorer) l'a fixé pour moi.

finalement j'en suis arrivé à un qui m'a donné une erreur de compilation. J'ai corrigé l'erreur, et la solution se construirait correctement après cela.

6
répondu dan-gph 2018-04-19 14:43:13

dans mon cas, le problème a été causé par une simple erreur de construction,

erreur CS0067: l'événement 'XYZ' n'est jamais utilisé

qui, pour une raison quelconque, ne s'affichent pas dans la fenêtre d'erreur.

à cause de cela, le système de construction de Visual Studio a semblé manquer l'erreur et a essayé de construire des projets dépendants, qui à leur tour échoué avec le message de métadonnées ennuyeux.

le la recommandation est-aussi stupide qu'elle puisse paraître -:

regardez D'abord votre fenêtre de sortie !

il m'a fallu une demi-heure avant que cette idée me frappe...

5
répondu Heinz Kessler 2018-04-19 15:10:43

dans mon cas, le problème était que j'avais supprimé manuellement un fichier de non-compilation qui était marqué comme"manquant". Une fois que j'ai supprimé la référence au fichier maintenant-manquant et recompilé - tout était bien.

4
répondu David Ford 2014-04-10 13:42:08

j'ai eu le même problème. Dans mon cas, le projet serait encore construire en mode release et c'était juste quand j'ai essayé de construire en debug qu'il a échoué.

ce que j'ai fini par faire pour corriger le problème était simplement copier tous les dlls (et autres fichiers de mon dossier release) dans mon dossier de débogage. Après avoir fait cela, pour chaque projet, les erreurs fondu.

4
répondu Jack Fairfield 2015-05-13 18:01:29

si vous avez un espace dans votre nom de solution, cela causera aussi le problème. Enlever l'espace de votre nom de solution, donc le chemin ne contient pas %20 résoudra cela.

4
répondu Ajaco 2015-06-17 17:24:34

ne fait que souligner une évidence évidente: si vous n'avez pas activé" afficher la fenêtre de sortie au début de la compilation", assurez-vous de remarquer si votre compilation échoue (petite erreur" build failed " en bas à gauche)!!!!

4
répondu tbone 2015-07-09 17:42:46

j'ai eu cette erreur quand j'ai essayé de publier une application web. Il s'est avéré que l'une des propriétés d'une classe a été enveloppé dans

#if DEBUG
    public int SomeProperty { get; set; }
#endif

mais l'usage de la propriété n'était pas. La publication a été faite en configuration de publication sans le symbole DEBUG , évidemment.

4
répondu Dmitri Trofimov 2015-09-04 09:31:47

pour revenir à cela quelques années plus tard, ce problème est plus que probablement lié à la limite de chemin maximale de Windows:

fichiers de nommage, chemins et espaces de noms , Limitation de la longueur maximale du trajet

4
répondu Oliver 2018-04-19 14:18:26

je dirige Visual Studio 2013.

Il semble que les dépendances de construction étaient incorrectes. La suppression de l' *.suo files a réglé les problèmes que j'avais.

4
répondu DrBB 2018-04-19 14:58:20

pour mon cas, c'est que j'avais commenté les classes dans un espace de noms spécifique (vide):

namespace X.Y.Z.W
{

    // Class code

}

quand j'ai supprimé le code namespace et les commandes d'importation (d'utilisation) de celui - ci-il a corrigé le problème.

dans la construction il disait aussi - avec le fichier DLL manquant du projet:

erreur CS0234: le type ou le nom d'espace de noms 'W' n'existe pas dans L'espace de noms 'X. Y. Z' (est-ce que vous manquez un référence de l'assemblage?)

4
répondu Michail Michailidis 2018-04-19 15:12:09

moi aussi j'ai eu la même erreur. Il se cache comme dans le chemin ci-dessous. Le chemin auquel j'ai fait référence pour le fichier DLL est comme "D:\Assemblies Folder\Assembly1.DLL."

mais le chemin original auquel se référait l'assemblée était "D:\Assemblies%20Folder\Assembly1.DLL."

en raison de cette variation de nom de chemin, l'ensemble n'a pas pu être récupéré à partir de son chemin d'origine et jette donc l'erreur" Metadata not found".

la solution est dans la question , , Comment puis-je remplacer tous les espaces par %20 en C#? .

4
répondu Arun Prasad 2018-04-19 15:21:08

il ressemble à ce genre d'erreurs liées au fait que Visual Studio ne fournit pas des informations correctes sur une erreur. Le développeur ne comprend même pas la raison de l'échec de la construction. Il peut être une erreur de syntaxe ou autre chose. En commun, pour résoudre de tels problèmes, vous devriez trouver la racine du problème (par exemple, regardez le journal de génération).

dans mon cas, le problème était en fait que la fenêtre Error List ne montrait aucune erreur. Mais vraiment là étaient des erreurs de syntaxe; j'ai trouvé ces erreurs dans la fenêtre Output , et après les avoir corrigées, le problème a été résolu.

4
répondu burzhuy 2018-04-19 15:38:29

j'avais fait face au même problème. Dans mon cas, j'avais fait référence à un projet de bibliothèque de classe avec plus version .Net que mon projet et VS n'a pas réussi à construire le projet et a soulevé la même erreur que vous avez posté.

j'ai simplement placé version .Net de mon projet de bibliothèque de classe(celui qui avait cassé la construction) identique à la version .Net du projet référencé et Problème résolu.

4
répondu Code_Worm 2018-06-21 16:07:27

cette erreur peut s'afficher si vous utilisez de faux assemblages. L'élimination des faux mène à la construction réussie du projet.

3
répondu FLCL 2018-04-19 14:50:49