2010-01-18 2 views
2

Salut, j'ai un projet de site Web ASP.NET qui, pour une raison ou une autre, insiste à la fois sur mscorlib 1.0.5 et sur mscorlib 2.0, et je n'arrive pas à comprendre pourquoi.Déterminer les références de projet à mscorlib

J'ai analysé toutes les DLL référencées en utilisant NDepend, et elles semblent toutes ne faire référence qu'à mscorlib 2.0. J'ai quelques références Web, mais je ne peux pas imaginer pourquoi cela créerait une référence supplémentaire à la DLL 1.0.

Quelqu'un a-t-il une idée de la raison pour laquelle j'obtiendrais cette référence supplémentaire, ou de ce que je peux utiliser pour trouver cette information? NDepend est génial, mais revient juste et dit "trouvé 2 références, en utilisant la version plus récente", donc cela ne m'aide pas à comprendre pourquoi j'ai la référence supplémentaire ...

Répondre

2

Je pense à ce stade, votre meilleur pari est d'utiliser ildasm. L'utilisation d'ildasm sur l'assembly fera apparaître un noeud nommé "Manifest". Double-cliquez sur ce noeud et il va vider la représentation IL des références d'assemblage, y compris le numéro de version référencé. Répétez ceci pour toutes vos DLL jusqu'à ce que vous trouviez celui référençant la version 1.0.

EDIT

Une autre solution possible serait d'énumérer les valeurs et la méthode Assembly y GetReferencedAssemblies associée. Cela retournera un tableau de AssemblyName valeurs qui ont un membre Version correspondant. Cela doit contenir la version actuelle de l'assembly référencé par rapport à celle qui a été réellement chargée.

Je ne suis pas sûr à 100% sur ce sujet et je n'ai pas un moyen pratique de le tester dès maintenant.

+0

J'avais peur que cela puisse être la réponse :) On dirait que j'ai quelques heures d'amusement devant moi ... – jvenema

+0

Merci Jared, juste les vérifier manuellement est allé plus vite que je ne le pensais, et j'ai trouvé le coupable. – jvenema

0

Essayez de supprimer la référence et de recompiler - cela vous dira quoi (si quelque chose) dépend de l'ancienne version.

+0

Vous ne pouvez malheureusement pas ajouter/supprimer des références à mscorlib directement ... – jvenema

0

Une référence erronée peut résider dans votre fichier web.config.

Bonté,

Dan

Questions connexes