从.NET Core 1.0类库引用mscorlib 4.0.0.0

我有一个.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" ] } } } 

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

在此处输入图像描述

在此处输入图像描述

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

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

  • 您的项目针对net461netstandard1.6 。 你的project.json说的是:为netstandard1.6构建目标并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这一事实并没有帮助。

您可以尝试的是,并行(正确)并行net461netstandard1.6并尝试使用#ifdefs分别与Microsoft.AspNet.Identity.EntityFrameworkMicrosoft.AspNetCore.Identity.EntityFrameworkCore进行并行实现。 但是,结果有多么有用,我不知道将使用什么结果库;)

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

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

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

 Install-Package Microsoft.NETCore.Portable.Compatibility -Version 1.0.1 

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