2016-07-28 69 views
10

我有一个.NET 1.0的核心类库其面向.NET 4.6.1和引用的.NET标准库1.6.0和身份框架2.2.1从.NET 1.0的核心类库引用mscorlib程序4.0.0.0

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" 
      ] 
     } 
    } 
} 

在我的项目,我只是创造了身份识别模型,它扩展基本身份框架模型(用户,角色等)。当我尝试编译,这种情况发生......

enter image description here

enter image description here

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

+0

您是否添加了对mscorlib v4.0.0.0的引用? – Tim

+0

@Tim,我假设没有,因为我不知道如何在.NET核心类库中做到这一点 – series0ne

+0

可能与添加其他依赖关系的方式相同?在project.json文件中?我不是100%确定的,因为我还没有玩过.NET Core 1.0。 – Tim

回答

7

有两个问题在这里你的项目文件,一个简单的修复,一个无法修复;)

  • 您的项目目标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的事实没有帮助。

你可以尝试什么,瞄准(正确地)并行net461netstandard1.6并尝试做一个并行实现与Microsoft.AspNet.Identity.EntityFrameworkMicrosoft.AspNetCore.Identity.EntityFrameworkCore分别使用的#ifdefs。但是,结果将会有多大用处,我不知道将使用何种结果库;)

+1

壮观的答案。谢谢! – series0ne

+1

谢谢!我一直在寻找这个小时的澄清! –

9

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

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

或者干脆包管理器控制台运行此:

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

编辑: 将其加入到.net核心1.1项目。

+0

令人惊讶的是,这确实奏效,谢谢! –

+0

谢谢你男人。像魅力一样工作 – Butsaty

相关问题