2016-12-15 35 views
1

我使用.NET Core Framework在Visual Studio 2015中创建了一个简单的Web API项目。当我使用默认设置发布这个项目,它会创建下列:ASP.NET核心发布会在发布的文件夹中生成大量DLL,为什么?

enter image description here

总共有155的DLL,77在PublishOutput根和78中裁判的文件夹。

  • 为什么要将所有的DLL放在发布文件夹?难道只有 引用从一个共享的 位置安装它们的DLL?
+0

文件夹包含您的原始应用程序结构以及所有转储的nuget依赖项程序集。 –

+0

@M。 Wiśnicki,我的问题更多的是为什么它这样做,我可以理解它是否是第三方依赖关系,但是这些DLL是不是.NET Core框架的一部分?我想我有点困惑,为什么有一个简单的Web API项目需要155个独立的DLL,我想我一定没有正确配置它? – Exocomp

+0

你可以选择是否进入依赖关系。它是非常模块化的,只有你从project.json中得到的东西才包含在你的应用程序中。在Web主机上必须安装框架的旧单一方式意味着,如果主机不安装更新,则无法获取依赖项的更新版本。像一个巨大的庞然大物一样,更新很少。您甚至可以在应用程序中部署运行时,以便它不依赖于Web主机上安装的运行时的版本号 –

回答

4

与以前版本的.net框架相反,Dotnet核心往往非常小。

在dotnet核心中,主要目的是使核心框架尽可能小,如果您需要更多的东西,请通过NuGet软件包将其引入。

因此,过去在框架中可用的许多依赖关系现在被移动到NuGet包,并且您知道NuGet包中存在一系列依赖关系,所以我们最终会在发布输出中包含很多库,这很好。

另一点是,大多数情况下,我们使用的项目模板具有太多的依赖关系,可能并不需要。所以我们可以从一个非常小的模板开始,添加需要的东西,或者从更简单的模板中删除无用的东西。

相关问题