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.

0voto

jcsilva87 Points 66

J'ai commencé à avoir ce problème après avoir beaucoup modifié la solution, mis de côté les modifications et les avoir défaites.

La seule façon de résoudre ce problème a été de supprimer et d'ajouter à nouveau le mappage de TFS à mon dossier local.

0voto

Gavimoss Points 147

J'ai vu cette erreur parce que j'avais la ligne suivante dans mon code (on dirait que je pensais encore en mode SQL) :

if(myVar is null)
    DoSomething();

Visual studio (2017) n'a signalé aucune erreur au moment de la conception ou de la compilation, mais le projet ne s'est pas construit et a donné l'erreur "missing .dll". En changeant la ligne erronée en :

if(myVar == null)

Le problème a été résolu.

0voto

MGOwen Points 678

Aucune des dizaines de réponses proposées jusqu'ici n'a fonctionné pour moi. Dans mon cas, j'ai également obtenu l'erreur :

Le nom de l'élément tuple 'Value' est déduit. Veuillez utiliser la version 7.1 ou supérieure du langage pour accéder à un élément par son nom inféré.

Cette erreur est apparue à côté de l'erreur "Metadata file '.dll' could not be found" lors de la construction, mais elle a disparu peu de temps après, comme le font parfois les erreurs lorsque l'IDE "rattrape son retard".

Un double-clic sur l'erreur pour la trouver, et la suppression du code incriminé, la corrige.

Sinon, vous pouvez, essayer ceci dans Visual Studio :

Menu Projet <Nom du projet> Propriétés Construire bouton Avancé Version linguistique C# <dernière version mineure> (par exemple, "C# 5.0")

Et ça le répare aussi.

Il semble que le message "Le fichier de métadonnées '.dll' n'a pas pu être trouvé" soit souvent le symptôme d'autres problèmes sous-jacents. Si aucune des solutions proposées ne vous convient, vérifiez les autres erreurs et avertissements et essayez de trouver le véritable problème.

0voto

Hamid Points 707

Dans mon cas, la définition du cadre cible a résolu le problème :

  1. Cliquez à droite sur le projet et sélectionnez Propriétés

  2. Sur Application le changement Cadre cible à la même que le projet principal (par exemple, ".NET Framework 4.5").

0voto

Dans mon cas, j'avais un tas d'autres erreurs de construction (quelques conversions de types simples) en même temps que celle-ci, je me grattais la tête en essayant de la résoudre, et je ne me concentrais pas sur les autres erreurs.

Ce qui a finalement résolu mon problème, c'est que j'ai corrigé toutes les autres erreurs de construction, puis j'ai reconstruit et la construction a réussi.

Donc, si vous avez d'autres erreurs de construction en plus de l'erreur de fichier DLL manquant, et que rien d'autre ne fonctionne pour vous, essayez de réparer les autres erreurs d'abord, puis construisez à nouveau la solution.

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