我有以下项目:
.NET Core 2.0 Web应用程序
.NET Standard 2.0类库 &
.NET Framework 4.5类库。
我将.NET Framework类库的引用添加到ASP.NET Core Web API项目中。看起来它运行得非常好。
我想知道为什么可以将.NET Framework类库项目的引用添加到ASP.NET Core Web API或MVC中?
这不应该只允许在Core项目中添加Standard或Core库的引用吗?这个引用了.NET Framework类库的Core Web项目是否仍然是跨平台的?
更新
根据Phiter的评论:
"如果你将一个.NET Framework库导入到你的项目中,它就不再是跨平台的了,但是如果你想要的话可以自由地这样做。他们之所以允许这样做,是因为你可能想要使用.NET Core并仍然在Windows上运行。"
如果是这个原因,那么如果我想绑定我的项目到.NET Framework并仍然停留在Windows上,为什么我从一开始就要使用Core Web项目呢?
我以为我们使用核心项目是为了跨平台能力,如果不是,.Net Framework并不是更好的选择吗?
更新
mason的评论:
"没有什么好笑的:ASP.NET Core项目不必在.NET Core上运行。它也可以在.NET Framework上运行。
只是因为它被称为“Core”,并不意味着它们有关联。他们本可以把它称为ASP.NET FancyPants,并让它在.NET Core和.NET Framework上运行,你就不会这么困惑了。微软只是在命名方面做得很烂。"
更新(2018年11月12日)
ASP.NET Core 3.0-全面利用.NET Core的首次亮相
根据本月早些时候在.NET博客上宣布的消息,由于.NET Framework的现场更新性质和限制可能会破坏现有应用程序的更改,.NET Framework将少得到更多的新平台和语言功能,这些功能将转移到.NET Core。为确保ASP.NET Core能够充分利用未来.NET Core的改进,从3.0版本开始,ASP.NET Core将仅在.NET Core上运行。从现在开始,您可以将ASP.NET Core简单地视为.NET Core的一部分。
今天在.NET Framework上使用ASP.NET Core的客户可以继续使用2.1 LTS发行版进行全面支持。根据.NET Core支持政策,对2.1的支持和维护将继续到至少2021年8月21日(其被宣布为LTS发行版3年后)。