dotnet 核心控制台应用程序中不必要的 dll?

Unnecessary dlls in dotnet core console app?

我只是在尝试构建一个示例 dotnet-core 2.0 控制台应用程序,它应该作为 执行文件 发布。这需要我在 csproj 文件中添加一个 RuntimeIdentifier。在为 win-x64 发布我的示例应用程序后,我得到一个包含大约 200 个 dll 和我的可执行文件的输出目录。我觉得这太多了 - 只是向控制台打印一个简单的 Hello World

有没有办法减少dll的数量?在这个名为 reducing package dependencies 的旧文档(现在肯定已经过时)中,为图书馆提出了一种手动方法。

有没有办法减少 dotnet-core 2.0 中的依赖关系?或者这毕竟不是问题,我不应该关心?

为了完整起见,这里是我的示例项目定义:

<Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
       <OutputType>Exe</OutputType>
       <TargetFramework>netcoreapp2.0</TargetFramework>
       <RuntimeIdentifiers>Portable;win-x64</RuntimeIdentifiers>   
     </PropertyGroup>
</Project>

所有依赖项都以某种方式有用(每个 类 用于使您的应用程序正常工作),所以当您说 "unnecessary" 时,您错了。

到目前为止,没有比新发布的 IL Linker 更好的工具来缩小部署的大小,

https://github.com/dotnet/announcements/issues/30