为 .Net 5.0 定义的预处理器符号是什么?
What are the preprocessor symbols defined for .Net 5.0?
当目标 .Net 5.0 时,您会在 #if
中使用什么?
即对于其他框架
.NET Framework
NETFRAMEWORK, NET20, NET35, NET40, NET45, NET451, NET452, NET46, NET461, NET462, NET47, NET471, NET472, NET48
.NET 标准
NETSTANDARD, NETSTANDARD1_0, NETSTANDARD1_1, NETSTANDARD1_2, NETSTANDARD1_3, NETSTANDARD1_4, NETSTANDARD1_5, NETSTANDARD1_6, NETSTANDARD2_0, NETSTANDARD2_1
.NET 核心
NETCOREAPP, NETCOREAPP1_0, NETCOREAPP1_1, NETCOREAPP2_0, NETCOREAPP2_1, NETCOREAPP2_2, NETCOREAPP3_0, NETCOREAPP3_1
如果您将构建输出设置为“详细”并在今天尝试此操作,您应该会看到类似的内容(在其余输出中 - 在 csc.exe
附近提及):
/define:TRACE;DEBUG;NETCOREAPP;NETCOREAPP5_0
所以:NETCOREAPP5_0
是您要找的东西 - 但是:这是否保持不变 在发布时 可能会改变。您可以在以后重复相同的过程以找出答案。
预处理器定义在 .NET 5 发布之前在 dotnet/sdk#12124 to fit this design 中发生了变化。发布版本定义:
NETCOREAPP
NET5_0
现在 #if (C# reference) 中也记录了这一点。它不再定义NETCOREAPP5_0
。
当目标 .Net 5.0 时,您会在 #if
中使用什么?
即对于其他框架
.NET Framework
NETFRAMEWORK, NET20, NET35, NET40, NET45, NET451, NET452, NET46, NET461, NET462, NET47, NET471, NET472, NET48
.NET 标准
NETSTANDARD, NETSTANDARD1_0, NETSTANDARD1_1, NETSTANDARD1_2, NETSTANDARD1_3, NETSTANDARD1_4, NETSTANDARD1_5, NETSTANDARD1_6, NETSTANDARD2_0, NETSTANDARD2_1
.NET 核心
NETCOREAPP, NETCOREAPP1_0, NETCOREAPP1_1, NETCOREAPP2_0, NETCOREAPP2_1, NETCOREAPP2_2, NETCOREAPP3_0, NETCOREAPP3_1
如果您将构建输出设置为“详细”并在今天尝试此操作,您应该会看到类似的内容(在其余输出中 - 在 csc.exe
附近提及):
/define:TRACE;DEBUG;NETCOREAPP;NETCOREAPP5_0
所以:NETCOREAPP5_0
是您要找的东西 - 但是:这是否保持不变 在发布时 可能会改变。您可以在以后重复相同的过程以找出答案。
预处理器定义在 .NET 5 发布之前在 dotnet/sdk#12124 to fit this design 中发生了变化。发布版本定义:
NETCOREAPP
NET5_0
现在 #if (C# reference) 中也记录了这一点。它不再定义NETCOREAPP5_0
。