我想创建一个ASP.NET Core 3.0 Web Api,它在发布大小和RAM消耗方面的足迹最小。 CPU消耗似乎不是什么大问题,在我的用例中,调用次数非常少。
为进行测试,我尝试使用 ASP.NET Core Empty 模板。然后,我应用了标记
<PublishTrimmed>true</PublishTrimmed>
<PublishSingleFile>true</PublishSingleFile>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
这使我获得了一个约46 MB的可执行文件,而当我从cmd运行该可执行文件时,我发现了一个消耗约19 MB的新进程。
我的问题:
在ASP.NET 2.X中,有一个元软件包AspNetCore.App,其中包含通常需要的所有内容。但是对于我的嵌入式系统,通常有点粗糙。现在在3.0中,我既看不到.csproj中列出的meta包,也看不到任何单独的包。仍然有一种方法可以准确地控制哪些包被引用,哪些未被引用?
考虑到PublishTrimmed
选项:关心所有包都被引用还是有意义的东西被剥夺了?
更新
更清楚地说,嵌入式系统将运行基于Yocto的Linux发行版,一些基于C的代码与基础测量硬件进行通信,而ASP.NET Web Api与外界进行通信,仅此而已!一旦发布了LTS版本的ASP.NET Core,我们的系统可能会交付给客户并运行5-10年,而无需进行任何更新(至少在不需要关键安全修复程序的情况下)。通常,该设备只能在局域网中访问。