Ich entwickle einen "Executor", der DLLs durch Reflektion ausführen wird. Ich werde eine DLL konfigurieren, die eine bestimmte Schnittstelle implementiert, der Executor wird diese DLL laden und die Methoden basierend auf der Schnittstelle ausführen.So laden Sie eine referenzierte DLL ohne die physikalische DLL
In einigen Fällen kann die konfigurierte DLL andere referenzierte DLLs haben, die nicht im Verzeichnis enthalten sind.
Meine Frage ist: wie diese Assembly laden und ausführen nicht die physische DLL der Referenzen?
Ex:
-Executor calls DLL "A".
-DLL "A" references DLL "B" and DLL "C".
-DLL "B" and DLL "C" are not in the directory.
Was erwarten Sie zu passieren? Warum befinden sich die Assemblies nicht im selben Verzeichnis? Wo sind sie? Und was hast du probiert? Siehe zum Beispiel [Baugruppenreferenzen aus einem anderen Ordner auflösen] (http://stackoverflow.com/questions/5260404/resolve-assembly-references-from-another-folder), [So fügen Sie einen Ordner zum Assembly-Suchpfad zur Laufzeit hinzu. NET?] (Http://stackoverflow.com/questions/1373100/how-to-add-folder-to-assembly-search-path-at-runtime-in-net), und so weiter. – CodeCaster
Wo sind sie dann? Entweder befinden sie sich in einem der Systemverzeichnisse/GAC und sie werden nur gut geladen, wenn Sie die DLL "A" laden, oder sie werden nicht gefunden und das Laden der DLL "A" schlägt fehl. – nos
@nos Ich habe nicht die DLLs, die eindeutige lokale, die sie sind, ist in den Referenzen der DLL "A" :( –