.NET(Core)WinForms生成DLL原因及EXE文件名修改问询
.NET WinForms程序的EXE原始文件名及DLL生成问题
修改EXE的原始文件名
.NET Core及后续版本的WinForms项目,默认生成的EXE是轻量启动器,实际业务逻辑在同名DLL中,因此EXE的原始文件名会指向该DLL。要修改为EXE自身名称,有两种方式:
- 通过VS界面设置:右键项目 → 属性 → 应用程序 → 点击“程序集信息”按钮,在弹出窗口中修改“原始文件名”为
WinFormsApp2.exe,保存后配置会自动同步到项目文件。 - 直接编辑.csproj文件:在
<PropertyGroup>节点中添加或修改以下配置:
<OriginalFilename>WinFormsApp2.exe</OriginalFilename>
确保<AssemblyName>也设置为WinFormsApp2,保证EXE文件名和原始文件名一致。
实现无独立DLL的发布效果
.NET Framework的EXE是自包含的程序集,而.NET Core+默认采用框架依赖的拆分结构(启动器EXE+业务DLL)。要实现类似.NET Framework的单EXE输出,可通过单文件发布完成:
- VS界面操作:右键项目 → 发布 → 选择“文件夹”作为发布目标 → 进入“发布配置文件设置”,勾选“生成单个文件”选项,按需选择是否包含.NET运行时(自包含模式),最后执行发布即可。
- 项目文件配置:在
<PropertyGroup>中添加以下配置,发布时会自动打包为单EXE:
<PublishSingleFile>true</PublishSingleFile> <!-- 若要包含运行时,无需依赖系统已安装的.NET,添加下面一行 --> <SelfContained>true</SelfContained>
注意:开发调试阶段仍会生成DLL,这是为了支持调试工具的程序集加载,属于正常设计;发布后的单EXE则和.NET Framework的输出结构一致,无独立DLL。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

