Ne pouvait pas charger le fichier ou l'assemblage ou l'une de ses dépendances

j'ai un autre de ces problèmes "ne pouvait pas charger le fichier ou l'assemblage ou l'une de ses dépendances".

information supplémentaire: ne pouvait pas charger le fichier ou l'assembly "Microsoft.Pratique.Unité, Version = 1.2.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35 " ou l'une de ses dépendances. La situé la définition manifeste de l'Assemblée ne correspond pas à la référence de l'assemblage. (Exception de HRESULT: 0x80131040)

Je n'ai aucune idée de ce qui cause ceci ou comment je pourrais le déboguer pour trouver la cause.

j'ai fait une recherche dans Mes catalogues de solutions .les dossiers csproj, et chaque où j'ai Unité j'ai:

référence Include= " Microsoft.Pratique.Unité, Version=2.0.414.0, Culture = neutre, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "

ne trouve aucune référence contre 1.2.0.0 dans aucun de mes projets.

une idée de comment je dois résoudre ça?

j'apprécierais aussi des conseils sur la façon de déboguer des problèmes comme ça en général.

190
demandé sur abatishchev 2010-12-17 14:13:27

30 réponses

  1. vérifiez si vous faites référence à un assemblage qui à son tour fait référence à une ancienne version de l'unité. Par exemple, disons que vous avez une assemblée appelée ServiceLocator.dll qui a besoin d'une ancienne version de l'Assemblée de L'Unité, maintenant quand vous faites référence au ServiceLocator vous devez lui fournir l'ancienne version de L'unité, et cela pose le problème.

  2. peut être le dossier de sortie où tous les projets construisent leurs assemblages, a un vieux la version de l'unité.

vous pouvez utiliser FusLogVw pour savoir qui charge les anciens assemblages, il suffit de définir un chemin pour le journal, et exécuter votre solution, puis vérifier (dans FusLogvw) la première ligne où l'assemblage unité est chargé, double-cliquez dessus et voir l'assemblage appelant, et voilà.

93
répondu Nour Sabouny 2017-06-12 09:55:41

Ouvrir le Gestionnaire des services internet

Sélectionnez Les Pools D'Applications

sélectionnez ensuite la piscine que vous utilisez

passez à Paramètres avancés (à droite)

changez le drapeau de L'application Enable 32-bit false EN true.

64
répondu kranthi 2013-10-07 10:58:42

pour moi, aucune des autres solutions n'a fonctionné (y compris la stratégie de nettoyage/reconstruction). J'ai trouvé une autre solution de contournement qui est de fermer et rouvrir Visual Studio .

je suppose que cela force Visual Studio à recharger la solution et tous les projets, en revérifiant les dépendances dans le processus.

45
répondu Robotnik 2015-02-27 01:05:12

essayez de nettoyer les dossiers de débogage et de publication dans votre solution. Puis retirez et ajoutez l'unité à nouveau.

40
répondu Aleksei Anufriev 2015-01-28 12:59:47

a travaillé pour moi.

  • supprimer les fichiers temporaires C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET dossiers
  • Fermer VSTS and Open Again
  • supprimer et ajouter les mêmes DLLs (Note: vous ajoutez les mêmes versions correspondantes)
15
répondu Riddhi M. 2013-03-22 07:22:54

Microsoft Enterprise Library (referenced by .NetTiers) était notre problème, qui à son tour faisait référence à une ancienne version de L'Unité. Pour résoudre le problème, nous avons utilisé la redirection de reliure suivante dans le web.config:

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="1.0.0.0-2.0.414.0" newVersion="2.1.505.0" />
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Practices.Unity.Configuration" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="1.0.0.0-2.0.414.0" newVersion="2.1.505.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

Alternativement, vous pouvez simplement mettre à jour la Bibliothèque d'Entreprise à la dernière version.

13
répondu Junto 2012-07-03 10:03:31

à 99% le ne pouvait pas charger le fichier ou l'assemblage ou l'une de ses dépendances le problème est causé par des dépendances! Je vous suggère de suivre ces étapes:

  1. Télécharger Dependency Walker à partir de http://www.dependencywalker.com/

  2. Lancement Dependency Walker et ouvrez le fichier dll (dans mon cas NativeInterfaces.dll )

  3. vous pouvez voir une ou plusieurs dll avec l'erreur en rouge fichier D'ouverture D'erreur...

  4. cela signifie que cette dll est manquante dans votre système; dans mon cas, le nom de dll est MSVCR71.DLL

  5. vous pouvez télécharger la dll manquante en utilisant le lien de google vers la page de droite (dans mon cas c:\windows\system32 )

  6. à ce point, vous devez enregistrer la nouvelle dll dans le Gac (Global Assembly Cache): ouvrez un terminal DOS et écrivez:

    cd \Windows\System32
    regsvr32 /i msvcr71.dll
    
  7. redémarrez votre application!

