MAUI项目中无平台后缀net6.0对应的预处理器符号是什么?
解决方案
你可以通过预定义符号组合排除法实现精准判断,.NET 带平台后缀的目标框架会自动声明对应平台专属的预处理器符号,无后缀的纯 net6.0 不会声明任何平台相关符号,因此可以按以下方式实现:
方案1:直接使用官方预定义符号判断
直接组合检查 NET6_0 已定义,同时排除所有你用到的平台符号即可:
#if NET6_0 && !ANDROID && !IOS // 仅无平台后缀的 net6.0 目标框架会执行此处代码 #endif
如果你后续扩展了其他目标平台,补充排除对应平台符号即可:
- Mac Catalyst 对应排除
!MACCATALYST - Windows 对应排除
!WINDOWS - Tizen 对应排除
!TIZEN
方案2:自定义专属预处理器符号(更易用)
如果觉得每次写多段判断太麻烦,可以直接在项目 .csproj 文件中为纯 net6.0 目标框架自定义专属符号:
<PropertyGroup Condition="'$(TargetFramework)' == 'net6.0'"> <DefineConstants>$(DefineConstants);NET6_0_PURE</DefineConstants> </PropertyGroup>
配置完成后,代码中直接使用自定义符号判断即可:
#if NET6_0_PURE // 仅无平台后缀的 net6.0 目标框架会执行此处代码 #endif
内容的提问来源于stack exchange,提问作者maxc137
相关产品推荐
相关产品推荐

