.net - 是否有任何正式的目标框架指令?
问题描述
我读过微软关于如何检测目标框架的文章,例如:
netcoreapp2.2
net47
net58
但是在某些情况下,我并不关心确切的版本,而是一般的框架目标:
NETCORE
.Net Framework
但我没有找到这样的标志。
问题:
是否有任何通用标志?或者更好的是,如何在不指定所有选项的情况下区分这两者?
解决方案
除了特定于版本的指令(例如 )之外NETSTANDARD2_0
,Target 框架文档还列出了以下预处理器符号:
NETFRAMEWORK
NETSTANDARD
NETCOREAPP
...以及NETMF
.NET Micro Framework、WP
Windows Phone 和UAP
通用 Windows 平台。
这是一个例子.csproj
:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.5;netstandard2.0;net48;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
</Project>
和 C# 类:
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
}
}
}
这里选择了 .NET Core 3.0(见左上角),NETCOREAPP
区域为“live”,其他区域为灰色:
推荐阅读
- pandas - 如何利用DataFrame的优势扩展输入
- python - 为什么当我将代码放入服务器时,translator.detect(..).lang 给了我异常,而它在我的本地主机上运行良好
- .net - 使用 xml 阅读器捕获文件中的元素位置。抵消问题
- python - Wagtail:Elasticsearch 不会在短字段上提升匹配
- c++ - 为大型对象(超过 30 个字段)覆盖 istream 的最佳方法是什么?
- vue.js - 如何在放大确认注册 Vue 组件中设置标题文本而不删除默认行为?
- git - git:并行查看特定提交的源代码
- regex - 使用正则表达式在 kibana 弹性搜索之间查找字符串,如 splunk
- javascript - 对多个元素重复相同的操作
- r - 在数据框的元素中转换列表的元素