.NET Core 3.0 身份问题

A. *_*kiy 3 c# asp.net-core-identity .net-core-3.0

我正在尝试将我的项目更新到 .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>
...
Run Code Online (Sandbox Code Playgroud)

在这个项目中,与身份相关的代码工作正常。

正如我在这里看到的,我需要删除包Microsoft.AspNetCore.Identity https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio

二期工程:

<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>
...
Run Code Online (Sandbox Code Playgroud)

所以,如果我Microsoft.AspNetCore.Identity从我的第二个项目中删除,我会看到错误:

SignInManager<>找不到类型或命名空间名称“ ”(您是否缺少 using 指令或程序集引用?)

如果我添加这一行:

<FrameworkReference Include="Microsoft.AspNetCore.App" />
Run Code Online (Sandbox Code Playgroud)

我看到这个错误:

错误 NETSDK1073 无法识别 FrameworkReference 'Microsoft.AspNetCore.App'

我该如何解决我的问题?

Twe*_*nty 5

请参阅Github 问题,其中解释了许多更改。正如其中一条评论所说。

正确的。我们正在从大多数 Microsoft.AspNetCore.* 程序集中删除 netstandard2.0。见#3754

因此,为了<FrameworkReference Include="Microsoft.AspNetCore.App" />在您的应用程序中使用,您.csproj将需要目标netcoreapp3.0或更高。