927 votes

Le fichier de métadonnées '.dll' est introuvable.

Je travaille sur un projet WPF, C# 3.0, et j'obtiens cette erreur :

Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem

C'est ainsi que je référence mes contrôles d'utilisateur :

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

Cela se produit après chaque échec de la compilation. La seule façon d'obtenir la compilation de la solution est de commenter tous mes contrôles utilisateur et de recompiler le projet, puis de décommenter les contrôles utilisateur et tout va bien.

J'ai vérifié les ordres de construction et les configurations des dépendances.

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

C'est très ennuyeux et le fait de devoir commenter, construire et décommenter la construction devient extrêmement fatigant.

12 votes

J'ai eu un problème similaire (obtenir la même erreur que celle indiquée dans le titre) et je l'ai résolu en nettoyant et en reconstruisant le projet. Pour référencer correctement d'autres projets, je n'ai aucune idée

7 votes

J'ai marqué la réponse de Matt car elle semble avoir fonctionné pour la plupart des gens, mais elle n'a pas résolu mon problème initial. Je pense toujours que le problème est lié à la limite maximale de chemins d'accès de Windows. Voir ma réponse ci-dessous.

1156voto

Matt_Bro Points 1094

Je viens d'avoir le même problème. Visual Studio ne construit pas le projet qui est référencé.

Instructions écrites :

  1. Faites un clic droit sur la solution et cliquez sur Propriétés.
  2. Cliquez sur Configuration dans la partie gauche.
  3. Assurez-vous que la case à cocher sous "Build" pour le projet qu'il ne peut pas trouver est cochée. Si elle est déjà cochée, décochez-la, cliquez sur Appliquer et cochez à nouveau les cases.
  4. (Facultatif) Vous avez dû le faire pour les modes Release et Debug dans les propriétés de la solution.

Capture d'écran Instructions :

  • On dit qu'une image vaut mille mots. Cliquez sur le GIF pour l'agrandir, et j'espère qu'il sera facile à suivre :

Gif Instructions

190 votes

Et, dans mon cas, même si la case était cochée, le fait de la décocher et de la cocher à nouveau a réglé le problème.

17 votes

Cela a réglé mon problème - j'ai dû le faire pour les modes Release et Debug dans les propriétés de la solution. Merci !

171 votes

Le simple fait de décocher/cocher n'a pas résolu le problème, j'ai donc dû procéder aux étapes suivantes : - nettoyer la solution - décocher toutes les cases de construction - redémarrer VS - cocher toutes les cases de construction - construire la solution.

263voto

corvuscorax Points 1759

Cela peut encore se produire dans les versions plus récentes de Visual Studio (je viens d'avoir ce problème avec Visual Studio 2013) :

Une autre chose à essayer est de fermer Visual Studio et de supprimer le fichier .suo qui se trouve à côté du fichier .sln fichier. (Il sera re-généré la prochaine fois que vous Save all (ou quittez Visual Studio)).

J'ai rencontré ce problème lorsque j'ai ajouté de nouveaux projets à la solution sur une autre machine et que j'ai ensuite transféré les révisions dans la solution. .suo peut être corrompu dans d'autres cas également et entraîner un comportement très étrange de Visual Studio, aussi sa suppression est-elle l'une des choses que j'essaie toujours.

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

Plus d'informations sur le .suo est ici .

29 votes

Cela a réglé le problème pour moi. Il convient également de mentionner que .suo sont cachés. Vous devez donc configurer votre explorateur pour qu'il affiche les fichiers cachés.

6 votes

Je travaille avec un projet Xamarin et le fichier .suo est situé dans le dossier .vs/ . J'ai essayé de le supprimer mais cela n'a pas résolu mon problème.

0 votes

VS2013 - J'ai dû déplacer mon espace de travail TFS vers un autre emplacement. Après avoir effectué cette opération, j'ai commencé à obtenir cette erreur. La suppression du fichier sou a fonctionné pour moi.

224voto

jordan koskei Points 2461

La réponse proposée 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 que cela était signalé comme un avertissement par le compilateur, mais que cela faisait échouer la construction. Cela aurait dû être signalé comme une erreur et non comme un avertissement.

121voto

Vikram Narkar Points 758

Eh bien, ma réponse n'est pas seulement le résumé de toutes les solutions, mais elle offre plus que cela.

Section (1) :

Dans les solutions générales :

J'ai eu quatre erreurs de ce type ('le fichier de métadonnées n'a pas pu être trouvé') ainsi qu'une erreur disant 'Le fichier source n'a pas pu être ouvert ('Unspecified error ')'.

J'ai essayé de me débarrasser de l'erreur "Impossible de trouver le fichier de métadonnées". Pour cela, j'ai lu de nombreux articles, blogs, etc. et j'ai trouvé que ces solutions pouvaient être efficaces (je les résume ici) :

  1. Redémarrez Visual Studio et réessayez de construire.

  2. Aller à Explorateur de solutions . Cliquez avec le bouton droit de la souris sur Solution. Allez à Propriétés . Aller à Gestionnaire de configuration . Vérifiez si les cases à cocher sous "Construire sont vérifiés ou non. Si l'un d'entre eux ou tous ne sont pas cochés, vérifiez-les et réessayez de construire.

  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 sont cochées, décochez-les, vérifiez à nouveau et essayez de construire à nouveau.

  4. Ordre de construction et dépendances du projet :

    Aller à Explorateur de solutions . Cliquez avec le bouton droit de la souris sur Solution. Allez à "Dépendances du projet... . Vous verrez deux onglets : Dépendances et Ordre de construction . Cet ordre de construction est celui dans lequel la solution est construite. Vérifiez les dépendances du projet et l'ordre de construction pour vérifier si un projet (disons 'projet1') qui dépend d'un autre (disons 'projet2') essaie de se construire avant celui-là (projet2). Cela pourrait être la cause de l'erreur.

  5. Vérifiez le chemin du fichier .dll manquant :

    Vérifiez le chemin de la .dll manquante. Si le chemin contient un espace ou tout autre caractère non valide, supprimez-le et réessayez de le construire.

    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, en redémarrant Visual Studio plusieurs fois. Mais, cela ne m'a pas aidé.

J'ai donc décidé de me débarrasser de l'autre erreur que je rencontrais ('Source File Could Not Be Opened ('Unspecified error ')').

Je suis tombé sur un article de blog : Erreur TFS - Le fichier source n'a pas pu être ouvert ('Unspecified error ')

J'ai essayé les étapes mentionnées dans cet article de blog, et je me suis débarrassé de l'erreur Le fichier source n'a pas pu être ouvert ('Unspecified error ')'. et étonnamment, je me suis débarrassé d'autres erreurs ('le fichier de métadonnées n'a pas pu être trouvé') également.


Section (3) :

Morale de l'histoire :

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

6 votes

Mon problème était l'ordre de construction/les dépendances du projet. La suppression et la réintroduction de références d'autres projets corrigeront ce problème (je pense), mais vous pouvez aussi le faire vous-même.

4 votes

J'ai fait face à ce problème en rétrogradant .NET v4.5 projet pour .NET v.4 .

0 votes

Il ne s'agit pas d'un résumé de toutes les autres réponses comme le prétend le titre. La solution à votre cas particulier ne répond pas au problème initial.

51voto

eschneider Points 2125

Dans mon cas, cela a été causé par un décalage de la version de .NET Framework.

L'un des projets était 3.5 et l'autre référençait le projet 4.6.1.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X