什么是 netfx 预处理器指令以及如何激活它?

What is netfx preprocessor directive and how to activate it?

EasyNetQ源代码使用NETFX编译符号利用improvement\fix关于TPL库如下:

#if NETFX
            var tcs = new TaskCompletionSource<T>();
#else
            var tcs = new TaskCompletionSource<T>(TaskCreationOptions.RunContinuationsAsynchronously);
#endif

问题是这个符号是在哪里定义的以及如何激活下面的执行路径?:

 var tcs = new TaskCompletionSource<T>(TaskCreationOptions.RunContinuationsAsynchronously);

更新: 我发现它在 https://github.com/EasyNetQ/EasyNetQ/pull/760 中引入,但仍然不知道它到底是什么。

更新2: 它似乎是一个基于目标框架定义的默认符号,用于区分完整框架和核心构建,但我在任何关于它的文档中都找不到它。我需要知道作为图书馆消费者,如何激活它以直接执行路径?

我最好的猜测是它将用于区分 .NET Framework (NETFX) 和其他环境,如 .NET Standard 和 .NET Core。

与 C# 中的所有编译符号一样,它会在项目设置中定义,并且可能会出现在针对 .NET Framework 的构建配置中(而不是出现在其他构建配置中)。因此,要激活它,您只需更改项目的活动构建配置。