Загрузка сборок с зависимостями в другой домен приложения
Моя цель - выполнить проверку отсутствующих зависимостей между двумя заданными папками. Представьте себе следующую настройку.
Root \ Dira \ A.DLL
Root \ DIRB \ B.dll
B зависит от A.
Поэтому, учитывая эти папки, я хочу создать новый AppDomain, загрузить B.dll и автоматически разрешить и изолировать зависимость от DirA (A.dll) в этом новом AppDomain.
Изоляция является ключевой здесь, учитывая, что когда я выгружаю этот домен приложений, я хочу создать новый с потенциально DirA в качестве зависимости снова, но библиотекам DirC, которые этого требуют, так что в случае, если DirC также имеет зависимость от DirB, я хочу, чтобы он выбрасывал исключение.
Изменить: добавление примера кода на случай, если это поможет лучше описать мой вопрос.
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
Спасибо за любую помощь в этом.