在这篇video中,Scott Hanselman采访了一个来自ASP.NET团队的人。他说,除了.NET Core之外,ASP.NET 5的目标之一是应用程序不依赖托管服务器上的.NET Framework和GAC程序集。相反,.NET Core库将通过NuGet包发布,应用程序将与其依赖项一起部署。
其中一个原因是Microsoft可以快速发布错误修复或新功能,而且我们不必等到我们的托管环境中安装了新版本(完整框架)。 / p>
我的问题是:
在.NET Core上构建的应用程序是否真的独立于目标计算机上安装的.NET版本,即使没有安装.NET Framework,它们是否可以运行?
答案 0 :(得分:7)
是的,您在应用程序中使用的框架完全独立于目标服务器上安装的.NET Framework,因为Core .NET Framework是通过NuGet
软件包引用的,并且可以捆绑在一起以便通过DNX Utility,特别感兴趣的是dnu publish
命令。
以下是摘录,描述dnu publish
的作用:
发布(dnu publish
)
publish命令会将您的应用程序打包到一个可以启动的自包含目录中。它将创建以下目录结构:
packages目录包含应用程序需要运行的所有软件包。
appName目录将包含所有应用程序代码,如果您有项目引用,它们将显示为自己的目录,代码也在此级别。
因此.NET Core将存在于output/packages
目录中,不需要在目标服务器上安装。
答案 1 :(得分:1)
正常的.net核心应用程序要求您在要运行应用程序的计算机上安装.net核心。但是,通过发布一个自包含的应用程序,可以避免这种情况。您可以使用必需的.net核心版本发布您的应用程序。这将使您的应用程序更大,但如果您只需要一台机器上的一个应用程序来运行.net,您需要特定版本的.net,或者您想制作一个便携式应用程序,这是一个不错的选择。