【发布时间】:2019-04-20 22:24:57
【问题描述】:
我正在 dotNet Core 2.1 中开发 Angular 6 应用程序。
一切都完美无缺,直到我开始设置 EFCore。
我的所有模型都已定义并创建了上下文。运行 dotnet ef migrations add InitialCreate 给我“未找到指定的框架 'Microsoft.NETCore.App',版本 '2.1'”错误。
我已经搜索并阅读了所有我能找到的在不同版本的 dotNet Core 中存在此错误的帖子。没有任何方法可以为我解决此问题。
我安装了各种版本的 dotNet Core App。 查看“C:\Program Files\dotnet\shared\Microsoft.NETCore.App”我有以下内容:
-1.0.4
-1.0.5
-1.1.1
-1.1.2
-2.0.0
-2.0.3
-2.0.5
-2.0.6
-2.0.7
-2.0.9
-2.1.0
-2.1.4
-2.1.5
-2.1.6
“C:\Program Files\dotnet”显示为我的系统 PATH 变量中的第一个路径。
将我的解决方案中的所有项目降级到dotNet Core 2.0,运行命令导致完全相同的错误,参考版本2.0。
任何建议将不胜感激......
我的EF项目的csproj文件如下:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.4" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\*********.Contracts\*********.Contracts.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="System">
<HintPath>System</HintPath>
</Reference>
<Reference Include="System.Data">
<HintPath>System.Data</HintPath>
</Reference>
<Reference Include="System.Xml">
<HintPath>System.Xml</HintPath>
</Reference>
</ItemGroup>
</Project>
【问题讨论】:
-
你能展示你的项目文件吗?很可能是某个地方的版本引用导致了麻烦......
-
尝试将此 Nuget 包安装到项目中。即使你没有在那个项目中使用它
-
@TomasAschan:你是说 csproj 文件吗?我有多个,为应用程序指定多层。那么它会是EF所在的项目吗?
-
查看Entity Framework Core tools reference - .NET CLI。您是否按照Installing the tools 的说明进行操作?如果将
dotnet ef命令运行到verify the installation,会得到什么? -
神圣 $h1t,谢谢伊万。再次阅读安装工具,我运行“dotnet add package Microsoft.EntityFrameworkCore.Design”,它似乎已经解决了问题。它在我的项目文件中添加了“
”。与往常一样,Microsoft 的错误非常模糊,通常根本没有指出真正的问题......
标签: c# ef-core-2.1 .net-core-2.1