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

Raghavendra Points 367

Naviguez dans l'explorateur de dossiers de Solution et supprimez le dossier de projet inutilisé qui provoquait l'erreur. Dans mon cas, après avoir supprimé le projet, le dossier était toujours présent dans le répertoire. Après avoir supprimé le dossier, la solution s'est construite avec succès !

0voto

Miguel Silva Points 162

J'ai obtenu la même erreur en utilisant Visual Studio 2019. Après avoir regardé de plus près ce qui se passait en arrière-plan, j'ai découvert qu'il y avait des erreurs sur les bibliothèques de classe annexées qui, à leur tour, ne compilaient pas correctement et traversaient en même temps l'erreur "Meta data file not found". J'ai corrigé les erreurs, je l'ai compilé à nouveau et tout a fonctionné.

Dans mon cas, la réponse a été trouvée en analysant l'onglet de sortie.

0voto

Hari Points 33

La version du framework du projet actuel diffère de celle des autres projets. Le changement de la version du cadre à la version des projets existants résoudra ce problème.

0voto

amr ras Points 113

Rien d'autre ici n'a marché pour moi, mais ça oui :

  1. Stash des changements avec Git
  2. Nettoyer et construire
  3. Appliquer la réserve
  4. Reconstruire

Soudain, VS m'a signalé une erreur qui n'apparaissait pas auparavant. De plus, il y avait plusieurs erreurs dans ce seul fichier qu'intellisense ignorait. J'ai corrigé ces erreurs sans l'aide de soulignements rouges et j'ai pu construire avec succès.

0voto

Calculuswhiz Points 3246

J'utilise VS 2019. Notre groupe est censé passer de 2017 à 2019.

Solution réelle

J'ai essayé de cloner vers un dossier de mon lecteur C : qui faisait partie de mon profil itinérant (donc sur le réseau). J'ai créé un dossier local qui était garanti sans suivi et j'ai cloné à la place. Les problèmes ont disparu.

Notes :

  • Il ne s'agit pas d'un problème de longueur de chemin d'accès, car j'ai également essayé de le cloner dans un dossier dont le nom est plus long que le chemin d'accès d'origine, et il s'est construit sans problème.
  • Cela ne peut pas être dû à des espaces dans le nom du fichier, car nos dossiers de solutions contiennent des espaces.
  • Ce problème semble n'affecter que VS2019 et non VS2017. Bien que nous ayons rencontré des problèmes de profil itinérant auparavant, cela se produisait lorsque nous essayions de nous synchroniser avec Git, et non avec la construction.

Autres choses que j'ai essayées/contrôlées sans succès

  • Redémarrer VS, se déconnecter, redémarrer, etc.
  • Supprimer la solution et la cloner à nouveau à partir du dépôt DevOps
  • Aucune erreur de construction dans notre code
  • Décochez et recochez les cases de la configuration de la construction.
  • L'ordre de construction a du sens
  • Toutes les cibles .NET Framework sont les mêmes. (Dans mon cas, 4.6. Cela n'a probablement pas d'importance).
  • Les DLLs existent réellement dans le chemin
  • Recharger le projet
  • Réinstaller les paquets NuGet
  • Réajoutez les DLL

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