我猜唯一的答案是这取决于具体情况。
Dnx 运行在今天的 .NET Framework 上(也可以运行在 mono 上)并且可以访问完整的.NET 4.5.2(现在是 .NET 4.6) BCL。基本上自从 1.0 版本以来,所有东西都已经添加到了 .NET 中。
Dnx Core 运行在 CoreClr 之上,它实际上是 .NET Framework 的一个简化版本。有些功能会缺失,有些功能出于各种原因永远不会被转移到 CoreClr 上。我不知道具体哪些功能会/不会被迁移到 CoreClr 上。您可以在corefx和coreclr github 项目中查看哪些功能已经存在。
现在问题真正涉及的是最佳方案。您有几个选择。
如果您永远不打算在 CoreCLR 上运行该项目,则可以将其从 project.json 中删除。
如果您计划在 CoreCLR 上运行(无论原因是什么),则可以采取以下措施:
使用环境的通用 API 方法
在您的情况下,如果 theDate.ToString("d")
等价于 theDate.ToShortDateString()
,那么为什么不直接使用前者呢?
使用适当的编译器指令 DNX451
等。
对于没有实现您要查找的功能的环境,可以抛出异常或自行实现该功能(如果有意义)。
dnxcore
和dnx
,因此使用这些词语会更简单。尽管运行时可能没有区别,但它们与dnx交互的方式与在PCL中没有dnx的方式可能不同。 - David Driscoll