.NET Core应用程序是否需要在目标计算机上安装.NET运行时?

时间:2015-08-16 16:59:56

标签: asp.net .net asp.net-core .net-core

在这篇video中,Scott Hanselman采访了一个来自ASP.NET团队的人。他说,除了.NET Core之外,ASP.NET 5的目标之一是应用程序不依赖托管服务器上的.NET Framework和GAC程序集。相反,.NET Core库将通过NuGet包发布,应用程序将与其依赖项一起部署。

其中一个原因是Microsoft可以快速发布错误修复或新功能,而且我们不必等到我们的托管环境中安装了新版本(完整框架)。 / p>

我的问题是:

在.NET Core上构建的应用程序是否真的独立于目标计算机上安装的.NET版本,即使没有安装.NET Framework,它们是否可以运行?

2 个答案:

答案 0 :(得分:7)

是的,您在应用程序中使用的框架完全独立于目标服务器上安装的.NET Framework,因为Core .NET Framework是通过NuGet软件包引用的,并且可以捆绑在一起以便通过DNX Utility,特别感兴趣的是dnu publish命令。

以下是摘录,描述dnu publish的作用:

发布(dnu publish

publish命令会将您的应用程序打包到一个可以启动的自包含目录中。它将创建以下目录结构:

  • 输出/
  • 输出/包
  • 输出/ APPNAME
  • 输出/ commandName.cmd

packages目录包含应用程序需要运行的所有软件包。

appName目录将包含所有应用程序代码,如果您有项目引用,它们将显示为自己的目录,代码也在此级别。

因此.NET Core将存在于output/packages目录中,不需要在目标服务器上安装。

答案 1 :(得分:1)

正常的.net核心应用程序要求您在要运行应用程序的计算机上安装.net核心。但是,通过发布一个自包含的应用程序,可以避免这种情况。您可以使用必需的.net核心版本发布您的应用程序。这将使您的应用程序更大,但如果您只需要一台机器上的一个应用程序来运行.net,您需要特定版本的.net,或者您想制作一个便携式应用程序,这是一个不错的选择。