我正在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>
答案 0 :(得分:4)
要解决此问题,我必须安装Microsoft.EntityFrameworkCore.Design
软件包。文档的installing-the-tools部分指出,对于Asp.Net Core 2.1+,没有必要这样做:
ASP.NET Core 2.1+
- 安装当前的.NET Core SDK。即使您具有最新版本的Visual Studio 2017,也必须安装SDK。
这是ASP.NET Core 2.1+所需的全部,因为Microsoft.AspNetCore.App metapackage中包含Microsoft.EntityFrameworkCore.Design
包。
我的解决方案分为多个项目;我创建了一个安装了EF Core的 Class Library 项目。
由于它不是Asp.Net Core项目(如前所述,它是类库),因此还需要安装Microsoft.EntityFrameworkCore.Design
软件包。
可以使用以下方式安装软件包:dotnet add package Microsoft.EntityFrameworkCore.Design
感谢Ivan Stoev向我指示文档的方向。
该错误根本没有帮助,使我陷入了困境,试图找出潜在的问题。我希望这对其他人有用。
答案 1 :(得分:0)
运行时我遇到相同的问题
dotnet ef dbcontext info -s ProjectWeb.csproj
尽管它正在寻找的版本是2.1.17:
The framework 'Microsoft.NETCore.App', version '2.1.17' was not found.
幸运的是,在深入研究问题之后,有一个建议可在此处下载:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=2.1.17&arch=x64&rid=win10-x64
这会将您重定向到此链接:
https://dotnet.microsoft.com/download/dotnet-core/2.1/runtime/?utm_source=getdotnetcore&utm_medium=referral
安装后,该问题已解决。
答案 2 :(得分:0)
另请检查您的BundlerMinifier
:
<ItemGroup>
<DotNetCliToolReference Include="BundlerMinifier.Core" Version="3.2.449" />
</ItemGroup>
如果您使用的是旧版本,这很可能是罪魁祸首……请在此处查看最新版本: https://www.nuget.org/packages/BundlerMinifier.Core/