Question Impossible de trouver le fichier de métadonnées '.dll'


Je travaille sur un projet WPF, C # 3.0, et j'ai 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 comme ça que je référence mes contrôles utilisateur:

xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>

Cela se produit après chaque build échoué. La seule façon de compiler la solution est de commenter tous mes contrôles utilisateur et de reconstruire le projet, puis de supprimer les commentaires des utilisateurs et tout va bien.

J'ai vérifié les ordres de construction et les configurations de 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 devoir commenter, construire et commenter, la construction devient extrêmement fatigante.


475
2017-09-14 14:19


origine


Réponses:


J'ai juste eu le même problème. Visual Studio ne construit pas le projet référencé.

  1. Faites un clic droit sur la solution et cliquez sur Propriétés.
  2. Cliquez sur Configuration sur la gauche.
  3. Assurez-vous que la case sous "Générer" pour le projet qu'il ne trouve pas est cochée. S'il est déjà coché, décochez, appuyez sur Appliquer et cochez à nouveau les cases.

594
2017-07-18 12:42



Cela peut toujours se produire dans les versions plus récentes de Visual Studio (je l'ai juste fait sur Visual Studio 2013):

Une autre chose à essayer est de fermer Visual Studio et de supprimer le .suo fichier qui est à côté de la .sln fichier. (Il sera re-généré la prochaine fois que vous Save all (ou quitte Visual Studio)).

J'ai eu ce problème lors de l'ajout de nouveaux projets à la solution sur une autre machine et puis en tirant les révisions, mais le .suo Le fichier peut aussi être corrompu dans d'autres cas et conduire à un comportement très étrange de Visual Studio, donc la supprimer est l'une des choses que j'essaie toujours.

Notez que la suppression de .suo fichier réinitialisera le ou les projets de démarrage de la solution.

Plus sur le .suo le fichier est ici.


166
2018-04-22 09:39



La réponse suggérée n'a pas fonctionné pour moi. L'erreur est un leurre pour un autre problème.

J'ai découvert que je ciblais une version légèrement différente de .NET et cela a été signalé comme un avertissement par le compilateur, mais cela a causé l'échec de la construction. Cela aurait dû être signalé comme une erreur et non comme un avertissement.


90
2017-12-15 21:15



Eh bien, ma réponse n'est pas seulement le résumé de toutes les solutions, mais elle offre plus que cela.

Section 1):

En général, des solutions:

J'ai eu quatre erreurs de ce type ("fichier de métadonnées introuvable") avec une erreur disant "Le fichier source n'a pas pu être ouvert (" Erreur non spécifiée ")".

J'ai essayé de me débarrasser de l'erreur «fichier de métadonnées introuvable». Pour cela, j'ai lu de nombreux articles, blogs, etc. et constaté que ces solutions pouvaient être efficaces (en les résumant ici):

  1. Redémarrez Visual Studio et réessayez de construire.

  2. Aller à 'Explorateur de solution'. Faites un clic droit sur Solution. Aller à Propriétés. Aller à 'Panneau de configuration'. Vérifiez si les cases sous 'Construire' sont vérifiés ou non. Si l'un ou l'autre d'entre eux n'est pas coché, vérifiez-les et essayez de reconstruire.

  3. Si la ou les solutions ci-dessus ne fonctionnent pas, suivez la séquence mentionnée à l'étape 2 ci-dessus et même si toutes les cases à cocher sont cochées, décochez-les, vérifiez à nouveau et essayez de les reconstituer.

  4. Composer les dépendances et les projets:

    Aller à 'Explorateur de solution'. Faites un clic droit sur Solution. Aller à 'Dépendances du projet ...'. Vous verrez deux onglets: 'Dépendances' et 'Construire l'ordre'. Cet ordre de construction est celui dans lequel la solution est construite. Vérifiez les dépendances du projet et l'ordre de construction pour vérifier si un projet (par exemple 'project1') qui dépend d'un autre projet (par exemple 'project2') essaie de construire avant celui-ci (project2). Cela pourrait être la cause de l'erreur.

  5. Vérifiez le chemin du fichier .dll manquant:

    Vérifiez le chemin du fichier .dll manquant. Si le chemin contient de l'espace ou tout autre caractère de chemin non valide, supprimez-le et réessayez de construire.

    Si c'est la cause, ajustez l'ordre de construction.


Section 2):

Mon cas particulier:

J'ai essayé toutes les étapes ci-dessus avec diverses permutations et combinaisons avec le redémarrage de Visual Studio à quelques reprises. Mais ça ne m'a pas aidé.

Donc, j'ai décidé de me débarrasser de toute autre erreur que je rencontrais ('Le fichier source n'a pas pu être ouvert (' Erreur non spécifiée ')').

Je suis tombé sur un article de blog: Le fichier source d'erreur TFS n'a pas pu être ouvert ('erreur non spécifiée')

J'ai essayé les étapes mentionnées dans ce blog, et je me suis débarrassé de l'erreur "Le fichier source n'a pas pu être ouvert (erreur non spécifiée)" et étonnamment je me suis débarrassé d'autres erreurs ('Le fichier de métadonnées n'a pas pu être trouvé') ainsi que.


Section 3):

Morale de l'histoire:

Essayez toutes les solutions mentionnées dans la section (1) ci-dessus (et toute autre solution) pour éliminer l'erreur. Si rien ne fonctionne, selon le blog mentionné dans la section (2) ci-dessus, supprimer les entrées de tous les fichiers sources qui ne sont plus présents dans le contrôle de code source et le système de fichiers de votre fichier .csproj.


74
2018-05-05 14:58



Dans mon cas, cela était dû à une incompatibilité de version de .NET Framework.

Un projet était 3.5 et l'autre projet de référencement 4.6.1.


28
2018-04-08 14:20



La fermeture et la réouverture de Visual Studio 2013 ont fonctionné pour moi!


19
2018-05-28 11:20



Eh bien, rien dans les réponses précédentes n'a fonctionné pour moi, alors cela m'a fait réfléchir à pourquoi je clique et espère 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 de fichier de métadonnées incorrecte doit être conservée quelque part.

Une recherche rapide du fichier .csproj a montré les lignes de culpabilité. J'avais une section appelée <itemGroup> qui semblait être accrochée à 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>
...

Donc, une simple solution vraiment:

  1. Sauvegardez votre fichier .csproj.
  2. Recherchez les chemins incorrects dans le fichier .csproj et renommez-le de manière appropriée.

S'il vous plaît assurez-vous de sauvegarder votre ancien .csproj avant de jouer.


13
2017-11-27 09:22



J'ai eu la même erreur "Fichier de métadonnées" .dll "n'a pas pu être trouvé", et j'ai essayé plusieurs choses décrites ci-dessus, mais la raison de l'erreur était que je référence le fichier DLL tiers qui visait une version .NET plus élevée que mon projet cible la version .NET. La solution consistait donc à modifier le cadre cible de mon projet.


13
2018-02-11 13:02



J'ai également rencontré ce problème. Tout d'abord vous devez construire manuellement votre projet DLL, par un clic droit, Build. Alors ça va marcher.


11
2017-09-14 20:36