public void LoadAssembliesIntoAppDomain(IEnumerable<AssemblyData> assembliesAndSymbols, ApplicationEnvironment environment)
        {
            var resolver = new AssemblyResolver();
            resolver.Attach();

            // Store files locally, because only pure IL assemblies can be loaded directly from memory
            var path = Path.Combine(
                environment.GetLocalResourcePath("AssembliesTemp"),
                Guid.NewGuid().ToString("N"));

            if (Directory.Exists(path))
            {
                Directory.Delete(path, true);
            }

            Directory.CreateDirectory(path);
            foreach (var assembly in assembliesAndSymbols)
            {
                File.WriteAllBytes(Path.Combine(path, assembly.Name), assembly.Bytes);
            }

            var assemblies = Directory.EnumerateFiles(path, "*.dll").Concat(Directory.EnumerateFiles(path, "*.exe"));
            foreach (var assembly in assemblies)
            {
                Assembly.LoadFile(assembly);
            }
        }
Esempio n. 2
0
        public void LoadAssembliesIntoAppDomain(IEnumerable <AssemblyData> assembliesAndSymbols, ApplicationEnvironment environment)
        {
            var resolver = new AssemblyResolver();

            resolver.Attach();

            // Store files locally, because only pure IL assemblies can be loaded directly from memory
            var path = Path.Combine(
                environment.GetLocalResourcePath("AssembliesTemp"),
                Guid.NewGuid().ToString("N"));

            if (Directory.Exists(path))
            {
                Directory.Delete(path, true);
            }

            Directory.CreateDirectory(path);
            foreach (var assembly in assembliesAndSymbols)
            {
                File.WriteAllBytes(Path.Combine(path, assembly.Name), assembly.Bytes);
            }

            var assemblies = Directory.EnumerateFiles(path, "*.dll").Concat(Directory.EnumerateFiles(path, "*.exe"));

            foreach (var assembly in assemblies)
            {
                Assembly.LoadFile(assembly);
            }
        }