使用最新的 Entity Framework 核心出现 Newtonsoft.Json 装配错误
Getting Newtonsoft.Json assembly error with latest Entity Framework Core
我在安装 TC 2 的最新 visual studio 更新后创建了一个新的 Web Api 项目。
向项目添加了实体 Microsoft.EntityFrameworkCore": "1.0.0-rc2-final
和 Microsoft.EntityFrameworkCore.Tools: 1.0.0-preview1-final
。
打开命令行并输入 dotnet ef
。
此时我得到一个错误:
Could not load file or assembly 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
我是不是拿错了工具版本?
我用的是intellisense的版本。
摘自project.json:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-rc2-3002702",
"type": "platform"
},
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
"Microsoft.NETCore.Platforms": "1.0.1-rc2-24027",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview1-final" ,
"type": "build"
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview1-final",
"imports": "portable-net45+win8+dnxcore50"
},
"Microsoft.EntityFrameworkCore.Tools": {
"imports": [ "portable-net451+win8" ],
"version": "1.0.0-preview1-final"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"dnxcore50",
"portable-net45+win8",
"portable-net451+win8"
]
}
},
这似乎是 RC2 中的已知问题。
我会标记为已回答并等待 EF 团队解决。
一个解决方法帮了我大忙。
删除:
%USERPROFILE%\.nuget\packages\.tools\Microsoft.EntityFrameworkCore.Tools
%USERPROFILE%\.nuget\packages\Microsoft.EntityFrameworkCore.Tools
重新运行dotnet restore
我还必须在 project.json 文件中手动添加 InternalAbstractions:
"Microsoft.DotNet.InternalAbstractions": "1.0.0",
我在安装 TC 2 的最新 visual studio 更新后创建了一个新的 Web Api 项目。
向项目添加了实体 Microsoft.EntityFrameworkCore": "1.0.0-rc2-final
和 Microsoft.EntityFrameworkCore.Tools: 1.0.0-preview1-final
。
打开命令行并输入 dotnet ef
。
此时我得到一个错误:
Could not load file or assembly 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
我是不是拿错了工具版本?
我用的是intellisense的版本。
摘自project.json:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-rc2-3002702",
"type": "platform"
},
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
"Microsoft.NETCore.Platforms": "1.0.1-rc2-24027",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview1-final" ,
"type": "build"
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview1-final",
"imports": "portable-net45+win8+dnxcore50"
},
"Microsoft.EntityFrameworkCore.Tools": {
"imports": [ "portable-net451+win8" ],
"version": "1.0.0-preview1-final"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"dnxcore50",
"portable-net45+win8",
"portable-net451+win8"
]
}
},
这似乎是 RC2 中的已知问题。
我会标记为已回答并等待 EF 团队解决。
一个解决方法帮了我大忙。
删除:
%USERPROFILE%\.nuget\packages\.tools\Microsoft.EntityFrameworkCore.Tools
%USERPROFILE%\.nuget\packages\Microsoft.EntityFrameworkCore.Tools
重新运行
dotnet restore
我还必须在 project.json 文件中手动添加 InternalAbstractions:
"Microsoft.DotNet.InternalAbstractions": "1.0.0",