Dll 无法加载文件或程序集mscorlib

Dll 无法加载文件或程序集mscorlib,dll,.net-core,mscorlib,Dll,.net Core,Mscorlib,我是NetCore的新手,我尝试使用以下代码动态加载dll: public void LoadDll() { try { var dllPath = @"C:\Temp\dynamic.dll"; var asl = new AssemblyLoader(); var asm = asl.LoadFromAssemblyPath(dllPath); var type = asm.GetType("MyNamesp

我是NetCore的新手,我尝试使用以下代码动态加载dll:

public void LoadDll()
{
    try
    {
        var dllPath = @"C:\Temp\dynamic.dll";

        var asl = new AssemblyLoader();
        var asm = asl.LoadFromAssemblyPath(dllPath);

        var type = asm.GetType("MyNamespace.MyClass");
        dynamicInstance = Activator.CreateInstance(type);
    }
    catch (Exception ex)
    {

    }
}

public class AssemblyLoader : AssemblyLoadContext
{
    // Not exactly sure about this
    protected override Assembly Load(AssemblyName assemblyName)
    {
        var deps = DependencyContext.Default;
        var res = deps.CompileLibraries.Where(d => d.Name.Contains(assemblyName.Name)).ToList();
        var assembly = Assembly.Load(new AssemblyName(res.First().Name));
        return assembly;
    }
}
调用asm.GetType方法时会引发异常:

“无法加载文件或程序集'mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089'。操作在当前状态下不合法。(HRESULT的异常:0x80131509)“源:System.Private.CoreLib”

这是我的project.json:

{
    "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.AspNetCore.Routing": "1.0.1",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0" 
    },

    "tools": {
      "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
    },

    "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
        ]
      }
    },

    "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
    },

    "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
      }
    },

    "publishOptions": {
    "include": [
      "wwwroot",
      "**/*.cshtml",
      "appsettings.json",
      "web.config"
      ]
    },

    "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
    }
}

有人能帮我吗?这是一个很常见的问题。从.NET Core 1.1开始,您不能加载为.NET Framework构建的库(它们基于mscorlib),只能加载使用PCL构建的库

检查您尝试加载的程序集

.NET Core 2.0将讨论此主题