我一直在研究ASP.Net核心MVC项目的基础知识,我想知道为什么我无法创建我的初始迁移。
我进入项目文件夹并在CMD中运行“dotnet ef”并收到错误“找不到匹配命令dotnet-ef的可执行文件”。
我认为这很奇怪,所以我尝试在VS2017中构建我的应用程序,我收到此错误:
Severity Code Description Project File Line Suppression State
Error NU1605 Detected package downgrade: Microsoft.NETCore.App from 2.0.6
to 2.0.0. Reference the package directly from the project to select a
different version.
FiberLocator -> Microsoft.EntityFrameworkCore.Tools.DotNet 2.0.2 ->
Microsoft.NETCore.App (>= 2.0.6)
FiberLocator -> Microsoft.NETCore.App (>= 2.0.0) FiberLocator
C:\Users\user\Google Drive\ASP.Net Core
Projects\FiberLocator\FiberLocator.csproj 1
我的.csproj文件看起来像这样。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="Data\Migrations\" />
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
</ItemGroup>
</Project>
据我所知,。 .Tools.DotNet是让我能够使用“dotnet ef”的软件包。我甚至尝试在编写本文时将版本设置为最新版本(甚至是预览版本),它仍然无效,从上面给出了“未知命令”错误。
如何将NETCore.App包更改为2.0.0,或允许Tools.DotNet包兼容? NuGet网站上没有2.0.2以后的版本,所以我不知道该怎么做。
感谢任何帮助。
由于
答案 0 :(得分:2)
Microsoft.EntityFrameworkCore.Tools.DotNet
是dotnet-ef命令行工具。为了在项目中使用它,请将csproj
中引用它的元素从PackageReference更改为DotNetCliToolReference。像这样:
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.2" />
版本2.0.2
需要Microsoft.NETCore.App (>= 2.0.6)
。所以你应该没事。有关更多版本和依赖项,请查看:nuget.org
Microsoft.EntityFrameworkCore.Tools
包含等效的tools,但对于Visual Studio
中的Nuget的程序包管理器控制台