예제 #1
0
        static AssemblyLoadContext CreateLoadContext(string baseDir, string assemblyFile)
        {
            var depsJsonFile = Path.Combine(baseDir, Path.GetFileNameWithoutExtension(assemblyFile) + ".deps.json");

            var builder = new AssemblyLoadContextBuilder();

            builder.TryAddDependencyContext(depsJsonFile, out _);
            builder.SetBaseDirectory(baseDir);

            return(builder.Build());
        }
예제 #2
0
        public static AssemblyLoadContextBuilder AddDependencyContext(this AssemblyLoadContextBuilder builder, string depsFilePath)
        {
            var reader = new DependencyContextJsonReader();

            using (var file = File.OpenRead(depsFilePath))
            {
                var deps = reader.Read(file);
                builder.SetBaseDirectory(Path.GetDirectoryName(depsFilePath));
                builder.AddDependencyContext(deps);
            }

            return(builder);
        }