我的目标是在 2 个给定文件夹之间进行缺失的依赖检查。想象一下以下设置。
根\DirA\A.dll
根\DirB\B.dll
B依赖于A。
因此,鉴于这些文件夹,我想创建一个新的 AppDomain,加载 B.dll 并在新的 AppDomain 中自动解析和隔离来自 DirA(A.dll) 的依赖项。
隔离是这里的关键,因为当我卸载这个 AppDomain 时,我想创建一个新的 AppDomain 可能再次作为依赖项,但是 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
感谢您提供任何帮助。