2016-07-14 6 views
11

dotnet new -t libコマンドで新しい.NETコアプロジェクトを作成しました。私のEF Contextのためのクラスライブラリです。これは私のproject.jsonEF 7 .NETコアツールエラー

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "debugType": "portable" 
    }, 
    "dependencies": {}, 
    "frameworks": { 
    "netstandard1.6": { 
     "dependencies": { 
     "NETStandard.Library": "1.6.0", 
     "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
     } 
    } 
    } 
} 

私はこのエラーを取得していdotnet restoreのコマンドを実行します。

私はnetstandard1.6とEFコードファーストを使用するにはどうすればよい
error: Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final is not compatible with netstandard1.6 (.NETStandard,Version=v1.6). Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final supports: 

+0

はのためのツールを使用していることに注意してくださいEnity Frameworkはクラスライブラリをサポートしていませんので、 'dotnet ef'を実行すると失敗します。回避策については、https://docs.efproject.net/en/latest/miscellaneous/cli/dotnet.html#targeting-class-library-projects-is-not-supportedをご覧ください。 –

+0

@ JohanBこれは、 '--startup-project'の回避策を使って部分的に対処しています。例えば、' dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb'を見てください。 dotnet-ef](https://github.com/aspnet/EntityFramework/pull/5680) –

+0

@HamidMosallaこれは私が探していた解決策です。あなたはこのコメントであなたの答えを更新することができますので、私はそれを正解としてマークできますか? – alexxjk

答えて

14

thisによると、"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"はproject.jsonでツールセクションに登録する必要があります。EFコアの依存関係の一部がまだないので

{ 
"version": "1.0.0-*", 
"description": "Class Library", 
"frameworks": { 
    "netstandard1.6": { 
    "imports": [ 
    "dnxcore50" 
    ] 
} 
}, 

"dependencies": { 
"NETStandard.Library": "1.6.0", 
"Microsoft.EntityFrameworkCore": "1.0.0", 
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0" 
}, 
"tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
} 
} 

はまた、importsを使用するのは良いアイデアです.NETStandardをサポートしていますが、あなたのケースでは私はチェックして、インポートなしでも動作します。 EFツールは今のクラスライブラリを使用することはできません述べヨハン・Bさんのコメント、に関しては、それは、部分的に例えば、--startup-project回避策を使用することによって対処される

dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb、より多くの情報:Parameterize directories used by dotnet-ef.

関連する問題