在 ASP.Net Core 中创建初始迁移时出现问题
Issue with creating initial migration in ASP.Net Core
我一直在研究 ASP.Net 核心 MVC 项目的基础知识,我想知道为什么我无法创建初始迁移。
我进入项目文件夹并在 CMD 中 运行 "dotnet ef" 并收到错误 "No executable found matching command 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" 的软件包。在撰写本文时,我什至尝试将版本设置为最新版本(甚至是预览版本),但它仍然无法正常工作,从上面给了我 "unknown command" 错误。
如何将我的 NETCore.App 包更改为 2.0.0,或者让 Tools.DotNet 包兼容? NuGet 站点上没有高于 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 程序包管理器控制台
我一直在研究 ASP.Net 核心 MVC 项目的基础知识,我想知道为什么我无法创建初始迁移。
我进入项目文件夹并在 CMD 中 运行 "dotnet ef" 并收到错误 "No executable found matching command 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" 的软件包。在撰写本文时,我什至尝试将版本设置为最新版本(甚至是预览版本),但它仍然无法正常工作,从上面给了我 "unknown command" 错误。
如何将我的 NETCore.App 包更改为 2.0.0,或者让 Tools.DotNet 包兼容? NuGet 站点上没有高于 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