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

Matt Arnold Points 549

Dans mon cas, c'était que le projet dépendant (le projet dépendant de celui dans le message d'erreur) manquait des valeurs dans ses champs "Version de l'assemblage" sous "Propriétés Application Assembly Information..." du projet. J'ai simplement ajouté les mêmes chiffres que ceux qui étaient présents pour la "Version du fichier", j'ai cliqué sur "OK" et les erreurs de compilation ont disparu !

Missing Assembly Version

Il s'avère que le réajustement de la AssemblyVersion puis en recréant le projet, une autre erreur s'est produite, prétendant qu'il était déjà présent dans le projet. C'était le cas ! Sous le nœud des propriétés du projet dans Solution Explorer, il y avait un fichier "SolutionVersionInfo.cs" qui contenait également un fichier "SolutionVersionInfo.cs". AssemblyVersion La suppression de ce fichier du projet a permis de résoudre cette erreur.

0voto

Gambitier Points 23

Pour moi, le problème s'est produit parce que je mettais en ligne une variable.

donc ce qui suit se construit avec succès :

ReportCategory reportCategoryEnum;
Enum.TryParse(reportCategory, true, out reportCategoryEnum);

alors que lorsque j'ai modifié mon code comme suit, aucune erreur n'a été montrée mais la construction a échoué.

Enum.TryParse(reportCategory, true, out ReportCategory reportCategoryEnum);

0voto

Roger Correa Points 41

Dans mon cas, j'ai supprimé le dossier git et supprimé Git (Azure DevOps). C'est la seule méthode que j'ai utilisée et qui a fonctionné.

J'ai essayé de nettoyer, reconstruire, reconfigurer la compilation, supprimer les dossiers bin et obj ; rien n'a fonctionné. Lorsque j'ai supprimé la solution de Git, voilá ! Cela a fonctionné pour moi.

Je ne comprends pas, mais cela a résolu le problème pour moi.

0voto

rjacobsen0 Points 477

J'ai eu un conflit de fusion dans un fichier .csproj et je me suis retrouvé avec deux copies d'une cible de construction.

<Compile Include="SystemCodes\APSystemCodes.cs" />

Après avoir éliminé le doublon, la construction a fonctionné.

0voto

alex kostin Points 67

Pour moi, c'était le mauvais nom de dossier. Si vous fermez à partir d'une source qui remplace les espaces par '%20', vous obtiendrez de telles erreurs. Solution - renommez simplement les dossiers mal nommés.

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