如何判断代码是为常规.NET还是.NET Core编写的?

And*_*ndr 9 .net c# .net-core

我使用的代码库包含常规.NET中的一些代码和.NET Core中的一些代码.当我打开一个单独的.cs文件时,我并不总是确定该文件是否是用常规.NET或.NET Core编译的.显然,两个框架之间存在很多重叠 - 许多代码都可以在两个框架中不加修改地运行.

所以我的问题是,有哪些简单的方法可以确定.cs文件是否打算为常规.NET或.NET Core编译?

(我想,寻找只存在于一个框架或另一个框架中的某些使用可能是最大的标志.如果这确实是确定这一点的方法,是否有一个网页列出了哪些使用是常规.NET vs .NET Core?)

liq*_*wer 8

您还可以使用 if 预处理器指令,如下所示:

public class MyClass
{
   static void Main()
   {
#if (NETCOREAPP1_0 || NETCOREAPP1_1 || NETCOREAPP2_0 || NETCOREAPP2_1)
        <some code>
#else
        <some code>
#endif
   }
}
Run Code Online (Sandbox Code Playgroud)

我应该补充一点,这是一种可以继续使用的方法,尤其是在 NetFramework 和 Core 之间使用共享代码时。


RQD*_*QDQ 7

最好的选择是查看.csproj文件。

寻找<TargetFramework><TargetFrameworks>元素。它将具有诸如的条目net461。您可以在此处与图表进行交叉引用:

https://docs.microsoft.com/zh-cn/dotnet/standard/frameworks


Ter*_*men 5

Microsoft有一个可移植性分析器,它将告诉您代码是否可以在各种平台上运行以及需要进行哪些更改,但是我知道告诉特定代码所针对的平台的唯一方法是检查项目属性或makefile。