为何简单C# WinForm程序在Visual Studio 2022中同时生成.exe与.dll?
为什么简单的C# WinForm项目会同时生成.exe和.dll文件?
项目模板的默认结构
VS2022的WinForm项目(尤其是.NET 5及以后的SDK风格项目)默认采用分离式输出设计:.exe是仅负责启动应用的入口程序,而.dll才是包含窗体、控件等核心UI代码的主程序集。这种设计是为了后续扩展方便——比如要复用UI组件给其他项目,直接引用.dll即可,不用牵扯启动逻辑。SDK风格项目的编译规则
从.NET Core开始,微软统一了项目结构为SDK风格,这类项目默认会把业务代码编译成.dll,同时生成一个轻量的.exe作为启动宿主。你可以对比两者的文件大小,.exe通常只有几十KB,它的作用就是加载对应的.dll并执行入口方法,真正的代码都在.dll里。如何生成单文件.exe?
如果确实需要单个.exe文件,可修改项目的.csproj文件:- 右键项目→编辑项目文件
- 在
<PropertyGroup>节点内添加:<PublishSingleFile>true</PublishSingleFile> <SelfContained>true</SelfContained>
注意:调试编译时仍会生成.exe和.dll(方便热重载和调试),上述设置仅在发布项目时生效,会打包成包含运行时的单文件.exe。
内容的提问来源于stack exchange,提问作者sumwunyumaynotno
相关产品推荐
相关产品推荐

