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

Chris Maggiulli Points 949

Sensible à la casse

Dans mon cas, le message d'erreur était le suivant

Code de gravité Description État de suppression de la ligne du fichier de projet Erreur La commande "" C:\Program Fichiers (x86) \Microsoft SDKs \Windows\v10.0A\bin\NETFX 4.6.1 Outils \gacutil.exe " /i " C:\Users\cmaggiul\source\repos\consume -valeur-api \EValueApi\EValueApi\bin\debug\EValueApi.dll "" a quitté avec le code 3. EValueApi

J'ai suivi le chemin vers le EValueApi.dll et j'ai réalisé que le répertoire de débogage était en majuscule dans Windows. J'ai changé le répertoire en minuscule ( pour correspondre à l'emplacement utilisé par gacutil.exe et cela a résolu mon problème.

0voto

syned Points 897

Dans mon cas, j'avais une référence à un autre projet que j'ai supprimé mais je ne l'ai jamais utilisé dans le code et je n'ai donc pas eu d'erreur de compilation.

Conseil : Vérifiez si vous avez des références à d'autres projets dans votre solution qui n'existent pas.

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