Unable to retrieve project metadata. Ensure it'

2020-03-01 08:44发布

I've been researching a lot online but did not find a proper solution. I was trying to use Entity Framework Core with MySQL by using database-first scaffold method to mapping table model while always received this error when applied the command

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.

This is the command I am using to scaffold the database model:

Scaffold-DbContext "server=localhost;port=3306;user=root;password=1234;database=world" "Pomelo.EntityFrameworkCore.MySql" -OutputDir .\Models -f

And this is my .Net Core project setting:

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.1" />
    <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.0.1" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
  </ItemGroup>

5条回答
甜甜的少女心
2楼-- · 2020-03-01 09:04

Add this parameter to the end of your scaffold command "--msbuildprojectextensionspath".

查看更多
3楼-- · 2020-03-01 09:10

For my case this error was solved by downloading latest dotnet-sdk-2.2.107-win-x64

for VS2017 and then dropping and updating database through cmd:

dotnet ef database drop --force --context <<dbcontext>> -s <<startup project directory>> -p <<project directory>>


dotnet ef database update --context <<dbcontext>> -s <<startup project directory>> -p <<project directory>>
查看更多
萌系小妹纸
4楼-- · 2020-03-01 09:18

enter image description here

I have tried different solutions to solve this error. Did following change in .csproj file.

enter image description here

Solved this issue for .Net Core by edit .csproj file and removed Import tag and then run ef command again in command line.

查看更多
贪生不怕死
5楼-- · 2020-03-01 09:21

For EF Core 3

I think the powershell command has gone away for EF Core 3 so I'm using dotnet ef dbcontext scaffold

With this command, if you're converting a Scaffold-DbContext script the project name (parameter --project) needs to have .csproj on the end - it can't just the extensionless name.

查看更多
放荡不羁爱自由
6楼-- · 2020-03-01 09:22

I got this error trying to add a new migration on the command line with dotnet ef migrations add NewMigration.

The solution for me was indeed to append --msbuildprojectextentionspath obj/local.

查看更多
登录 后发表回答