web-dev-qa-db-fra.com

Le cadre spécifié «Microsoft.NETCore.App», version «2.1» est introuvable

Je développe une Angular 6 dans dotNet Core 2.1. Tout fonctionne parfaitement, jusqu'à ce que j'arrive à configurer EFCore. Tous mes modèles sont définis et créés en contexte. Running dotnet ef migrations add InitialCreate me donne l'erreur "Le framework spécifié 'Microsoft.NETCore.App', version '2.1' est introuvable".

J'ai recherché et lu tous les messages que j'ai pu trouver qui contiennent cette erreur dans différentes versions de dotNet Core. Rien ne fonctionne pour résoudre ce problème pour moi.

J'ai installé différentes versions de dotNet Core App. En regardant "C:\Program Files\dotnet\shared\Microsoft.NETCore.App", j'ai ce qui suit:

-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:\Program Files\dotnet" apparaît comme premier chemin dans ma variable System PATH.

La rétrogradation de tous les projets de ma solution vers dotNet Core 2.0, l'exécution de la commande entraîne exactement la même erreur, se référant à la version 2.0.

Tout conseil serait grandement apprécié...

Le fichier csproj pour mon projet EF est le suivant:

<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

Pour résoudre le problème, j'ai dû installer le Microsoft.EntityFrameworkCore.Design paquet. La section installation-des-outils de la documentation indique qu'il n'est pas nécessaire de le faire pour Asp.Net Core 2.1+:

ASP.NET Core 2.1+

  • Installez l'actuel . NET Core SDK . Le SDK doit être installé même si vous disposez de la dernière version de Visual Studio 2017.
    C'est tout ce qui est nécessaire pour ASP.NET Core 2.1+ car le Microsoft.EntityFrameworkCore.Design le package est inclus dans le métapaquet Microsoft.AspNetCore.App .

Ma solution se décompose en différents projets; J'ai créé un projet de bibliothèque de classes où réside mon installation EF Core.

Puisqu'il ne s'agit pas d'un projet Core Asp.Net (c'est une bibliothèque de classes comme indiqué précédemment), il nécessitait également le Microsoft.EntityFrameworkCore.Design package à installer.

Le package peut être installé à l'aide de: dotnet add package Microsoft.EntityFrameworkCore.Design

Merci à Ivan Stoev de m'avoir indiqué la direction de la documentation.
L'erreur n'a été d'aucune aide, m'envoyant dans une chasse aux oies sauvages pour essayer de trouver le problème sous-jacent. J'espère que cela sera utile à quelqu'un d'autre.

6
WJK