public TempAppDomain() { var settings = new AppDomainSetup { ApplicationBase = AppDomain.CurrentDomain.BaseDirectory, }; _appDomain = AppDomain.CreateDomain(Guid.NewGuid().ToString(), securityInfo: null, settings); var handle = Activator.CreateInstance ( _appDomain, typeof(AssemblyLoaderProxy).Assembly.FullName, // ReSharper disable once AssignNullToNotNullAttribute typeof(AssemblyLoaderProxy).FullName, ignoreCase: false, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, binder: null, args: null, CultureInfo.CurrentCulture, activationAttributes: new object[0] ); _loaderProxy = (AssemblyLoaderProxy)handle.Unwrap(); }
public void Create() { string pathToDll = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var domainSetup = new AppDomainSetup { PrivateBinPath = pathToDll, ConfigurationFile = "", ApplicationBase = System.AppDomain.CurrentDomain.BaseDirectory }; var evidence = System.AppDomain.CurrentDomain.Evidence; _domain = System.AppDomain.CreateDomain(_name, evidence, domainSetup); _assemblyLoaderProxy = LoadProxy <AssemblyLoaderProxy>(); _assemblyLoaderProxy.AddDirectory(pathToDll); _runnerProxy = LoadProxy <TestRunnerProxy>(); }