2017-01-28 13 views
1

私は.NETコアを持つ他のデータベースシステムを使っている人のビデオを見てきました。ビルドしているアプリケーションでMySQLを使いたいと思っていました。私はConfigureServicesメソッドにこの行を追加した後に私のアプリケーションを実行すると例外が発生します。.NETコアwith MySQL

services.AddEntityFrameworkMySql().AddDbContext<MyDbContext>(ServiceLifetime.Singleton); 

私のproject.jsonファイルは、これらのパッケージを追加する以外はほとんど変わりません。

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
"Pomelo.EntityFrameworkCore.MySql": "1.1.0", 
"Microsoft.EntityFrameworkCore.Relational": "1.1.0" 

私の最終的なproject.jsonファイルです。

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.1", 
     "type": "platform" 
    }, 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.1",  
    "Microsoft.AspNetCore.Razor.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.AspNetCore.Routing": "1.0.1", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "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", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Pomelo.EntityFrameworkCore.MySql": "1.1.0", 
    "Microsoft.EntityFrameworkCore.Relational": "1.1.0" 
    }, 

    "tools": { 
    "BundlerMinifier.Core": "2.0.238", 
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "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": { 
    "prepublish": [ "bower install", "dotnet bundle" ], 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

正常に動作するには何が必要ですか? MyDbContextでは、接続文字列を使用するようにOnConfiguringメソッドをオーバーライドしました。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 

    => optionsBuilder.UseMySql(@"Server=localhost;database=MyTestDb;uid=root;pwd=pwd;"); 

どこが間違っていますか?私は型「System.IO.FileLoadException」 Microsoft.EntityFrameworkCore.Relational.dllで発生したの

例外は、configureサービス方式でStartup.csで、述べたように、この例外を取得しますが、 で処理されていませんでしたユーザーコード

追加情報:ファイルまたはアセンブリ 'Microsoft.Extensions.Logging.Abstractions、バージョン= 1.1.0.0、なPublicKeyToken = adb9793829ddae60中立 文化=' をロードできませんでした。見つかった アセンブリのマニフェスト定義がアセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)

+1

エラーメッセージは、見つかったアセンブリ 'Microsoft.Extensions.Logging.Abstractions'が、読み込みアセンブリに対して作成されたアセンブリと一致しないことを明示しています。私は、あなたがこのアセンブリ(またはサードパーティのアセンブリが行うこと)を参照する場所、b)見つかったアセンブリがその場所にどのように展開され、最終的に一致するかを調べるといいと思います。 –

答えて

0

プロジェクトをアップグレードする必要があります。あなたは、あなたが他の依存関係をロードし、彼らはあなたがVS 2015を使用している場合は、に行くことができますバージョン1.1.0

"Pomelo.EntityFrameworkCore.MySql": "1.1.0", 
"Microsoft.EntityFrameworkCore.Relational": "1.1.0" 

であるあなたの.NETのコアバージョンの1.0.1で

Microsoft.NETCore.App": { 
    "version": "1.0.1", 
    "type": "platform" 
}, 

を実行していますnugetパッケージマネージャーを開き、アップデートタブに行き、利用可能なアップデートを持つすべてのパッケージをアップデートしてください。

VSコードを使用している場合は、それらを1行ずつ調べて、nugetでパッケージを検索し、最新バージョンを探してバージョン番号を更新してから、プロジェクトフォルダの中でコマンドプロンプトからdotnet restoreを実行する必要があります。

.netコアバージョン1.1.0をまだインストールしていない場合は、それを行う必要があります。

これが役に立ちます。