我已阅读
I've read Microsoft's article about how to detect target framework, for example :
netcoreapp2.2 net47 net58But there are situations where I don't care about the exact version, but the general framework target :
NETCORE .Net FrameworkBut I didn't find such flags.
Question:
Are there any generalized flags for that ? or better, how can I distinguish between those two without specifying all options?
解决方案Besides the version-specific directives such as NETSTANDARD2_0, the Target frameworks documentation lists the following preprocessor symbols:
NETFRAMEWORK
NETSTANDARD
NETCOREAPP
...and NETMF for .NET Micro Framework, WP for Windows Phone, and UAP for Universal Windows Platform.
Here is an example .csproj:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>netstandard1.5;netstandard2.0;net48;netcoreapp3.0</TargetFrameworks> </PropertyGroup> </Project>and C# class:
namespace ClassLibrary1 { public class Class1 { public void Test() { #if NETFRAMEWORK System.Console.WriteLine(".NET Framework"); #elif NETCOREAPP System.Console.WriteLine(".NET Core"); #elif NETSTANDARD System.Console.WriteLine(".NET Standard"); #endif } } }Here's .NET Core 3.0 selected (see top left), with the NETCOREAPP region 'live' and the others greyed out:
更多推荐
是否有任何正式的目标框架指令?
发布评论