针对不同版本的NETStandard.Library的project.json依赖项

时间:2016-08-04 16:13:20

标签: .net .net-core standard-library

我有一个类库,其中project.json文件如下所示:

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "System.Security.Claims": "4.0.1"
  },

  "frameworks": {
    "netstandard1.2": {
      "imports": "dnxcore50"
    }
  }
}

它定位netstandard1.2,同时使用取决于System.Security.Claims.4.0.1的{​​{1}}。它也使用netstandard1.3。这意味着我可以使用NETStandard.Library.1.6.0中不存在的任何类/方法。但与此同时,无论如何,我的项目编制得很好。

为什么不抛出错误?看起来编译器没有验证netstandard1.2部分中列出的针对全局依赖的平台,对吧?但是原因是什么?

1 个答案:

答案 0 :(得分:2)

此行"imports": "dnxcore50"是其有效的原因。如果删除它,则会有Package System.Security.Claims 4.0.1 is not compatible with netstandard1.2 (.NETStandard,Version=v1.2).

对于"NETStandard.Library": "1.6.0",,只会引用netstandard1.2及更少的依赖项,因此您将无法使用netstandard1.2中不存在的任何类/方法( 1.6.0没有链接到netstandard1.6