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 ...

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top