.NET 8.0应用将Target-OS-version从7改为10后输出体积暴涨百倍原因
.NET WPF应用不同Target OS版本输出体积差异原因
- 当Target OS版本设为Windows 7.0时,应用仅依赖Windows 7及以上系统原生预装的传统Windows API(如GDI+、老版User32等),这些API无需额外打包,所以输出体积极小(不足200KB)。
- 当Target OS版本切换到Windows 10.0.19041.0时,.NET会自动启用Windows 10及以上的现代API集(如WinUI相关控件、新窗口管理、进阶文件系统API等)。这些现代API并非Windows 10全版本原生预装,因此编译器会将封装这些API的
Microsoft.Windows.SDK.NET.dll打包到输出目录中——该dll包含大量新增API的封装实现,直接导致体积暴涨至20MB以上。 - 补充说明:
- .NET 6/8针对Windows 10+目标版本做了特性绑定优化,默认关联较新的Windows SDK组件,以支持系统新特性,但会增加输出体积。
- 若无需Windows 10专属特性,保持Target OS为7.0即可兼顾体积与多系统兼容性。
- 若需Target OS 10且减小体积,可尝试启用**代码裁剪(Trimming)**功能,移除未使用的API封装(需确保应用无反射等动态调用场景)。
内容的提问来源于stack exchange,提问作者ispiro
相关产品推荐
相关产品推荐

