Миграции EF Core 3.1 - PullRequest
       65

Миграции EF Core 3.1

0 голосов
/ 02 августа 2020

Я получаю следующую ошибку при попытке создать миграцию с помощью EF Core 3.1.

PM> add-migration InitialDB

Unable to resolve startup project ''.
Using project 'UI\UI.Web' as the startup project.
Build started...
Build succeeded.

System.IO.FileLoadException: не удалось загрузить файл или сборку netstandard, версия = 2.1 .0.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51 '. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) Имя файла: 'netstandard, Version = 2.1.0.0, Culture = нейтральный, PublicKeyToken = cc7b13ffcd2ddd51'

в Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration (имя строки, String outputDir, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl (имя строки, String outputDir, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase. <> c__DisplayClass3_0`1.b__0 () в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (действие действия)

Не удалось загрузить файл или сборку netstandard, версия = 2.1.0.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51 '. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Есть ли что-нибудь, что мне нужно сделать, чтобы мой проект получил поддержку миграции. NET Core 3.0 / 3.1?

Любая помощь был бы очень признателен.

1 Ответ

0 голосов
/ 05 августа 2020

Я недавно столкнулся с той же проблемой для себя после обновления моего EF Core с 2.2 до 3.1.6, и после некоторого исследования проблемы, похоже, если вы попытаетесь увеличить свой RuntimeFrameworkVersion в своем .csproj, это может исправить проблему. Мне показалось, что это решило проблему, помните, что существуют только определенные совместимые. NET Основные фреймворки, доступные в зависимости от вашей конфигурации. Если вы неправильно установили его на несуществующую версию, вы увидите это

It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '3.1.0' was not found.
  - The following frameworks were found:
      2.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.11 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.20 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      3.1.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

. После обновления RuntimeFrameworkVersion, который вы поддерживали в своей среде разработки, ваш .csproj может выглядеть примерно так

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest> 
    <GenerateRuntimeConfigurationFiles> true</GenerateRuntimeConfigurationFiles>
    <RuntimeFrameworkVersion>3.1.6</RuntimeFrameworkVersion>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  </PropertyGroup>

Надеюсь, это поможет вам, как помогло мне. Но если это не так, вы также можете отредактировать файл .csproj, чтобы включить в него все частные и юридические активы

    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>

PS Первый раз отправляю ответ о переполнении стека, поэтому я заранее извиняюсь, если это вам не поможет, и я надеюсь, что это поможет вам.

...