为类库运行dotnet ef迁移会产生错误MSB4006

fra*_*tor 9 entity-framework-core

我有一个针对.NET Framework 4.6.2的ASP.NET核心Web应用程序(.NET Framework)项目.

我已将Entity Framework引入Web项目并已设置并运行

dotnet ef migrations add Initial
Run Code Online (Sandbox Code Playgroud)

来自web项目目录.迁移已创建,一切都很好.

我想重构代码,以便我的实体和数据库上下文在类库中.所以我创建了一个单独的类库(.NET Framework)项目,同样针对.NET Framework 4.6.2.

仍然从我运行的web项目目录

dotnet ef migrations add Initial --startup-project . --project ..\MigrationTest.Entities
Run Code Online (Sandbox Code Playgroud)

MigrationTest.Entities我的班级图书馆在哪里

这次我得到:

C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities\obj\MigrationTest.Entities.csproj.EntityFrameworkCore.targets(4,5):错误MSB4006:目标依赖关系图中存在循环依赖关系,涉及目标"GetEFProjectMetadata".[C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities\MigrationTest.Entities.csproj]无法检索项目元数据.确保它是基于MSBuild的.NET Core项目.如果您使用的是自定义BaseIntermediateOutputPath或MSBuildProjectExtensionsPath值,请使用--msbuildprojectextensionspath选项.

它不是.NET Core项目,所以我尝试创建一个.NET Core项目.运行迁移命令然后给出:

C:\ Program Files\dotnet\sdk\1.0.3\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.Common.targets(73,5):错误:项目'C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities.Core\MigrationTest.Entities.Core.csproj'target'.NETCoreApp,Version = v1.1'.它不能被针对".NETFramework,Version = v4.6.2"的项目引用.[C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities.Core\MigrationTest.Entities.Core.csproj] C:\ Program Files\dotnet\sdk\1.0.3\Sdks\Microsoft.NET.Sdk\build\Microsoft. NET.Sdk.targets(92,5):错误:找不到'C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities.Core\MigrationTest.Entities.Core.csproj'的项目信息.这可能表示缺少项目参考.[C:\项目\实验\ MigrationTestNoIdentity\MigrationTest.Web\MigrationTest.Web.csproj]

当然,.NET项目不能引用Core项目.

我正在尝试做一个受支持的场景吗?我的命令行使用有问题吗?别的什么?

Jam*_*mer 5

值得检查以确保您安装了 EF 工具包。

在 Visual Studio 中打开包管理器控制台并执行:

Install-Package Microsoft.EntityFrameworkCore.Tools
Run Code Online (Sandbox Code Playgroud)

然后再试dotnet ef <commands>一次。