【发布时间】:2015-06-02 15:25:27
【问题描述】:
通常我们在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 目标实际上会创建相同的输出,对吗?
【问题讨论】:
标签: .net asp.net-core dnx