12
répondu Stefano Lonati 2018-02-05 12:19:29

en dépit de la question originale a été posté Il ya 5 ans, le problème persiste toujours et est plutôt ennuyeux.

la solution générale est une analyse approfondie de tous les assemblages référencés pour comprendre ce qui ne va pas. Pour faciliter cette tâche, j'ai créé un outil (une extension Visual Studio) qui permet de sélectionner un assemblage .Net (.ddl ou .exe file) et obtenir un graphique de tous les assemblages référencés avec des références contradictoires ou manquées.

l'outil est disponible dans Visual Studio Gallery: https://marketplace.visualstudio.com/vsgallery/051172f3-4b30-4bbc-8da6-d55f70402734

exemple de sortie: enter image description here

10
répondu marss 2017-05-30 07:13:03

vérifiez sur le Web.config / App.fichier de configuration dans votre projet. Voir si les numéros de version sont corrects.

<bindingRedirect oldVersion="X.X.X.X-X.X.X.X" newVersion="X.X.X.X" />

ça a marché pour moi.

10
répondu Jaseem Abbas 2018-01-12 07:10:03

j'ai eu le même problème. ** La réponse de Juntos est correcte * * mais vous devriez noter un conseil important!

pour l'unité 2.1.505.2 différent AssemblyVersion et AssemblyFileVersion sont spécifiés:

enter image description here

AssemblyFileVersion est utilisé par nuget mais CLR ne pas s'en soucier! CLR va utiliser seulement AssemblyVersion !

donc les redirections doivent être appliquées à une version spécifiée dans AssemblyVersion: 2.1.505.0

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
 <assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.505.0" newVersion="2.1.505.0" />
</dependentAssembly>
</assemblyBinding>

voir aussi: quelles sont les différences entre AssemblyVersion, Assemblyfilversion et AssemblyInformationalVersion?

9
répondu Ievgen Naida 2018-08-14 16:06:06

screenshot dans solution explorer Clic droit sur le projet (pas la solution), dans l'onglet Construire choisir plate-forme cible : "N'importe quel CPU".

7
répondu Engin Aydoğdu 2016-09-26 14:12:47
  • Goto: Solution - > Package
  • "
  • cliquez sur avancé onglet (trouver ci-dessous la page)
  • ajouter votre dll à des assemblées supplémentaires(de cette façon, nous pouvons ajouter des dlls externes dans sharepoint).
5
répondu Vijay Singh 2013-09-12 07:20:19

j'ai aussi eu cette terrible erreur et j'ai trouvé une solution pour ça...

  1. clic droit sur le nom de la Solution
  2. , Cliquez Sur Nettoyer La Solution
  3. Redémarrer Visual Studio
  4. Goto Propriétés du projet >> Construire
  5. changer Configuration en Release
  6. Début Du Débogage (F5)

1) , 2)

Right Click on the Solution name

4) , 5)

Change Configuration to Release

espérons que cela vous aidera aussi.

5
répondu Roshana Pitigala 2015-09-17 18:24:53

Je ne suis pas sûr que cela puisse aider.

vérifiez que le nom de L'Assemblée et l'espace de noms par défaut dans les Properies de vos asemblies correspondent. Cela a résolu mon problème qui a produit la même erreur.

4
répondu Sjaan 2013-11-03 09:07:48

Thanks Riddhi M. Suite a fonctionné pour moi.

supprimer les fichiers temporaires C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET dossiers Fermer VSTS et ouvrir à nouveau Supprimer et ajouter les mêmes DLLs (Note: vous ajoutez les mêmes versions correspondantes)

4
répondu Sridhar Kommana 2015-07-30 13:29:46

dans mon cas dans le dossier bin était une dll non de référence appelée Unity.MVC3, j'ai essayé de rechercher toute référence à cela dans visual studio sans succès, donc ma solution était aussi facile que supprimer cette dll à partir du dossier bin.

4
répondu Totodile 2016-01-05 00:00:30

vous dites que Vous avez beaucoup de projets dans votre solution ... bien, commence avec un près du haut de l'ordre de construction. Obtenir que de construire et une fois que vous comprenez cela, vous pouvez appliquer le même correctif pour le reste d'entre eux.

Honnêtement, vous avez probablement juste besoin de rafraîchir votre référence. On dirait soit que vous avez mis à jour votre version et que vous n'avez pas mis à jour les références, soit que c'est un problème de chemin relatif si vous gardez votre solution sous contrôle source. Vérifiez vos suppositions, et ajouter à nouveau la référence.

3
répondu Joel Martinez 2010-12-17 11:30:11

