Bla*_*ell 59 .net c# asp.net asp.net-core
随着.NET Core RC2的发布,Microsoft制作了它,现在有3个Web应用程序模板:
我试图使用新的核心Web应用程序模板,但没有尝试针对Linux,OSX,Windows,所以看起来ASP.NET核心Web应用程序(.NET Framework)对我来说是完美的.我花了一段时间,但我了解到,为了添加一个可以使用这个项目类型的类库,你需要添加一个类库(.NET Core)并将框架部分更改为net461以匹配Web应用程序.
"frameworks": {
"net461": { }
}
Run Code Online (Sandbox Code Playgroud)
我的问题:
创建ASP.NET核心Web应用程序(.NET核心)和在project.json之间有什么区别,使net461成为唯一的目标框架
和
只创建一个ASP.NET核心Web应用程序(.NET Framework)项目,默认情况下只包含net461.
还有其他不同之处,我不知道项目的发布方式等等吗?
dev*_*ric 43
创建ASP.NET核心Web应用程序(.NET核心)和在project.json中有什么区别,使.NET461成为唯一的目标框架
这与制作一个ASP.NET Core Web Application(.NET Framework)项目是一回事.两者之间的项目类型由.csproj文件决定,您在.csproj从定位.NET Core到目标定位时将其更改为.NET Framework.在以前的版本/ beta版本中ASP.NET Core,可以将两个框架都放在一个project.json文件中(已经被.csproj.NET Core 2.0中的一个简化文件所取代,而.NET开发人员更熟悉它),但是你只能发布一个.
只创建一个ASP.NET核心Web应用程序(.NET Framework)项目,默认情况下只包含.NET461.
是否有其他差异,我不知道项目的发布方式等等.如果您的目标是.NET Framework而不是.NET Core,您的应用程序不能跨平台,您的应用程序只能在Windows上运行而不能在Linux /上运行苹果电脑.
单独的 ASP.NET CoreWeb Application(.NET Core)和ASP.NET CoreWeb Application(.NET Framework)的原因是因为后者允许您使用依赖于Windows的功能,包或第三方库,并且需要在Windows上安装相同.NET Framework或更高版本.机.
前者没有.NET Framework要求,但允许您的应用程序跨平台,当您发布应用程序时,它会将所有相关的.NET Coredll文件以这种方式发布到发布目录,以避免.NET Framework安装要求.
它也会影响编译,就像您定位.NET Core并使用Windows特定的函数或包一样,您将收到编译错误.
你可以通过调整你.csproj的目标来轻松地在两者之间切换.
您应该在以下情况下将.NET Core用于服务器应用程序:
您有跨平台需求.
您的目标是微服务.
您正在使用Docker容器.
您需要高性能和可扩展的系统.
您需要按应用程序并行.NET版本.
您应该在以下情况下将.NET Framework用于服务器应用程序:
- 您的应用程序当前使用.NET Framework(建议扩展而不是迁移)
- 您需要使用第三方.NET库或不适用于.NET Core的NuGet包.
- 您需要使用.NET Core不可用的.NET技术.
- 您需要使用不支持.NET Core的平台.
更新(2018/10/30)
它已被宣布 是ASP.Net Core 3其必须在发布日期2019 Q1,将仅支持.NET Core和NOT .NET Framework
正如本月早些时候在.NET博客上所宣布的那样,由于.NET Framework的就地更新性质和限制的愿望,.NET Framework将获得更少的.NET Core的新平台和语言功能.可能会破坏现有应用程序的更改.为了确保ASP.NET Core能够充分利用.NET Core向前发展的改进,ASP.NET Core将仅从3.0开始在.NET Core上运行.展望未来,您可以简单地将ASP.NET Core视为.NET Core的一部分.
今天在.NET Framework上使用ASP.NET Core的客户可以使用2.1 LTS版本以完全支持的方式继续这样做.2.1的支持和服务将持续到2021年8月21日(根据.NET支持政策宣布LTS发布后3年).
首先看一下在创建面向不同框架的ASP.NET Core Web应用程序时project.json文件的不同之处.
根据您的问题,如果您更改ASP.NET核心Web应用程序(.NET Core)project.json中的框架仅具有net461和保存,它将还原包并将给出以下错误.
如果删除Microsoft.NETCore.App依赖项并保存文件,它将再次恢复依赖项,并且不会给出任何错误.
如果您注意到第一个图像,那么它最终将成为使用.NET Framework的ASP.NET核心Web应用程序.