是否有任何正式的目标框架指令? [英] Are there any formalized target framework directives?

查看:22
本文介绍了是否有任何正式的目标框架指令?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已阅读

I've read Microsoft's article about how to detect target framework, for example :

netcoreapp2.2
net47
net58 

But there are situations where I don't care about the exact version, but the general framework target :

NETCORE
.Net Framework

But 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:

这篇关于是否有任何正式的目标框架指令?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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