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

  1. Faites un clic droit sur la solution et cliquez sur Nettoyer.
  2. Faites un clic droit sur la solution et cliquez sur Rebuild.

1voto

Mirek Points 1557

J'ai découvert que si vous supprimez l'assemblage Microsoft.CSharp comme référence dans le projet, vous obtiendrez cette erreur.

1voto

Tarmo Elfving Points 26

Vérifiez le fichier .csproj du projet principal. Visual Studio ne le nettoie pas au cas où vous supprimez des projets ou modifiez des références dans la solution.

J'avais d'anciens projets référencés trois fois dans le fichier .csproj et la compilation a montré cette erreur pour ces projets supprimés.

1voto

AlexanderD Points 558

Wow, on dirait que cette erreur peut venir de partout.

Quoi qu'il en soit, j'ai ajouté un nouveau contrôleur WebAPI à mon application MVC et il a automatiquement obtenu toutes les références de NuGet. Un peu plus tard, j'ai supprimé les références de l'interface utilisateur de NuGet, mais j'ai oublié de supprimer les fichiers qui les utilisaient (c.-à-d. System.Http ).

Pour une raison quelconque, l'erreur que je recevais était la suivante, accompagnée d'un simple avertissement concernant une variable non utilisée.

J'ai commenté la variable pour me débarrasser au moins de l'avertissement et la reconstruction m'a fait sortir de tous les fichiers qui utilisaient la référence inexistante. Après avoir supprimé ces fichiers, tout s'est bien passé.

1voto

mschwaig Points 446

J'ai rencontré cette erreur avec Visual Studio 2015 lorsque j'ai supprimé l'annotation de type d'un appel à une méthode d'extension, ce qui n'a laissé que les crochets d'angle vides derrière.

Ainsi, au lieu de obj.extensionMethod<Type>() J'avais obj.extensionMethod<>() .

Je classerais cela comme un bug dans Visual Studio car je ne vois pas comment cette erreur pourrait produire cette erreur.

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