Проблема идентификации в .NET Core 3.0 - PullRequest
2 голосов
/ 24 сентября 2019

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

У меня есть 2 проекта.Сначала мой Web 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' не был распознан

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

1 Ответ

2 голосов
/ 24 сентября 2019

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

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

Итак, чтобы использовать <FrameworkReference Include="Microsoft.AspNetCore.App" /> в вашем .csproj, вам нужно нацелиться на netcoreapp3.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...