创建项目 ASP.NET Core (.NET Core) 和 ASP.NET Core (.NET Framework) 有什么区别

What is the difference between creating a project ASP.NET Core (.NET Core) and ASP.NET Core (.NET Framework)

我没看清最后两种项目类型的主要区别,究竟最后一种有什么意义? .NET Core 和 .NET Framework?

不同之处在于您将以 .Net Core Framework 还是完整的 .Net Framework 为目标。这种差异显示在 project.json 文件中。

另一件需要了解的事情是,当您使用“ASP.NET 核心 Web 应用程序(.NET Framework)”模板时,link 到针对完整的 .Net 库项目要容易得多使用 Visual Studio 时的框架。可以使用“ASP.NET Core Web Application (.NET Core)”模板来完成,但它需要对 project.json 文件进行一些手动编辑。

可能还值得一提的是,如果您以完整框架为目标,则必须将 Web 应用程序部署到 Windows,而以 .Net Core 框架为目标则允许将 Web 应用程序部署到非 Windows 环境。但是 .Net Core Framework 的功能不如 Full Framework 丰富。 (例如,它没有用于调整图像大小的绘图例程)。您可以在此处阅读有关选择正确框架的更多信息:https://docs.asp.net/en/1.0.0-rc1/getting-started/choosing-the-right-dotnet.html

无论哪种方式,无论您select使用这两个模板中的哪一个,您都将创建一个用于创建ASP.NET核心应用程序的项目。

实际创建的项目有些差异

这是 Visual Studio 2015 Update 3 中选择“ASP.NET 核心 Web 应用程序 (.NET Core)”(使用空选项)时的解决方案:

这是它的 project.json 文件:

这是 Visual Studio 2015 Update 3 中选择“ASP.NET Core Web Application (.NET Framework)”(使用 Empty 选项)时的解决方案:

这是它的 project.json 文件:

ASP.NET Core can run on top of .NET Core or the full .NET Framework。因此,有一个模板取决于您是要在 .NET Core 还是完整的 .NET Framework 上构建。

这是 Microsoft 整理的信息图,直观地展示了该概念:

无论您选择哪个模板,您始终可以编辑您的配置以同时针对这两个模板。但模板只是帮助您开始使用其中之一。