我有.NET Core应用程序。我正在尝试执行
dotnet ef --configuration Release database update
生成SQLite Entity Framework数据库(恢复和发布命令都完美无缺)。这失败了
Project.csproj.EntityFrameworkCore.targets(4,5): error MSB4006: There is a circular dependency in the target dependency graph involving target "GetEFProjectMetadata". [C:\Project\src\Project\Project.csproj]
Unable to retrieve project metadata. Ensure it's an MSBuild-based .NET Core project. If you're using custom BaseIntermediateOutputPath or MSBuildProjectExtensionsPath values, Use the --msbuildprojectextensionspath option.
我无法谷歌任何东西。
如果我执行
,则不会发生 dotnet ef database update
让我感到困惑,因为项目的调试/发布配置是默认配置。
让我更加困惑的是这个命令
dotnet ef --configuration Debug database update
也不起作用,因此这最终与使用--configuration
有关。请注意,我使用--configuration Release
和publish
命令,并且没有问题。
我已经在安装了MSVS2017的Windows 10系统上测试了这个,以及在我安装了最新的64位.NET Core SDK的干净的Windows 7系统上。两个系统的行为完全相同。
项目文件未定义任何BaseIntermediateOutputPath或MSBuildProjectExtensionsPath。
项目文件中EF的项目依赖关系如下:
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.0.0" />
和
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
即使我从项目文件中删除了大部分内容,也会出现错误。
答案 0 :(得分:3)
看起来这将在2.0中修复,但目前的解决方法是指定
--framework
https://github.com/aspnet/EntityFramework/issues/8399
在我的实例中它是
--framework netcoreapp1.1