Невозможно получить метаданные проекта.Убедитесь, что это основанный на MSBuild проект .NET Core. - PullRequest
0 голосов
/ 04 июня 2018

Я много исследовал онлайн, но не нашел правильного решения.Я пытался использовать Entity Framework Core с MySQL, используя метод скаффолда, основанного на базе данных, для отображения модели таблицы, в то время как всегда получал эту ошибку при применении команды

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.

Это команда, которую я использую для скаффолдинга базы данных.модель:

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

И это моя настройка проекта .Net Core:

  <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>

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

В моем случае эта ошибка была решена путем загрузки последней версии dotnet-sdk-2.2.107-win-x64

для VS2017, а затем удаления и обновления базы данных с помощью 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>>
0 голосов
/ 25 сентября 2018

Добавьте этот параметр в конец вашей команды скаффолда "--msbuildprojectextensionspath".

...