参考Why use the full .NET Framework with ASP.NET Core?,看来.NET 4.7.2是前进的方式吗?
我们现有的应用程序使用ASP.NET Boilerplate定位.NET 4.6.1。
是否必须迁移到.NET 4.7。*以利用ASP.NET Core 2.1功能?
答案 0 :(得分:3)
要使用.NET Core 2.1功能,您需要定位.NET Core 2.1
有.NET Standard ,它是一系列实现中可用的功能的交叉点,包括.NET Core和.NET Framework。如果以.NET Standard (某些特定版本)为目标,则可以使用该版本的.NET Standard中可用的功能,并且它应该在两个.NET Framework上运行 4.7.2或.NET Core 2.1。
作为一般指南:库(例如Aspnet Boilerplate)现在应该(如果可能)以.NET Standard为目标,但通常具有多目标构建,以允许它们在内部 exploit 目标-特定框架的特定功能(可能使用.NET Core中增强的“跨度”或SIMD功能)。
应用程序代码应(如果是可执行文件,则必须为 )以特定的框架为目标,例如.NET Framework或.NET Core。
答案 1 :(得分:3)
否,没有必要迁移到.NET 4.7。*以便利用ASP.NET Core 2.1功能。
ASP.NET Core 2.x由.NET Standard库组成。用.NET Standard 2.0编写的应用程序可以在支持.NET Standard 2.0的任何位置运行。
与.NET Standard 2.0兼容的.NET Framework版本支持ASP.NET Core 2.x:
强烈建议
- .NET Framework 4.7.1和更高版本。
- .NET Framework 4.6.1和更高版本。
仅在需要Announcing .NET Framework 4.7.2中的功能时,才需要迁移到.NET 4.7.2:
- ASP.NET – WebForms中的依赖注入
- ASP.NET – SameSite Cookie
- ClickOnce –每个监视器对WPF和可识别HDPI的ClickOnce部署应用程序的支持
- ClickOnce –启用部署清单的SHA256时间戳
- SQL – Azure AD通用和多因素身份验证支持
- BCL –密码学改进
- BCL –对DeflateStream的ZLib解压缩支持
- BCL –其他收集API
- WorkflowDesigner高对比度改进
- WPF –按源查找ResourceDictionaries
- WPF –查找ResourceDictionary所有者
- WPF –查找StaticResource引用
参考文献:
答案 2 :(得分:1)
实际上,如果您正在使用.NET Core / Standard构建应用程序,但是在您的应用程序中,您可能会参考使用.NET Framework,这必须是一个大问题。
一个故事:我正在使用ASP.NET Core构建一个Web应用程序,在此应用程序中,我想拥有一个将HTML转换为pdf的扩展。
我试图在Google上进行搜索,发现了一个名为itextsharp
的插件。问题出在这里。
itextsharp
使用.NET Framework,而我的主要项目使用.NET Core。由于我想创建一个类库来构建此扩展,因此我有3个选择:
使用.NET Core类库。
使用.NET Standard类库。
使用.NET Framwork类库。
所有这些都可以参考主项目。 但是:
我无法在.NET中使用itextsharp
引用(itextsharp.dll
,itextsharp.xtra.dll
,itextsharp.pdfa.dll
,itextsharp.xmlworker.dll
...)核心/标准类库。它们都只能在目标.NET Framework上运行。
(由于许可证,我尚未提及如何将代码转换为目标.NET Standard或Core)
我的解决方案是:构建一个.NET Framework应用程序,然后将其发布到exe
文件中,然后再附加到主项目中作为参考。
P / S:目前,itextsharp
拥有Core版本,但我认为它还不够好(有关问题:显示图像,带有Unicode文本的字体,样式标签...)。
总体而言,如果要构建使用目标.NET X的应用程序,则必须确保所有引用也可以使用目标.NET X。
另一个示例:如果要使用Razor class library
构建一个类库。您必须确保所有引用都使用目标.NET Core / Standard。因为Razor class library
不能引用.NET Framework类库。