我有一个由两个项目组成的简单解决方案:
我想在剃刀类库中使用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,并创建了另一个类似< / p>
using Microsoft.AspNetCore.Identity;
using System;
namespace ClassLibrary1
{
public class Class1
{
IdentityRole role;
}
}
如果我在ASP.NET Core(主)项目中下载Microsoft.AspNetCore.Identity,并在主项目的任何类中声明了IdentityRole类型的变量,则将找到引用。
我要去哪里错了?
如果您要合作,可以在https://github.com/Blackleones/identityTest处找到示例项目,随时发送拉取请求。
答案 0 :(得分:0)
我解决了将 microsoft.aspnetcore.app 程序包添加到razor类库项目中的问题。 问题在于,IdentityRole是在 microsoft.extensions.identity.core 中定义的,并且此程序包不是 microsoft.aspnetcore.identity
的依赖项