Microsoft.AspNetCore.Identity не работает в библиотеке классов Razor - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть простое решение, состоящее из двух проектов:

  1. Основной проект ASP.NET Core
  2. Библиотека классов Razor

Я хотел быиспользовать IdentityRole внутри библиотеки классов бритвы, поэтому я скачал Microsoft.AspNetCore.Identity внутри своего проекта библиотеки классов бритвы, и когда я пишу

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace RazorClassLibrary2.MyFeature.Pages
{
  public class Page1Model : PageModel
  {
      public void OnGet()
      {
          IdentityRole role;
      }
   }
}

, я получаю следующую ошибку:

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

Поскольку я хочу использовать среду .Net Core, но библиотека классов Razor создается с помощью

<TargetFramework>netstandard2.0</TargetFramework>

Я изменяю его с помощью

<TargetFramework>netcoreapp2.2</TargetFramework>

Примечание: изменение TargetFramework кажется нормальным, см. Этот комментарий https://github.com/aspnet/Docs/issues/7816#issuecomment-428193831

Думая, что это манипуляцияможет быть причиной проблемы, я создаю еще один "проект> Библиотека классов (.Net Core)" , скачал Microsoft.AspNetCore.Identity и создаю другой класс, такой как

using Microsoft.AspNetCore.Identity;
using System;

namespace ClassLibrary1
{
    public class Class1
    {
       IdentityRole role;
    }
}

если я скачаю Microsoft.AspNetCore.Identity внутри ASP.NET Core (основного) проекта и объявите переменную типа IdentityRole внутри любого класса основного проекта, после чего ссылка будет найдена.

Где я ошибаюсь?

Пример проекта можно найти здесь https://github.com/Blackleones/identityTest, если вы хотите сотрудничать, не стесняйтесь отправлять запрос на извлечение.

1 Ответ

0 голосов
/ 20 февраля 2019

Я решил добавить пакет microsoft.aspnetcore.app в проект библиотеки классов бритвы.Проблема заключалась в том, что IdentityRole определен внутри microsoft.extensions.identity.core , и этот пакет не является зависимостью microsoft.aspnetcore.identity

...