从.NET Core 1.0类库引用mscorlib 4.0.0.0

ser*_*0ne 10 c# entity-framework class-library .net-core

我有一个.NET Core 1.0类库,它以.NET 4.6.1为目标,并引用了.NET标准库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"
            ]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的项目中,我只是创建了身份模型,它扩展了基本的Identity Framework模型(用户,角色等).当我尝试编译时,会发生这种情况......

在此输入图像描述

在此输入图像描述

任何想法如何解决这个问题?

sec*_*and 10

微软有一个可以提供帮助的nuget包.我不知道它是如何工作的具体细节,但它解决了我的依赖问题:

https://www.nuget.org/packages/Microsoft.NETCore.Portable.Compatibility/

或者只是在包管理器控制台中运行它:

Install-Package Microsoft.NETCore.Portable.Compatibility -Version 1.0.1
Run Code Online (Sandbox Code Playgroud)

编辑:这被添加到.net核心1.1项目中.


Tho*_*mas 9

这里有你的项目文件有两个问题,一个很容易修复,一个无法修复;)

  • 您的项目没有目标net461netstandard1.6.你的project.json所说的是:netstandard1.6为NuGet 建立目标并撒谎并宣称你是net461(撒谎就是import这样......不相信我,查找它;)).既然你的project.json骗了NuGet,你就可以添加Microsoft.AspNet.Identity.EntityFramework.添加net461netstandard1.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.EntityFrameworkMicrosoft.AspNetCore.Identity.EntityFrameworkCore分别使用的#ifdefs.但是,结果有多么有用,我不知道将使用什么结果库;)