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.

4voto

tbone Points 1930

Je signale juste une évidence flagrante : si vous n'avez pas activé l'option "Show output window when build starts", assurez-vous que vous remarquez si votre construction échoue (petite erreur "build failed" en bas à gauche) !!!!.

4voto

Dmitri Trofimov Points 379

J'ai eu cette erreur lorsque j'ai essayé de publier une application web. Il s'est avéré que l'une des propriétés d'une classe était enveloppée dans un fichier

#if DEBUG
    public int SomeProperty { get; set; }
#endif

mais pas l'utilisation des propriétés. La publication a été effectuée dans la configuration de la version sans l'option DEBUG symbole, évidemment.

4voto

Dans mon cas, c'est parce que j'avais commenté les classes d'un espace de noms spécifique (vide) :

namespace X.Y.Z.W
{

    // Class code

}

Lorsque j'ai supprimé le code de l'espace de nom et les commandes d'importation (en utilisant) de celui-ci, le problème a été résolu.

Dans la construction, il a également été dit - avec le fichier DLL manquant du projet :

erreur CS0234 : Le nom de type ou d'espace de nom 'W' n'existe pas dans l'espace de nom 'X.Y.Z' (il vous manque une référence d'assemblage ?)

4voto

Ogglas Points 1

Retirer le packages contenant NuGet dans le dossier de la solution a fonctionné pour moi. Après la reconstruction, tout a fonctionné à nouveau. Vérifiez References dans la solution et vérifiez les références qui ont un triangle jaune.

Exemple de photo :

Enter image description here

4voto

qub1n Points 817

Dans mon cas, certains des projets de la solution étaient destinés à Toute unité centrale certains d'entre eux à x86. L'erreur de compilation a disparu après avoir unifié la cible de la plate-forme dans toute 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