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.

34voto

Andrew Points 6859

Visual Studio 2019 cela a fonctionné pour moi :

  1. Fermer Visual Studio
  2. Supprimer le caché .vs dossier
  3. Rouvrez Visual Studio et reconstruisez la solution.

33voto

Roffers Points 644

Fermer et rouvrir Visual Studio 2013 a fonctionné pour moi !

27voto

Alex Stephens Points 18

Eh bien, rien dans les réponses précédentes n'a fonctionné pour moi, alors cela m'a amené à réfléchir à la raison pour laquelle je clique et à espérer quand, en tant que développeurs, nous devrions vraiment essayer de comprendre ce qui se passe ici.

Il m'a semblé évident que cette référence incorrecte au fichier de métadonnées devait se trouver quelque part.

Une recherche rapide dans le fichier .csproj a montré les lignes coupables. J'avais une section appelée <itemGroup> qui semblait s'accrocher à l'ancien chemin de fichier incorrect.

<ItemGroup>
    <ProjectReference Include="..\..\..\MySiteOld\MySite.Entities\MySite.Entities.csproj">
        <Project>{5b0a347e-cd9a-4746-a3b6-99d6d010a6c2}</Project>
        <Name>Beeyp.Entities</Name>
    </ProjectReference>
...

C'est une solution simple :

  1. Sauvegardez votre fichier .csproj.
  2. Trouvez les chemins incorrects dans le fichier .csproj et renommez-les en conséquence.

S'il vous plaît Assurez-vous de sauvegarder votre ancien .csproj avant de le modifier. .

26voto

masphei Points 151

Dans mon cas, j'ai mon répertoire installé de deux manières différentes.

Si le chemin de votre solution est quelque chose comme "My Project%2c Very Popular%2c Unit Testing%2c Software and Hardware.zip", il ne peut pas résoudre le fichier de métadonnées, peut-être devrions-nous empêcher certains mots invalides comme %2c.

Renommer le chemin en nom normal a résolu mon problème.

23voto

J'ai également rencontré ce problème. Tout d'abord, vous devez construire manuellement votre projet DLL, par un clic droit, Build. Ensuite, cela fonctionnera.

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