c# - Dotnet Core - 如何在我编译的应用程序中链接包(dll)
问题描述
我正在创建一个新的 dotnet core ASP Web API(dotnet core 2.2),我注意到的一件事是它引用了一个名为Microsoft.AspNetCore.App
.
当我查看这个包的内部时,它实际上是对微软默认的一堆其他包的引用,以便您构建所有唱歌和所有跳舞的 Web 应用程序。
我在其中注意到的一件事是对包的引用(例如),例如身份验证或实体框架。我不需要这些(我有一个非常简单的 API)。
我的问题
引用未使用的包会影响应用程序的整体编译输出吗?它是否节省内存消耗(如果不再链接 dll,则不会实例化对象)。
我想对未使用的包的引用仍然在您的应用程序上有一个“足迹”(整体编译大小输出),其中包含指向正在设置的包的链接和正在实例化的包中的对象(我可能对此完全错误- 所以任何澄清都会很棒!)。
我在 UI 世界中使用了类似于 WebPack 的摇树概念。我看过这篇文章,看起来 dotnet 有类似的东西:
https://ianqvist.blogspot.com/2018/01/reducing-size-of-self-contained-net.html
提前感谢您的任何建议!
解决方案
我假设您正在寻找的是最近成为 .Net Core 3.0 的一部分的 Tree Trimming 功能。它可以通过PublishTrimmed
*.csproj 文件中的选项启用。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>
</Project>
这是Scott Hanselman 关于缩小已编译工件的博客文章。
推荐阅读
- javascript - 我的数组上的javascript过滤方法有问题吗?
- python - 尝试符号链接最新日志目录时出现 root:OSError - Apache Airflow
- javascript - 为什么 reduce() 跳过方括号?
- sql - 使用 TSQL 对简单的汇总总计进行 UNPIVOT……这甚至可能吗?
- scala - 将 UDF 函数应用于 Spark 窗口,其中输入参数是范围内所有列值的列表
- ios - UITableViewCell 滚动检测
- sql - SQL查询emp表中的工资
- javascript - 如何使用“vue-google-charts”(来自 devstark)显示图表的标题和副标题(在顶部或底部)?
- python - 直方图 Bins,TypeError:无法使用灵活类型执行归约
- javascript - onaddstream 事件未调用