我有一个 .NET Core 1.0 类库,它以 .NET 4.6.1 为目标并引用 .NET 标准库 1.6.0 和身份框架 2.2.1
project.json
{
"version": "1.0.0-*",
"dependencies": {
"Microsoft.AspNet.Identity.EntityFramework": "2.2.1",
"System.Runtime": "4.1.0",
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": [
"net461"
]
}
}
}
在我的项目中,我只是创建身份模型,它扩展了基本身份框架模型(用户、角色等)。当我尝试编译时,会发生这种情况......
有什么解决办法吗?
最佳答案
这里你的项目文件有两个问题,一个很容易修复,一个无法修复;)
- 您的项目不针对
net461
和netstandard1.6
。你的 project.json 说的是:为netstandard1.6
构建目标并对 NuGet 撒谎并声称你是net461
(说谎就是import
确实......不相信我,查一下;))。由于您的 project.json 欺骗了 NuGet,因此您可以添加Microsoft.AspNet.Identity.EntityFramework
。并行添加net461
和netstandard1.6
也无济于事,因为那时您无法添加依赖项。 - NuGet 依赖项
Microsoft.AspNet.Identity.EntityFramework
于 2015 年发布,基于 .NET Framework(基于 mscorlib),而非 .NET Standard/. NET Core(基于 System.Runtime)。说谎对依赖项基于mscorlib
而不是System.Runtime
这一事实没有帮助。
您可以尝试的是(正确地)并行定位 net461
和 netstandard1.6
并尝试使用 Microsoft.AspNet.Identity 进行并行实现.EntityFramework
和 Microsoft.AspNetCore.Identity.EntityFrameworkCore
分别使用#ifdefs。然而,结果会有多大用处,我不知道结果库将被使用什么 ;)
关于c# - 从 .NET Core 1.0 类库中引用 mscorlib 4.0.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38646466/