如何确定 .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 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
。
基于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 核心应用程序对平台的表达不多。