安装 .NET 6 后无法创建 EF 迁移
Posted
技术标签:
【中文标题】安装 .NET 6 后无法创建 EF 迁移【英文标题】:Can't create EF migrations after installing .NET 6 【发布时间】:2021-12-28 01:26:29 【问题描述】:我刚刚安装了 .NET 6 SDK 并更新了我的所有项目以使用目标 net6.0
,但是当我尝试使用 dotnet
工具创建新迁移时,我得到:
.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<ApplicationIcon>assets-logo.ico</ApplicationIcon>
<RootNamespace>LC.Assets</RootNamespace>
<Authors>Stein Lundbeck</Authors>
<Company>Lundbeck Consulting</Company>
<Product>LC Assets</Product>
<Copyright>2021</Copyright>
</PropertyGroup>
<ItemGroup>
<Content Include="assets-logo.ico" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LC.Components.Core\LC.Components.Core.csproj" />
<ProjectReference Include="..\LC.Components\LC.Components.csproj" />
</ItemGroup>
</Project>
找不到任何兼容的框架版本找不到框架“Microsoft.NETCore.App”,版本“2.0.0”(x64)。
找到以下框架: 6.0.0 在 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
您可以通过安装指定的框架和/或 SDK 来解决问题。
我已经将dotnet-ef
工具更新到 6.0.0 版本,所以我不知道它仍然针对 2.0.0 版本。
工具“dotnet-ef”已成功从版本“5.0.4”更新到版本“6.0.0”。
有什么想法吗?
【问题讨论】:
您是否更新了 EF 工具,但仍然迁移失败?你能发布你的 csproj 文件吗? @Chaodeng 我刚刚将它添加到问题中:) 您缺少开始我刚刚遇到了完全相同的问题。
我没有安装 Microsoft.NETCore.App 2.0.0,而是安装了 Entity Framework Core Design 包:
dotnet add package Microsoft.EntityFrameworkCore.Design
它让我的错误消失了。
注意:在我记得遵循 EF 入门指南 (https://docs.microsoft.com/en-us/ef/core/get-started/overview/first-app?tabs=netcore-cli) 让我安装了设计包并且在我遵循指南时没有抛出错误之后,我找到了解决方案。
【讨论】:
【参考方案2】:我最近在升级到 .NET6 后遇到了这个问题。
我的解决方案是按照错误消息中的链接安装 Microsoft.NETCore.App 2.0.0。
https://dotnet.microsoft.com/download/dotnet/2.0/runtime
我猜测升级到 6 删除了这个框架,因为它被认为是遗留的......但是......仍然在 dot net 工具中使用(或以某种方式标记为必需的依赖项)。
【讨论】:
好的听起来不错。我正要安装运行时,但不知道它是否安装了 6.0。谢谢! 成功了!太棒了! 嗯,这不应该是必需的。您能否submit an issue附上您的项目(如果可能)以便我们进一步调查?【参考方案3】:我的解决方案是按照 @Thomas Z 的建议安装 EntityFrameworkCore.Design。
dotnet add package Microsoft.EntityFrameworkCore.Design
同样,在创建 ef 迁移时确保 db 的路径是正确的。如果路径是动态创建的,它将不起作用。
【讨论】:
以上是关于安装 .NET 6 后无法创建 EF 迁移的主要内容,如果未能解决你的问题,请参考以下文章
无法在 .Net Standard 2.1 项目中添加 EF 6.4 迁移
.net framework(4.6.2) 迁移 .net core(2.2) 总结
ASP.NET 5 EF7 代码优先迁移默认按字母顺序创建列