Microsoft.EntityFrameworkCore.Design'的版本与'Microsoft.EntityFrameworkCore.Tools'不同

时间:2016-09-13 16:20:30

标签: sqlite entity-framework-core

我有asp dot net core项目,我需要发出命令

$ dotnet ef database update

但是在更新了dotnet之后,这个命令导致了这样的错误:

...Check that 'Microsoft.EntityFrameworkCore.Design' has been
added to "dependencies" in the startup project and that the
version of 'Microsoft.EntityFrameworkCore.Tools' in "tools"
and 'Microsoft.EntityFrameworkCore.Design' are the same...

我有一个1.0.0-preview3-003590版本的dotnet的linux平台。部分地,我的project.json看起来像这样:

"dependencies": {
    ...
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
    "Microsoft.EntityFrameworkCore.Sqlite.Design": {
        "version": "1.0.0",
        "type": "build"
    },
    "Microsoft.EntityFrameworkCore.Tools": {
        "version": "1.0.0-preview2-final", // and here is no 1.0.0 version!
        "type": "build"
    },
    ...
},
"tools": {
    ...
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
},

看起来我有不同版本的工具和设计包。但是nuget中没有1.0.0的工具包。此外,我试图将所有EF软件包降级到1.0.0-preview2-final版本。这对我不起作用。

这个问题完全可以通过YO生成的项目和我机器上实体框架核心的测试项目重现。

如何更改project.json以成功更新数据库?

1 个答案:

答案 0 :(得分:0)

通过安装dotnet的预览2而不是预览3来解决。