2016-12-02 13 views
1

私はNetCoreで新たなんだがロードできませんでしたし、私はこのコードを使用して動的にDLLをロードしよう:は、ファイルまたはアセンブリmscorlib

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、Culture =ニュートラル、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%" ] 
    } 
} 

誰かが私を助けることができますか?

答えて

1

これは非常に一般的な問題です。 .NET Core 1.1では、.NET Framework用に構築されたライブラリ(mscorlibベース)はロードできませんが、PCLを使用してビルドされたライブラリのみロードできます。

ロードしようとしているアセンブリを確認します。

.NET Core 2.0では、このトピックについて説明します。

関連する問題