通常我们在 中看到以下目标project.json
:
"frameworks": {
"net45": {},
"dnx451": {},
"dnxcore50": { }
}
dnxcore50
将是项目代码的唯一可移植版本,并且dnx451
实际上针对 .Net 4.5.1 mscorlib 等...
现在,如果我添加另一个名为dnx50
,这将创建一个有效的输出并且工作得很好。
dnx451 和 dnx50 之间的区别在于,它引用了不同的 .Net 程序集 dll
例如mscorlib.dll
:
- dnx451参考资料
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll
- dnx50引用
C:\Windows\Microsoft.NET\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
本质上是 .net 4.6 版本。
现在的问题是:
dnx50
例如,为您的自定义库创建该目标是否有意义?基本上以.net 4.6为目标,您需要dnxcore50
便携式设备没有的某些功能吗?
或者dnx451
目标实际上是否足够,如果我不需要更新的 .net 版本(4.5.2、4.6)中的特定功能,那么这个目标无论如何都会使用 .net 4.6,如果它安装在系统上并且我我只是针对我的项目所需的最低版本?
这是否意味着同时拥有 dnx451 和 dnx50 目标实际上会创建相同的输出,对吗?