ASP.NET Core发布在已发布的文件夹中生成大量DLL,为什么?

时间:2016-12-15 17:00:14

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

我使用.NET Core Framework在Visual Studio 2015中创建了一个简单的Web API项目。当我使用默认设置发布此项目时,它会创建以下内容:

enter image description here

总共有 155个DLL ,在PublishOutput根目录中有77个,在refs文件夹中有78个。

  • 为什么要将所有DLL放在发布文件夹中?不能吧 从单个共享引用安装它们的DLL 位置?

2 个答案:

答案 0 :(得分:5)

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

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

因此,以前在框架中可用的许多依赖项现在被移动到NuGet包中,并且如您所知,NuGet包中存在一系列依赖项,因此我们将在发布输出中结束这么多库,这很好。

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

答案 1 :(得分:1)

我有一个类似的问题。当我的本地计算机从Net Core 2.0升级到2.1时,引用NetStandard应用程序的Core We Application开始在所有引用的项目中发布所有DLL。我将Core 2.0应用程序迁移到2.1,以匹配本地安装的最高版本的SDK,我可以看到我的问题现在已解决。从迁移的(升级的)应用程序发布仅生成所需的DLL。希望这会有所帮助。