No se pueden agregar migraciones de Entity Framework Core al proyecto .NET Standard 2.0

Tengo una solución con muchos proyectos. Uno de ellos Domain) es un proyecto .NET Standard 2.0 donde hice mi EF CoreDbContext implementación para la que quiero habilitar migraciones de la base de datos.

Vi varios blogs y foros de preguntas y respuestas donde se explicó el problema, pero ninguna de las soluciones propuestas parece funcionar para mí debido a la versión más reciente de .NET Core o (probablemente) para mi configuración de solución particular.

Proyectos de solución

Engine (aplicación de consola .NET Core 2.1) API web (biblioteca .NET Core 2.1)Aplicación (biblioteca .NET Core 2.1)Domain (.NET Standard 2.0 Library)WindowsService (aplicación de consola .NET Core 2.1)

LosWindowsService es el proyecto de inicio, donde una instancia deEngine se crea y encapsula para ejecutarse como servicio de Windows o aplicación de consola (para depuración).

LosEngine es la aplicación principal real, donde una instancia deKestrell servidor web @ self-host está configurado como API web e instanciado. También se crean instancias de otros componentes y se mantienen vivos (escucha de UDP, perro guardián de la máquina, etc.).

WebAPI tieneStartup clase pero noProgram class, ya que toda la configuración y el inicio del servidor web se realiza dentro deEngine.Program.cs clase

Dependencias

WindowsService => MotorEngine => WebAPIWebAPI => Aplicación, DominioAplicación => Dominio

El primer intento fue simplemente lanzaradd-migration Initial de PMC conDomain proyecto como objetivo, pero se convierte en:

No se puede crear un objeto de tipo 'MyDbContext'. Agregue una implementación de 'IDesignTimeDbContextFactory' al proyecto, o veahttps: //go.microsoft.com/fwlink/? linkid = 851728 para patrones adicionales compatibles en tiempo de diseño.

Luego seguí la solución propuesta enest pregunta, pero:

add-migration Initial de PMC, después de configurar MyWebAPI (sinProgram clase) como proyecto de inicio, se convierte en:

No fue posible encontrar ninguna versión de marco compatible No se encontró el marco especificado 'Microsoft.NETCore.App', versión '2.1.0'.

Compruebe las dependencias de la aplicación y diríjase a una versión de framework instalada en: C: \ Archivos de programa \ dotnet \!$40$!http: //go.microsoft.com/fwlink/? LinkID = 798306 & clcid = 0x409 El .NET Core framework y el SDK se pueden instalar desde:https: //aka.ms/dotnet-downloaLas siguientes versiones están instaladas: 2.0.5 en [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App] 2.0.6 en [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App] 2.0 .7 en [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App] 2.0.9 en [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App] 2.1.2 en [C: \ Program Archivos \ dotnet \ shared \ Microsoft.NETCore.App]

add-migration Initial de PMC, después de agregar un marco de destino adicional netcoreapp2.1) al archivo de proyecto de la biblioteca de dominio, me lleva al mismo error que el primer intento.

add-migration Initial de PMC, después de agregar una referencia aMicrosoft.EntityFrameworkCore.SqlServer.Design v1.1.6 siempre conduce al mismo error que el primer intento.

¿Qué tengo que hacer

ACTUALIZA

Esta es la nuevaDomain.csproj archivo después de eliminar las bibliotecas innecesarias referencias.

<ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.1" />
    <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
</ItemGroup>

odas las bibliotecas de todos los proyectos están actualizada

Respuestas a la pregunta(2)

Su respuesta a la pregunta