2009-03-06 10 views
1

Lange Rede, kurzer Sinn: Wir haben ein System, das wir von einem Server auf einen anderen verlagern. Zu diesem Zeitpunkt besteht das einzige Problem darin, dass auf der neuen Box eine Assembly fehlt. Auf der alten Box können wir den Assemblynamen sehen, aber für das Leben von uns können wir nicht herausfinden, welche DLL der Code physisch ist, damit wir ihn in die neue Box verschieben können.Gibt es eine Möglichkeit zu sagen, in welcher DLL sich eine bestimmte .net-Assembly befindet?

Gibt es ein snazzy .net Assembly Widget, das Ihnen sagen wird?

Antwort

2

Der Assemblyname sollte mit dem DLL-Namen identisch sein. (Nun, die DLL wird am Ende natürlich ".dll" haben.) Der Assemblyname gibt an, wie die CLR herausfindet, welche Datei geladen werden soll!

Sie meinen, Sie können den Namespace für einige der Typen verwendet sehen?

+0

AHA geladen wird starten können! Ich wusste nicht, dass das eine wirkliche Regel war. Großartig, danke! –

+0

Ich glaube nicht, dass es ein Gesetz ist, eher eine Faustregel. Ich habe Plugin - Klassen aus allen DLL - Dateien in einem bestimmten Verzeichnis geladen, indem ich mehrere Namespaces pro Datei durchlaufen habe, und da eine Datei nur einen Namen hat ... – Kris

+0

@Kris: Assembly name => Dateiname ist eine Regel (die CLR versucht .dll und .exe, mit Variationen für Satelliten-Assemblies etc). Namespace => Assemblyname ist nur eine Konvention. Großer Unterschied :) –

7

Ich würde die .NET Reflector verwenden, um die Hauptanwendung zu laden, dann schauen Sie im Abschnitt Referenzen nach, auf welche Baugruppen verwiesen wird.

0

Für Code ausführen Sie Process Explorer und im unteren Feld Blick auf DLLs, enthalten die Spalten den Pfad zu dem eine gegebene Anordnung von

Verwandte Themen