Bestimmen Sie Projektreferenzen zu mscorlib
Frage
Hey Leute, ich habe Projekt eine ASP.NET-Website, die auf verweisen beide aus irgendeinem Grund beharrt mscorlib 1.0.5 und mscorlib 2.0, und ich kann nicht herausfinden, warum.
Ich habe alle referenzierten DLLs mit NDepend analysiert, und sie alle scheinen nur Referenz mscorlib 2.0. Ich habe ein paar Web-Referenzen bekam, aber ich kann mir nicht vorstellen, warum das einen zusätzlichen Verweis auf die 1,0 dll schaffen würde.
Wer irgendwelche Ideen, warum ich diese zusätzlichen getting würde, oder was kann ich herausfinden, dass die Informationen verwenden, um? NDepend ist groß, aber nur kommt zurück und sagt „gefunden 2 Referenzen, die neuere Version verwenden“, so dass es nicht mich herauszufinden, hilft, warum ich die zusätzliche Referenz habe ...
Lösung
Ich denke, an diesem Punkt die beste Wahl zu verwenden ildasm ist. Mit ildasm auf der Baugruppe wird ein Knoten mit dem Namen „Manifest“ bringen. Klicken Sie doppelt auf diesem Knoten und es wird die IL Darstellung der Montage Referenzen einschließlich der referenzierten Versionsnummer auskippen. Wiederholen Sie diesen Vorgang für alle Ihre DLL, bis Sie das finden Verweis auf die Version 1.0.
Bearbeiten
Eine andere mögliche Lösung wäre es, die Assembly
Werte und dort zugeordnet GetReferencedAssemblies
Verfahren aufzuzählen. Dies wird ein Array von AssemblyName
Werte zurück, die eine entsprechende Version Element aufweisen. Dies sollte die aktuelle Version der Assembly gegen einen referenzierten enthalten, die tatsächlich geladen wurde.
Ich bin nicht 100% sicher, dass in dieser Angelegenheit und nicht über eine bequeme Möglichkeit, es zu testen jetzt.
Andere Tipps
Versuchen Sie, die Referenz zu entfernen und neu zu kompilieren -. Das wird Ihnen sagen, was (wenn überhaupt) ist abhängig von der älteren Version
Eine fehlerhafte Referenz kann in der Datei web.config wohnhaft sein.
Güte,
Dan