web-dev-qa-db-ger.com

Das angegebene Framework 'Microsoft.NETCore.App', Version '2.1' wurde nicht gefunden

Ich entwickle eine Angular 6-Anwendung in dotNet Core 2.1. Alles funktioniert einwandfrei, bis ich EFCore einrichten muss. Alle meine Modelle werden definiert und der Kontext erstellt. Ausführen von dotnet ef migrations add InitialCreate gibt mir den Fehler "Das angegebene Framework 'Microsoft.NETCore.App', Version '2.1' wurde nicht gefunden".

Ich habe alle Beiträge durchsucht und gelesen, bei denen dieser Fehler in verschiedenen Versionen von dotNet Core aufgetreten ist. Es funktioniert nichts, um dieses Problem für mich zu lösen.

Ich habe verschiedene Versionen der dotNet Core App installiert. Unter "C:\Programme\dotnet\shared\Microsoft.NETCore.App" habe ich Folgendes:

-1.0.4
- 1.0.5
- 1.1.1
- 1.1.2
- 2.0.0
- 2.0.3
- 2.0.5
- 2.0.6
- 2.0.7
- 2.0.9
- 2.1.0
- 2.1.4
- 2.1.5
- 2.1.6

"C:\Programme\dotnet" wird als erster Pfad in meiner System-PATH-Variablen angezeigt.

Wenn Sie alle Projekte in meiner Lösung auf dotNet Core 2.0 zurückstufen und den Befehl ausführen, tritt genau derselbe Fehler auf, der sich auf Version 2.0 bezieht.

Jede Beratung wäre sehr dankbar ...

Die csproj-Datei für mein EF-Projekt lautet wie folgt:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.4" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\*********.Contracts\*********.Contracts.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="System">
      <HintPath>System</HintPath>
    </Reference>
    <Reference Include="System.Data">
      <HintPath>System.Data</HintPath>
    </Reference>
    <Reference Include="System.Xml">
      <HintPath>System.Xml</HintPath>
    </Reference>
  </ItemGroup>
</Project>
6
WJK

Um das Problem zu lösen, musste ich das Paket Microsoft.EntityFrameworkCore.Design Installieren. Der Abschnitt Installation der Tools der Dokumentation besagt, dass dies für Asp.Net Core 2.1+ nicht erforderlich ist:

ASP.NET Core 2.1+

  • Installieren Sie das aktuelle . NET Core SDK . Das SDK muss installiert sein, auch wenn Sie über die neueste Version von Visual Studio 2017 verfügen.
    Dies ist alles, was für ASP.NET Core 2.1+ erforderlich ist, da das Paket Microsoft.EntityFrameworkCore.Design Im Microsoft.AspNetCore.App-Metapaket enthalten ist.

Meine Lösung ist in verschiedene Projekte unterteilt. Ich habe ein Klassenbibliotheksprojekt erstellt, in dem sich meine EF Core-Installation befindet.

Da es sich nicht um ein Asp.Net Core-Projekt handelt (wie bereits erwähnt handelt es sich um eine Klassenbibliothek), musste auch das Paket Microsoft.EntityFrameworkCore.Design Installiert werden.

Das Paket kann installiert werden mit: dotnet add package Microsoft.EntityFrameworkCore.Design

Vielen Dank an Ivan Stoev, der mich auf die Dokumentation aufmerksam gemacht hat.
Der Fehler war überhaupt keine Hilfe und hat mich auf eine wilde Gänsejagd geschickt, um zu versuchen, das zugrunde liegende Problem zu finden. Ich hoffe, dass dies jemand anderem nützlich sein wird.

6
WJK