动态加载Asp.Net核心中的程序集

时间:2019-07-03 07:07:48

标签: asp.net-core

我正在尝试在运行时加载程序集,但是该程序集不在DependencyContext的检索程序集中。

在这里,需要加载的dll对应用程序没有任何依赖性。

public class AppDomain
{
    public static AppDomain CurrentDomain { get; private set; }

    static AppDomain()
    {
        CurrentDomain = new AppDomain();
    }

    public Assembly[] GetAssemblies()
    {
        var assemblies = new List<Assembly>();
        var dependencies = DependencyContext.Default.RuntimeLibraries;
        foreach (var library in dependencies)
        {
            if (IsCandidateCompilationLibrary(library))
            {
                var assembly = Assembly.Load(new AssemblyName(library.Name));
                assemblies.Add(assembly);
            }
        }
        return assemblies.ToArray();
    }

    private static bool IsCandidateCompilationLibrary(RuntimeLibrary compilationLibrary)
    {
        return compilationLibrary.Name == ("Specify")
            || compilationLibrary.Dependencies.Any(d => d.Name.StartsWith("Specify"));
    }
}

这是我尝试过的代码片段(我在某处找到它)。几乎所有的dll都已加载,但是只有我添加到构建位置的dll没有加载。

有人对此有任何想法吗?

0 个答案:

没有答案