在 sdk style 的项目格式支持使用多框架开发,此时需要在代码里面通过宏判断,在编译的时候执行不同的代码。本文告诉大家在框架里面对应的预定义的条件编译符有哪些

在让一个 csproj 项目指定多个开发框架 - walterlv告诉大家如何在 sdk style 项目格式如何定义多框架开发,在使用多框架开发的时候,有时会使用到特定的平台框架提供的方法,此时就需要使用预定义的宏通过条件判断编译符号的方法,在不同的框架编译不同的代码

以下是预定义的宏

.NET Framework

所有 .NET Framework 都定义 NETFRAMEWORK 宏,此外对应不同的版本使用不同的宏

  • NET20

  • NET35

  • NET40

  • NET45

  • NET451

  • NET452

  • NET46

  • NET461

  • NET462

  • NET47

  • NET471

  • NET472

  • NET48

.NET Standard

所有 .NET Standard 都定义 NETSTANDARD 宏,此外对应不同的版本使用不同的宏

  • NETSTANDARD1_0

  • NETSTANDARD1_1

  • NETSTANDARD1_2

  • NETSTANDARD1_3

  • NETSTANDARD1_4

  • NETSTANDARD1_5

  • NETSTANDARD1_6

  • NETSTANDARD2_0

.NET Core

所有 .NET Core 都定义 NETCOREAPP 宏,此外对应不同的版本使用不同的宏

  • NETCOREAPP1_0

  • NETCOREAPP1_1

  • NETCOREAPP2_0

  • NETCOREAPP2_1

  • NETCOREAPP2_2

本文说到的宏是古老的词汇,在官方用语里面叫条件编译符,也叫预处理符号(preprocessor symbols) 在 Roslyn 的语法分析中,就是这样写的

原文地址:

https://blog.lindexi.com/post/dotnet-%E6%96%B0%E9%A1%B9%E7%9B%AE%E6%A0%BC%E5%BC%8F%E4%B8%8E%E5%AF%B9%E5%BA%94%E6%A1%86%E6%9E%B6%E9%A2%84%E5%AE%9A%E4%B9%89%E7%9A%84%E5%AE%8F.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

dotnet 新项目格式与对应框架预定义的宏相关推荐

  1. C标准中一些预定义的宏,如__FILE__,__func__等

    C标准中一些预定义的宏 C标准中指定了一些预定义的宏,对于编程经常会用到.下面这个表中就是一些常常用到的预定义宏. 宏 意义 __DATE__ 进行预处理的日期("Mmm dd yyyy&q ...

  2. 走火入魔的 C/C++ 如何通过编译器预定义的宏值来区分 target OS 是 Windows 还是 Linux...

    事先提醒尽量不要依赖这些预定义的宏, 它们会让你的代码变得臃肿并埋下各种bug隐患 http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use ...

  3. 跨平台常用的编译器预定义的宏

    跨平台常用的宏 #ifdef _WIN32 //define something for Windows (32-bit and 64-bit, this part is common) #ifdef ...

  4. 命令行输出预定义的宏

    1 .  cpp  -dM /dev/null 或者 echo | cpp -dM 2 echo | gcc -E -dM -

  5. 【Kotlin】Kotlin 中使用 ButterKnife ( 仅用于适配 Kotlin 语言 | 不推荐新项目使用 )

    文章目录 I . 特别注意 : ButterKnife 已停止维护 ( 新项目禁止使用该框架 ) II . Android Studio 中配置 Kotlin 和 ButterKnife 步骤 III ...

  6. SourceInsight 4.0 之四 项目配置(库文件引入、配置宏添加、快捷键修改等)

    问题   在创建完成 Source Insight 工程后,我们就可以使用绝大部分功能.但是如果用的多了就会发现,其与我们真正的 IDE(通常我们仅用 Source Insight 编辑代码,实际的编 ...

  7. C语言 —— 预定义符号__FILE____LINE___func__(编写调试函数printf , debug)

    C的预定义符号: __FILE__ __LINE__ __func__ 测试代码:在文件 line.c 中 1 #include <stdio.h>2 int main()3 {4 pri ...

  8. [C/C++] 显示各种C/C++编译器的预定义宏(C11标准、C++11标准、VC、BCB、Intel、GCC)

    转载自来源: [C/C++] 显示各种C/C++编译器的预定义宏(C11标准.C++11标准.VC.BCB.Intel.GCC) http://dev.gameres.com/Program/Othe ...

  9. 开发新项目看过来,这3款基于 Vue 的免费开源的 admin 管理后台框架非常好用

    三款 admin 框架,分别基于热门的前端 UI 组件库 ElementPlus / Ant Design / Naive UI 打造,开箱即用. 新项目的开始,一般是搭建 admin 系统,今天盘点 ...

最新文章

  1. Spring注入service为null另类解决办法 工具类 一般类 静态 非controller
  2. 关于“如何破坏单例“我说了好几种方式,面试官却说:我其实随便问问,没想到你真会
  3. 3000元电脑配置_2019年全新九代i59400F配RTX2060打游戏的装机电脑配置清单及价格...
  4. Spring事务嵌套引发的问题--Transaction rolled back because it has been marked as rollback-only...
  5. 微信小程序基础架构浅析
  6. 使用 JavaScript 上传 PDF 和 Excel 等二进制文件到 ABAP 服务器并进行解析
  7. shell 字典_腾讯T4周末不陪对象,就为了手打这份shell编程笔记
  8. nyoj 471:好多的树(容斥原理)
  9. 定点补码加减法运算_计算机相关问题:谈谈我眼中的补码
  10. 高性能服务器架构思路丨缓冲策略
  11. 嗯嗯------摘抄
  12. 所需即所获:像 IDE 一样使用 vim
  13. 设计模式-行为型软件设计模式(六)
  14. Windows下制作苹果电脑U盘启动
  15. 【笔记】Ring-DVFS:基于可靠性感知强化学习的DVFS,适用于实时嵌入式系统
  16. idea-svn文件名字浅蓝色(蓝绿色)含义
  17. SQL(10)_PRIMARY KEY 约束
  18. 软件开发工具的使用与开发
  19. 第七届ArcGIS暨ERDAS用户大会
  20. 计算机风扇维修,千米快修电脑维修:电脑风扇散热不好,经常出问题怎么办?...

热门文章

  1. ipad和iphone切图_如何在iPhone,iPad和Mac上签名PDF
  2. discord linux_如何在Discord中应用文本格式
  3. facebook人脸照片_为什么您的Facebook照片看起来如此糟糕(以及您可以如何做)...
  4. html标签属性和标签事件,HTML参考手册( 标签、属性和事件)
  5. java复合赋值运算符_Java 之复合赋值运算符
  6. Python之路【第一篇】:环境搭建
  7. Blazor University (6)组件 — 组件事件
  8. 客户要求ASP.NET Core API返回特定格式,怎么办?(续2)
  9. 微信发力了,一键部署网站后端!
  10. ABP Vnext 4.4:统一Ef Core的DbContext/移除EF Core Migrations项目