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.

3voto

Dans mon cas, j'ai eu cette erreur parce que l'un de mes projets utilisait une version du framework .NET différente de celle des autres projets de la solution. J'ai utilisé le gestionnaire de paquets NuGet pour installer NLog, donc, je pense qu'il s'est installé pour la version .Net de ce projet.

J'ai essayé toutes les solutions de ce post, mais aucune ne fonctionne. J'ai supprimé NLog, nettoyé la solution et trid pour compiler : Même chose, erreur CS006.

C'est quand j'ai supprimé tous les fichiers dans obj\Debug de ce projet que la solution a compilé.

3voto

Abdullah Tahan Points 670

Mon problème est apparu lorsque j'ai écrit du code C# 7 mais que le projet utilisait une version plus ancienne de .net framework.

3voto

İlkin Elimov Points 502

En VS 2019, dans le cadre du projet Références vérifiez s'il y a des éléments non résolus en développant l'option Analyseurs :

enter image description here

Pour moi, il y avait deux .dll avec de mauvais chemins. Faites un clic droit sur chacun d'eux et sélectionnez Retirer :

enter image description here

Construisez le projet, puis construisez la solution. C'est fait.

2voto

Liero Points 218

La cause du problème peut être que vous avez mélangé les références aux fichiers DLL et aux projets dans la solution.

Si vous avez les projets A, B, et C :

  • A référence B et C comme projets dans la solution.
  • B référence C comme un fichier DLL (référence à un fichier)

Vous pouvez construire chaque projet séparément, mais vous ne pouvez pas reconstruire une solution se terminant par : Le fichier de métadonnées 'C.dll' est introuvable.

Changer la référence d'un fichier à un projet dans la solution aide.

2voto

Jon D Points 151

Dans mon cas personnel, j'avais omis d'ajouter une référence à l'un des projets de la solution et c'est ce qui a provoqué l'erreur pour moi.

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