繁体   English   中英

net451程序集如何在DNX上的project.JSON中工作?

[英]How do net451 assemblies work in a project.JSON on DNX?

最近,我一直在努力学习DNX和.Net Core 5。 但是我对为什么net451在项目中可用感到困惑。

据我了解,它是DNX兼容项目,可以针对.Net Core 5进行跨平台编译。

如果我在DNX项目中添加了一个引用来表示“ System.Configuration”,会导致它显示在Json的net451部分中,该怎么办。

它会无法构建跨平台吗? 还是只能使用某些可移植到Core 5的.Net 4.5.1?

对其进行更多研究,看起来它们是目标框架,因此尽管我可以以4.5.1为目标并使用4.5.1依赖项,但我认为它与Linux上的DNX不兼容是正确的吗?

只是想弄清楚我现在将如何构建与以后的Core 5兼容的东西。

我应该避免在完全CLR上使用任何东西吗?

为了回答这个问题,尽管DNX即将推出,但新的dotnet cli行为仍然与project.json非常相似。 唯一发生重大变化的是如何在您周围构建所有内容(动态编译dnx, dotnet cli与MSBuild非常相似)。

如果我在DNX项目中添加了一个引用来表示“ System.Configuration”,会导致它显示在Json的net451部分中,该怎么办。

它会无法构建跨平台吗? 还是只能使用某些可移植到Core 5的.Net 4.5.1?

与编程中的大多数事情一样,这取决于。

如果你特别添加它到frameworkAssembliesnet451

然后,如果在其中使用一个类,则会收到dnxcore50的编译器错误(很快就是netstandard1.5 )。

现在默认情况下,编译器会为您提供一些内置的编译符号。 因此,处理该问题的方法是执行类似...

#if NET451
using System.Configuration;
// your codehere
#else
// do something that supports `dnxcore50` or throw a not supported exception, etc.
#endif

基本上,如果您要构建完全跨平台的产品,那么将无法使用System.Configuration

如果您想构建适用于多种平台的工具,但是要在net451运行时提高保真度,则可以使用条件编译来达到目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM