2010-11-16 2 views
2

Je suis à la recherche d'une erreur de chargement/liaison d'assemblage qui s'est produite récemment. Au cours de mon enquête, j'ai trouvé une contradiction confuse (en supposant que j'analyse correctement le journal de fusion).Erreur de liaison d'assemblage - erreur de fusion du journal de fusion et du navigateur de dépendances

L'exception qui est levée par ma demande à états de démarrage:

{ "Impossible de charger le fichier ou l'assembly « Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'ou l'une de ses dépendances La définition du manifeste de l'assembly localisé ne correspond pas à la référence d'assembly (Exception de HRESULT: 0x80131040) ":" Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, Culture = Neutre, PublicKeyToken = 31bf3856ad364e35 "}

Certaines modifications de projet récentes que j'ai apportées ne devraient pas nécessiter l'assembly fortement nommé "Microsoft.Practices.CompositeUI". Après avoir confirmé que tous mes projets de solutions se réfèrent effectivement aux assemblages non signés, j'ai alors lancé un dependency browser pour m'assurer que je ne manquais de rien. Tout a été vérifié et j'ai confirmé que je n'avais pas de "vieilles" références aux anciennes assemblées. Bien sûr, j'ai aussi nettoyé et reconstruit mon projet. J'ai ensuite recherché plus loin et mis le feu à la visionneuse du journal de fusion (Fuslogvw.exe) et l'ai configuré pour afficher les erreurs de liaison. J'ai regardé le journal et trouvé l'erreur de liaison. Le journal de détail est où la confusion commence; il liste le "Calling Assembly" comme un assembly qui n'a pas de liaisons (que je peux déterminer) à l'assemblage manquant. Ah, c'est difficile à expliquer. Voici le journal:

* Assemblée Binder entrée du journal (11/15/2010 @ 19:00:18) *

L'opération a échoué.

Résultat de liaison: hr = 0x80131040. Pas de description disponible.

gestionnaire Assemblée chargé de: C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ mscorwks.dll Fonctionnant sous exécutable C: \ Program Files \ VPM \ Office App \ 1.1.1.7 \ OfficeApp.exe

--- Un journal d'erreur détaillé suit.

informations === état de pré-bind ===

LOG: Utilisateur = PMD \ sklett

LOG: DisplayName = Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 (entièrement spécifié)

LOG: appbase = file: /// C:/Program Files/VPM/Bureau App/1.1.1.7/

LOG: initial privatePath = NULL

LOG: Dynamic Base = NULL

LOG: Base de cache = null

LOG: AppName = OfficeApp.exe

appel montage: Microsoft.Practices.EnterpriseLibrary.Common, Version = 4.1.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35.

===

LOG: Cette liaison commence dans le contexte de charge par défaut.

LOG: en utilisant le fichier de configuration de l'application: C: \ Program Files \ VPM \ Office App \ 1.1.1.7 \ OfficeApp.exe.config

LOG: en utilisant le fichier de configuration de la machine à partir de C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ config \ machine.config.

LOG: Référence post-politique: Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35

LOG: GAC de recherche n'a pas abouti. JOURNAL: Tentative de téléchargement du nouveau fichier URL: /// C:/Program Files/PMT/Office App/1.1.1.7/Microsoft.Practices.CompositeUI.DLL.

LOG: le téléchargement de l'assembly a réussi. Tentative d'installation du fichier: C: \ Program Files \ PMT \ Office App \ 1.1.1.7 \ Microsoft.Practices.CompositeUI.dll

LOG: Saisie de la phase de configuration de l'exécution à partir de la source.

LOG: Nom de l'assembly est: Microsoft.Practices.CompositeUI, Version = 1.0.51205.0, Culture = neutral, PublicKeyToken = null

WRN: comparaison entre le nom de l'ensemble a donné lieu à la non-concordance: PUBLIC TOKEN KEY

ERR: La référence d'assembly ne correspondait pas à la définition d'assembly trouvée. ERR: Echec de l'achèvement de l'installation de l'ensemble (hr = 0x80131040). Sondage terminé.

Maintenant, l'assemblée d'appel « Microsoft.Practices.EnterpriseLibrary.Common » n'a pas de liste des dépendances (via un navigateur de dépendance) à « Microsoft.Practices.CompositeUI ». Non seulement cela, mais il ne devrait pas en avoir. Le journal de fusion m'a arrêté dans mes traces, le journal de fusion a conduit à CONfusion! ; 0)

Espérons que j'ai fourni suffisamment d'informations pour un expert sage pour me dire ce qui me manque.

+0

Pourquoi ne pensez-vous pas avoir une référence de nom fort à Microsoft.Practices.CompositeUI? L'avez-vous recompilé vous-même sans SNK et changez toutes vos références de projet? – Jeff

+1

En outre, je ne suppose pas que vous avez une copie nommée forte de Microsoft.Practices.CompositeUI dans votre GAC? – Jeff

+0

@ JeffN825 - "L'avez-vous recompilé vous-même sans SNK et changez toutes vos références de projet?" Oui, c'est exactement ce que j'ai fait. J'ai également vérifié le GAC (gacutil -l) et il n'y a pas d'assembly P & P listés. –

Répondre

1

Je ne suis pas sûr si une réponse est appropriée ou un commentaire supplémentaire, s'il vous plaît excusez-moi si j'ai mal choisi.

La bonne nouvelle est qu'après un redémarrage (perte de puissance en fait) le problème est parti. Je ne sais pas comment ou pourquoi cela l'a résolu, j'ai été très méticuleux dans mes recherches sur le problème, mais bien sûr, un redémarrage a fait disparaître! Grâce à JeffN825 pour l'avoir suivi et offrir de l'aide, j'ai voté pour certains de vos commentaires.

+0

Parfois, j'ai vu des répertoires obj très ennuyeux (et leur contenu) rester après le nettoyage et la reconstruction, jusqu'à ce que je redémarre réellement VS, puis nettoyer et reconstruire ... Heureux que c'est corrigé! – Jeff

Questions connexes