Cette question m'est arrivé où l'un de mes bibliothèques dépendantes a été de compiler une DLL avec "any CPU" lors de la bibliothèque parent m'attendais à une compilation de "x64".

3
répondu Creamstout10 2016-11-16 17:21:20

Vous devez supprimer Votre nom.fichier dll à partir de votre dossier de sortie. Nettoyage des dossiers de débogage et de publication. Reconstruire et copier dans le dossier de sortie le fichier dll régénéré.

2
répondu gucci 2013-05-15 07:44:47

je "Définir comme Projet de Démarrage" la déchargé/introuvable/bibliothèque de projet.

l'a ensuite déployé.

ça a marché!

je pense qu'il n'a pas pu trouver le .dll parce que ce n'était pas dans l'assemblée au début.

2
répondu nirav 2013-07-16 05:08:44

une autre cause possible: assurez-vous que vous n'avez pas accidentellement donné aux deux projets le même nom d'assemblage dans les propriétés du projet.

2
répondu nathanchere 2014-12-21 16:33:10

a travaillé pour moi.

  • supprimer les fichiers temporaires C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET dossiers
    • puis clic droit sur temporaire Asp.net fichiers>propriétés>sécurité et donner un accès de contrôle total à IIS et à tous les utilisateurs exécutant mon projet
2
répondu onlyme 2015-03-06 15:38:53

ma solution pour .NET 4.0, en utilisant la bibliothèque D'entreprise 5, était d'ajouter une référence à:

Microsoft.Pratique.Unité.Interception.dll

2
répondu MacGyver 2015-06-05 19:44:39

cherchez des références contradictoires. Même après un nettoyage et une reconstruction, les références contradictoires poseront toujours un problème. Mon problème était entre AForge et Accord. J'ai supprimé les deux références et ajouté de nouveau les références En choisissant de nouveau la référence particulière (en particulier dans mon cas, juste Accord).

2
répondu user3791372 2016-03-25 19:05:15

pour moi reconstruire le jeu de l'unité sans L'Unité C # Proects Checkmark a fonctionné.

2
répondu Praful Rudra 2016-05-09 12:38:22

dans mon cas, aucune des réponses proposées n'a fonctionné.

voici ce qui a fonctionné pour moi:

  1. supprimer la référence
  2. renommer la DLL
  3. Importer la référence à nouveau

la deuxième étape était apparemment importante car elle ne fonctionnait pas sans elle.

2
répondu Nicolas Raoul 2016-06-23 08:38:37

essayez de vérifier si la propriété" Copy to Local " pour la référence est définie à true et la version spécifique est définie à true. Ceci est pertinent pour les applications dans Visual Studio.

2
répondu Srinivas Somasundaram 2016-07-06 15:33:53

j'ai eu aujourd'hui, et dans mon cas, la question était très étrange:

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Host.SystemWeb" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.1.0" newVersion="3.1.0.0" />
  </dependentAssembly>0.

notez les caractères errants à la fin du XML - d'une façon ou d'une autre ceux qui avaient été déplacés du numéro de version à la fin de ce bloc de XML!

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Host.SystemWeb" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
  </dependentAssembly>

changé en Ci-dessus et voilà! Tout a encore fonctionné.

2
répondu garryp 2017-05-12 09:16:16

si vous recevez ce message d'erreur en ouvrant une application sur vous windows xp cela signifie d'abord que vous avez installé cette application en raison de son ne fonctionne pas sans Net framework 4 et service pack 3 . vous avez installé les deux et vous obtenez cette erreur donc vous devez réinstaller cette application de nouveau, mais d'abord désinstaller à partir de ajouter et supprimer

si cela ne fonctionne pas s'il vous plaît ne pas abuser de moi . je suis aussi un junior

1
répondu basit durrani 2013-11-16 08:14:38

ok cela peut sembler très stupide, mais voilà comment j'ai résolu le problème après avoir essayé toutes les autres solutions et passer une nuit sur cette chose stupide.

j'ai eu la même erreur avec une DLL manquante dans le dossier Bin. J'ai essayé d'effacer , de récupérer tout sur le serveur de la fondation de L'équipe mais ça n'a pas marché. J'ai eu une copie du dossier Bin de ma machine de bureau-matelocal, et je l'ai remplacé. Il ne fonctionne pas non plus. Enfin, J'ai manuellement FTPed serveur, a obtenu la copie de DLL qui s'est révélé manquant, et puis il a commencé à apparaître que le fichier suivant dans la séquence de la liste des fichiers est manquant.

ainsi, ftped server a obtenu tous les dossiers Bin, remplacé manuellement chaque dossier un par un. (Pas de Ctrl + Tous les et remplacez-la.. J'ai essayé : ça ne fonctionne pas.) Et d'une certaine façon, il a travaillé...

1
répondu rak 2014-02-19 15:33:03