Dll 无法加载文件或程序集mscorlib
我是NetCore的新手,我尝试使用以下代码动态加载dll: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
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将讨论此主题