Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 是否有任何正式的目标框架指令?_.net_Visual Studio_.net Core_.net Standard_Compiler Directives - Fatal编程技术网

.net 是否有任何正式的目标框架指令?

.net 是否有任何正式的目标框架指令?,.net,visual-studio,.net-core,.net-standard,compiler-directives,.net,Visual Studio,.net Core,.net Standard,Compiler Directives,我读过关于如何检测目标框架的内容,例如: netcoreapp2.2 net47 net58 但在某些情况下,我并不关心确切的版本,而是关心总体框架目标: NETCORE .Net Framework 但我没有找到这样的旗帜 问题: 有没有通用的标志?或者更好的方法是,在不指定所有选项的情况下如何区分这两者?除了特定于版本的指令(如NETSTANDARD2\u 0)外,还列出了以下预处理器符号: 网络框架 网络标准 NETCOREAPP …和NETMF用于.NET Micro Framew

我读过关于如何检测目标框架的内容,例如:

netcoreapp2.2
net47
net58 
但在某些情况下,我并不关心确切的版本,而是关心总体框架目标:

NETCORE
.Net Framework
但我没有找到这样的旗帜

问题:


有没有通用的标志?或者更好的方法是,在不指定所有选项的情况下如何区分这两者?

除了特定于版本的指令(如NETSTANDARD2\u 0)外,还列出了以下预处理器符号:

网络框架

网络标准

NETCOREAPP

…和NETMF用于.NET Micro Framework,WP用于Windows Phone,UAP用于通用Windows平台

以下是一个示例。csproj:

以下是选中的.NET Core 3.0(见左上角),NETCOREAPP区域“live”和其他区域显示为灰色:


除了特定于版本的指令(如NETSTANDARD2_0)外,还列出了以下预处理器符号:

网络框架

网络标准

NETCOREAPP

…和NETMF用于.NET Micro Framework,WP用于Windows Phone,UAP用于通用Windows平台

以下是一个示例。csproj:

以下是选中的.NET Core 3.0(见左上角),NETCOREAPP区域“live”和其他区域显示为灰色:


你的用例是什么?如果你说的是一个库,你可以选择覆盖你所需要的所有平台的网络标准版本。例如:Server.Mappath在Standard或core中都不存在。只在FW上。我需要知道我是否会得到一个特定文件的文件。这是一个例子,还有更多。你的用例是什么?如果你说的是一个库,你可以选择覆盖你所需要的所有平台的网络标准版本。例如:Server.Mappath在Standard或core中都不存在。只在FW上。我需要知道我是否会得到一个特定文件的文件。这是一个例子,还有更多。
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>   
    <TargetFrameworks>netstandard1.5;netstandard2.0;net48;netcoreapp3.0</TargetFrameworks>
  </PropertyGroup>
</Project>
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
        }
    }
}