如何在#if 语句中设置.NET Core 进行编译 [英] How to set .NET Core in #if statement for compilation

查看:37
本文介绍了如何在#if 语句中设置.NET Core 进行编译的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个多目标框架项目.我使用这样的东西:

I created a multi-targeted framework project. I use something like this:

  #if NET40
    Console.WriteLine("Hello from .NET Core 4");
  #endif

但是我找不到 .NET Core 的通配符.我试过了:

But I can't find a wildcard for .NET Core. I tried:

   #if NETCOREAPP1.0
     Console.WriteLine("Hello from .NET Core");
   #endif

但这不是有效的声明.

推荐答案

你需要一个下划线,_,而不是一个点:

You need an underscore, _, instead of a point:

NETCOREAPP1_0 或更新的 NETCOREAPP1_1NETCOREAPP2_0

SDK 样式项目中的目标框架的文档 包括不同预处理器符号的列表.

The documentation for Target frameworks in SDK-style projects includes a list for the different preprocessor symbols.

NETFRAMEWORK、NET48、NET472、NET471、NET47、NET462、NET461、NET46、NET452、NET451、NET45、NET40、NET35、NET20

NETSTANDARD、NETSTANDARD2_1、NETSTANDARD2_0、NETSTANDARD1_6、NETSTANDARD1_5、NETSTANDARD1_4、NETSTANDARD1_3、NETSTANDARD1_2、NETSTANDARD1_1、NETSTANDARD1_0

<代码> NET,NET6_0,NET6_0_ANDROID,NET6_0_IOS,NET6_0_MACOS,NET6_0_MACCATALYST,NET6_0_TVOS,NET6_0_WINDOWS,NET5_0,NETCOREAPP,NETCOREAPP3_1,NETCOREAPP3_0,NETCOREAPP2_2,NETCOREAPP2_1,NETCOREAPP2_0,NETCOREAPP1_1,NETCOREAPP1_0

对于 Mono,您通常可以使用您的 Mono 版本已知的 NetFramework 名称.例如,Mono 6.12 包括从 2.0 到 4.8 的所有 NetFramework 版本.但是如果你必须识别 Mono 本身,那么 MONO__MonoCS__ 都应该被定义.

For Mono you can usually use the NetFramework monikers known by your version of Mono. For instance, Mono 6.12 includes all NetFramework versions from 2.0 to 4.8. But if you must recognise Mono per se, then MONO and __MonoCS__ should both be defined.

这篇关于如何在#if 语句中设置.NET Core 进行编译的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