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.

1voto

Muhammad Safyan Points 87

J'ai été confronté à ce problème. Dans mon cas, je supprime tous les dossiers bin et obj de tous les projets, puis cette erreur se résout pour moi. Essayez ceci pour un autre essai pour résoudre le problème

1voto

Jakub Czerniawski Points 133

J'ai eu un cas assez inhabituel de cette erreur, mais peut-être que quelqu'un en profitera.

J'ai eu cette erreur avec le fichier .dll manquant de l'un des projets de la solution (avec target framework netstandard 2.0) sur lequel je travaille et en même temps l'erreur avec la référence (à Microsoft.Office.Interop.Word) que ce projet utilise.

Cette solution a été clonée du dépôt git, et la même solution a bien compilé pour d'autres personnes de mon équipe.

J'ai essayé toutes les solutions proposées pour résoudre le problème - redémarrer VS, l'ordinateur, nettoyer le projet, cocher et décocher les cases de construction, vérifier si l'ordre de construction est correct, etc.

Je me suis rendu compte que le manifeste de ce projet n'était pas sélectionné par défaut (la liste déroulante du manifeste dans les propriétés du projet était vide et désactivée). J'ai donc essayé de l'ajouter, mais rien n'a fonctionné.

J'ai enfin commencé à comparer ce fichier .csproj du projet avec un autre dans une version plus ancienne de ce projet, qui a compilé sans problème. Après quelques essais inutiles J'ai découvert que le chemin vers Microsoft.Office.Interop.Word est le même dans les deux projets, même s'il s'agit d'un chemin relatif commençant par de nombreux symboles "monter" ( ..\ ). Et le projet qui ne fonctionne pas était un niveau plus bas que l'autre.

L'ajout d'un autre symbole " remonter " ( ..\ ) dans le chemin de référence vers le fichier .csproj du projet Microsoft.Office.Interop.Word a résolu le problème.

Je n'ai aucune idée de la raison pour laquelle ce chemin a été créé de cette façon et ne se met pas à jour dans mon cas, alors qu'il fonctionne correctement pour les autres membres de mon équipe.

1voto

João Neto Points 31

Pour moi, il s'agissait d'une importation inutilisée "utilisant ApsNetCore" sur un contrôleur. Je l'ai supprimé, nettoyé, reconstruit et ça a marché.

0voto

A user Points 743

Très étrange ! J'ai essayé toutes les réponses précédentes et malheureusement rien n'a fonctionné dans mon cas.

J'ai rencontré deux erreurs :

  1. Fichier .dll manquant
  2. Méthode déjà définie à un autre endroit avec les mêmes paramètres

J'ai d'abord éliminé la deuxième erreur en supprimant la fonction qui a été dupliquée à un autre endroit.

Ma première erreur, à savoir l'absence du fichier .dll, s'est résolue d'elle-même.

Je tiens à dire que si vous avez plus d'une erreur avec l'erreur de fichier .dll manquant, essayez de résoudre les autres erreurs d'abord. Peut-être que l'erreur .dll se résout d'elle-même !

0voto

Basheer AL-MOMANI Points 5565

J'ai rencontré ce problème après getting latest (commande Team Foundation Server (TFS)).

Après avoir résolu les conflits, j'ai trouvé que l'utilisation d'une déclaration pour une namespace that does not exist in the project .

Donc j'ai enlevé ça using déclaration alors clean and rebuild et tout était OK.

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