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 CoreASP.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方法,则它们可能会在运行时失败