C# __Monos在mono 5.0中不起作用。如何在编译时确定平台?

C# __Monos在mono 5.0中不起作用。如何在编译时确定平台?,c#,.net,build,mono,C#,.net,Build,Mono,升级到mono 5.0后,此代码被破坏: #if __MonoCS__ //Linux... var mode = LZ4StreamMode.Compress; #else //Windows... var mode = System.IO.Compression.CompressionMode.Compress; #endif 我可以用什么常量来代替?鉴于Mono最近的变化,为了更兼容.NET Framework,我想知道您现在是否真的需要再使用这种条件编译

升级到mono 5.0后,此代码被破坏:

#if __MonoCS__ //Linux...
        var mode = LZ4StreamMode.Compress;
#else //Windows...
        var mode = System.IO.Compression.CompressionMode.Compress;
#endif

我可以用什么常量来代替?

鉴于Mono最近的变化,为了更兼容.NET Framework,我想知道您现在是否真的需要再使用这种条件编译。我需要这些条件,以便在大型项目中与非托管代码和其他特定于平台的功能交互。我理解“DefineConstants”的解决方法,但Roslyn是否定义了一些特殊的平台相关常量?(据我所知,mono项目是在5.0版本中迁移到Roslyn编译器的)。我也有这个问题。这是因为Mono没有完全实现SQL数据参数中的某些属性,我需要在Mono下定义它,而不是在.Net编译器下。现在我不知道。。。如果他们完全支持.Net中所有内容的所有属性和方法,则可以删除此项。但事实并非如此。@JonSkeet,此链接需要身份验证。。。