Załaduj zestawy z zależnościami w innej domenie aplikacji
Moim celem jest sprawdzenie braku zależności między 2 podanymi folderami. Wyobraź sobie następującą konfigurację.
Root DirA.dll
Root DirB B.dll
B zależy od A.
Więc biorąc pod uwagę te foldery, chcę utworzyć nową domenę aplikacji, załadować B.dll i mieć zależność od DirA (A.dll) automatycznie rozwiązaną i odizolowaną w tej nowej domenie aplikacji.
Izolacja jest tu kluczowa, biorąc pod uwagę, że kiedy rozładowuję tę domenę AppDomain, chcę utworzyć nową z potencjalnie zależną DirA, ale biblioteki DirC, które tego wymagają, w przypadku, gdy DirC ma zależność od DirB, również chcę, aby wyjątek.
Edycja: Dodanie przykładu kodu w przypadku, gdy pomaga lepiej opisać moje pytanie.
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
Dzięki za pomoc.