Laden Sie Assemblys mit Abhängigkeiten in eine andere AppDomain

Mein Ziel ist es, eine fehlende Abhängigkeitsprüfung zwischen 2 angegebenen Ordnern durchzuführen. Stellen Sie sich das folgende Setup vor.

Root \ DirA \ A.dll

Root \ DirB \ B.dll

B ist abhängig von A.

Angesichts dieser Ordner möchte ich eine neue AppDomain erstellen, B.dll laden und die Abhängigkeit von DirA (A.dll) in dieser neuen AppDomain automatisch auflösen und isolieren.

Isolation ist hier der Schlüssel, da ich beim Entladen dieser AppDomain eine neue mit potenziell DirA als Abhängigkeit erstellen möchte, DirC-Bibliotheken dies jedoch erfordern, falls DirC auch eine Abhängigkeit von DirB hat Ausnahme.

Bearbeiten: Hinzufügen eines Codebeispiels für den Fall, dass es hilft, meine Frage besser zu beschreiben.

AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = @"C:\Root";
setup.ApplicationName = "Isolated Domain"
setup.PrivateBinPath = @"DirA;DirB";
setup.PrivateBinPathProbe = "";//disable search in AppBase..
var domain = AppDomain.CreateDomain(Guid.NewGuid().ToString(),
                                    AppDomain.CurrentDomain.Evidence,
                                    setup,
                                    AppDomain.CurrentDomain.PermissionSet);
//The following statement in theory should pick B.dll's dependency from DirA.
var assembly = domain.Load(AssemblyName.GetAssemblyName(@"C:\Root\DirB\B.dll").Name);
//Do the same in a different domain for C.dll

Vielen Dank für jede Hilfe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage