Linux上的.net核心应用程序目标.net框架4.5.2

Rub*_*ans 3 .net c# .net-4.5 .net-core asp.net-core

我想更多地了解点网核心支持.我的基本理解是,如果我想在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 run 4.5.2 option(dotnet run -f NET452)的上下文中 ,提到:

如果这个应用程序在.NET核心平台上运行,假设在Linux机器或Mac上,此代码将不会被执行,但该应用程序仍将在Linux或MacOS上运行.

运行和不执行之间的区别是什么?如果我最初的理解是正确的,那么通过在Linux上运行.net 4.5.2选项,我不希望应用程序根本不运行.

欣赏那里的几个问题,但真的想要了解更多.net核心.

Mar*_*ich 10

有之间的差异.NET Core,并ASP.NET Core和你提到的文章是关于运行ASP.NET Core的"应用程序" .NET Framework.让我尝试使用一些声明性陈述来澄清这一点:

  • .NET Core 是跨平台运行时.
  • ASP.NET Core是一组直到1.1版本.*可以同时运行库.NET Framework.NET Core.
  • 这意味着您可以创建一个.NET Framework应用程序(=> eg 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
  • .NET Core 2.0能够自由引用.NET Framework为版本而构建的库4.6.1
    • 但是,如果某些库尝试使用不可用的API方法,则可能会在运行时失败 .NET Core