如何确定 .NET 应用是否为“核心”应用

本文关键字:应用 核心 是否 何确定 NET | 更新日期: 2023-09-27 18:16:57

我需要更新一个新的.NET应用程序,我想有人提到它是.NET Core。 如何检查解决方案属性以确定它是否实际上是"核心"应用?

Web项目有一个System.Core参考,但我用谷歌搜索了一下,似乎System.Core.dll至少从.NET f/w 3.5开始就是.NET框架的一部分。

应用具有 package.json 文件,但 sln 中存在该文件并不一定保证该应用是 .NET 核心应用。 我还读到.NET core应用程序可以在不同的.NET Framework版本上运行。

那么,如何确定 .NET 应用是否确实是"核心"应用呢?换句话说,是什么让核心应用成为核心应用?

如何确定 .NET 应用是否为“核心”应用

针对 .NET Core>= 2.x 和/或 VS2017 进行了更新

在VS2017中,.NET Core项目再次使用.csproj结构。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreappx.y</TargetFramework>
  </PropertyGroup>

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandardx.y</TargetFramework>
  </PropertyGroup>

.NET Core 1.x 和 VS2015 的旧答案

它有一些指标。

存在project.json表明它是较新的项目形式之一(请注意,project.json将在 1.1 版的 .NET Core/.NET Core Tools for VS 中消失(。

在其中,您将有一个框架部分,例如

"frameworks": {
  "net45": {
    "frameworkAssemblies": {
      "System.Runtime.Serialization": "4.0.0.0"
    }
  },
  "netstandard1.0": {
    "imports": [ "dnxcore50", "portable-net45+win8" ],
    "dependencies": {
    }
  },
  "netstandard1.3": {
    "imports": [ "dnxcore50", "portable-net45+win8" ],
    "dependencies": {
      "System.Runtime.Serialization.Formatters": "4.0.0-rc3-24212-01"
    }
  }
}

对于应用程序(ASP.NET 核心 Web 项目或基于 new project.json 的控制台应用程序(,netstandard1.x将被命名为 netcoreapp1.0

如果有多个条目,则应用程序或库面向多个平台(并将在单独的文件夹中构建多个二进制文件(。

更新

当然,我忘记了另一个指标。 .NET Core 应用程序确实引用Microsoft.NETCore.App(对于可移植应用程序"type": "platform",对于独立应用程序没有引用(。 netstandard1.x(类库(引用NETStandard.Library

.NET Core应用程序

基于System.Runtime它是.NET Framework 4.5及更高版本的一部分,用于Windows(和Windows Phone(8.0/8.1/10应用程序,因此portable-net45+win81软件包也与.NET Core兼容。

话虽如此,ASP.NET Core是一个Webstack,可以在完整的.NET Framework(4.5或更高版本(和.NET Core上运行。因此,仅仅拥有一个 ASP.NET Core应用程序并不能说明它所针对的平台。

确定 Asp.net 核心应用程序非常容易。

它有一些标识符。项目中有助于确定核心项目的文件很少

像这样的文件

  • 项目.json
  • appset.json
  • 启动.cs

在project.json中,它包括

"dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
"frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

在这里,通过dependencies可以确定项目的类型。NET Core 应用程序引用 Microsoft.NETCore.App(对于可移植应用,可以作为"类型":"平台",对于独立应用,则没有它(。

Asp.net 核心应用程序是独立于平台的,所以一个 ASP.NET 核心应用程序对平台的表达不多。