在 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