Roy*_*mir 1 .net compiler-directives visual-studio .net-core .net-standard
我已阅读Microsoft有关如何检测目标框架的文章,例如:
netcoreapp2.2
net47
net58
Run Code Online (Sandbox Code Playgroud)
但是在某些情况下,我并不关心确切的版本,而是一般的框架目标:
NETCORE
.Net Framework
Run Code Online (Sandbox Code Playgroud)
但是我没有找到这样的标志。
题:
是否有任何通用标记?或更好的是,如何在不指定所有选项的情况下区分这两者?
除了特定于版本的指令(例如)外NETSTANDARD2_0,目标框架文档还列出了以下预处理器符号:
NETFRAMEWORK
NETSTANDARD
NETCOREAPP
...以及NETMF.NET Micro Framework,WPWindows Phone和UAPUniversal Windows Platform。
这是一个例子.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.5;netstandard2.0;net48;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
和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
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是选定的.NET Core 3.0(请参见左上角),NETCOREAPP“活动”区域为灰色,其他区域为灰色:
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |