Проблема с идентификацией .NET Core 3.0

Я пытаюсь обновить свои проекты до .NET Core 3.0 и .NET Standard 2.1 (включая .NET Core Identity)

У меня 2 проекта. Сначала мой веб-API:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0" />
  </ItemGroup>
...

И в этом проекте код, связанный с Identity, работает нормально.

Как я вижу здесь, мне нужно удалить пакет Microsoft.AspNetCore.Identity https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio

2-й проект:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <!--<FrameworkReference Include="Microsoft.AspNetCore.App" />-->
    <!--<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />-->
  </ItemGroup>
...

Итак, если я удалю Microsoft.AspNetCore.Identity из своего второго проекта, я вижу ошибку:

Не удалось найти тип или имя пространства имен 'SignInManager<>' (вам не хватает директивы using или ссылки на сборку?)

Если я добавлю эту строку:

<FrameworkReference Include="Microsoft.AspNetCore.App" />

Я вижу эту ошибку:

Ошибка NETSDK1073 FrameworkReference «Microsoft.AspNetCore.App» не распознан

Как я могу решить свою проблему?


person A. Gladkiy    schedule 24.09.2019    source источник
comment
Возможно, вместо TargetFramework из netstandard2.1 вам следует использовать netcoreapp3.0?   -  person DavidG    schedule 24.09.2019


Ответы (2)


См. this Github Issue, в котором объясняются многие изменения. Как сказано в одном из комментариев.

Верный. Мы удаляем netstandard2.0 из большинства сборок Microsoft.AspNetCore. *. См. # 3754.

Таким образом, чтобы использовать <FrameworkReference Include="Microsoft.AspNetCore.App" /> в вашем .csproj, вам необходимо настроить таргетинг на netcoreapp3.0 или выше.

person Twenty    schedule 24.09.2019

Я начал получать эту проблему после понижения версии Visual Studio Enterprise 2019 до Professional 2019.

.Net основная структура netcoreapp3.1

Я исправил это, обновив Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation с 3.1.3 до 3.1.4.

person user1131926    schedule 08.06.2020