Linux上的.net核心应用程序目标.net框架4.5.2
我想更多地了解点网核心支持。 我的基本理解是,如果我想在Linux上运行.net应用程序,那么需要构建.net核心和目标netcoreapp1.0框架来保证这一点。 1)我假设上述假设是正确的?
2)当我在线阅读各种文章时,例如关于在.net核心应用程序中引用退出.net框架项目的文章( https://www.hanselman.com/blog/HowToReferenceAnExistingNETFrameworkProjectInAnASPNETCore10WebApp.aspx )如果我这样做,大概是该应用程序只能在Windows而不是Linux上运行?
3)在以下文章中: https : //blogs.msdn.microsoft.com/cesardelatorre/2016/06/28/running-net-core-apps-on-multiple-frameworks-and-what-the-target-framework -monikers-tfms-are-about /在运行.net运行4.5.2选项( dotnet run -f NET452
)的dotnet run -f NET452
,提到:
如果这个应用程序在.NET核心平台上运行,让我们说在Linux机器或Mac上,这个代码将不会被执行,但该应用程序仍将在Linux或MacOS上运行。
运行和不执行之间的区别是什么? 如果我的初步理解是正确的,那么通过在Linux上运行.net 4.5.2选项,我不希望应用程序根本不运行。
欣赏那里的几个问题,但真的想要了解更多.net核心。
.NET Core
和ASP.NET Core
之间存在差异,您提到的文章是关于在.NET Framework
上运行ASP.NET Core
“apps”。 让我尝试使用一些声明性陈述来澄清这一点:
-
.NET Core
是跨平台运行时。 -
ASP.NET Core
是一组库,直到版本1.1。*可以在.NET Framework
和.NET Core
。 - 这意味着您可以在此应用程序中创建
.NET Framework
应用程序(=>例如net452
)并使用ASP.NET Core
。 - CLI工具适用于针对
netcoreapp*
和net*
两个项目 – 但net*
目前仅适用于Windows。
这意味着对于netcoreapp1.*
,您不能引用为.NET Framework构建的任意库。 如果将目标框架更改为net452
,则不再构建.net核心应用程序,而是构建.net框架应用程序。
对于ASP.NET Core 2.0
这将发生变化。 再说一些陈述:
-
ASP.NET Core 2.0
仍然是一组库,但它们只能在.NET Core 2.0
上使用,而不能在.NET Framework
- 请注意,在撰写本文时,这仍然在讨论中: https : //github.com/aspnet/Home/issues/2022
-
.NET Core 2.0
能够自由引用为.NET Framework
4.6.1
版本构建的库- 但是,如果某些库尝试使用
.NET Core
上不可用的API方法,则它们可能会在运行时失败
- 但是,如果某些库尝试使用