从 .NET Core 1.0 class 库引用 mscorlib 4.0.0.0
Referencing mscorlib 4.0.0.0 from .NET Core 1.0 class library
我有一个 .NET Core 1.0 class 库,它以 .NET 4.6.1 为目标并引用 .NET Standard Library 1.6.0 和 Identity Framework 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
进行并行实施如果定义。但是,结果会有多大用处,我不知道结果库将被使用什么 ;)
Microsoft 有一个 nuget 包可以提供帮助。我不知道它是如何工作的细节,但它解决了我的依赖问题:
https://www.nuget.org/packages/Microsoft.NETCore.Portable.Compatibility/
或者只是 运行 在包管理器控制台中这样:
Install-Package Microsoft.NETCore.Portable.Compatibility -Version 1.0.1
编辑:
这已添加到 .net core 1.1 项目中。
我有一个 .NET Core 1.0 class 库,它以 .NET 4.6.1 为目标并引用 .NET Standard Library 1.6.0 和 Identity Framework 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
进行并行实施如果定义。但是,结果会有多大用处,我不知道结果库将被使用什么 ;)
Microsoft 有一个 nuget 包可以提供帮助。我不知道它是如何工作的细节,但它解决了我的依赖问题:
https://www.nuget.org/packages/Microsoft.NETCore.Portable.Compatibility/
或者只是 运行 在包管理器控制台中这样:
Install-Package Microsoft.NETCore.Portable.Compatibility -Version 1.0.1
编辑: 这已添加到 .net core 1.1 项目中。