我有一个类库,其中 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
为目标,同时使用依赖于 netstandard1.3
的 System.Security.Claims.4.0.1
。它还使用NETStandard.Library.1.6.0
。这意味着我可以使用 netstandard1.2
中不存在的任何类/方法。但与此同时,无论如何,我的项目都能很好地编译。
为什么不抛出错误?看起来编译器没有根据全局依赖项验证 "frameworks"
部分中列出的平台,对吗?但这是什么原因呢?
最佳答案
这行"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
)
关于.net - 针对不同版本的 NETStandard.Library 的 project.json 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38772507/