Visual Studio 2022无法生成包含所有DLL的单EXE文件问题咨询
VS2022下.NET 4.8项目发布成单EXE(带所有DLL和app.config)的解决办法
方案1:切换到文件夹发布模式(VS原生支持)
- 右键你的.NET 4.8项目,选「发布」,进入向导后别选默认的安装程序选项,点**「更多选项」**,找到「文件夹」这个发布目标
- 选好要发布到的本地文件夹路径,点「完成」进入配置页
- 点配置页里的「编辑」按钮(对应配置文件那一项),在弹出窗口里:
- 部署模式选**「自包含」**(要打包所有依赖选这个,若仅打包项目DLL、依赖系统已装的.NET 4.8就选「框架依赖」)
- 勾选「生成单个文件」,选好对应系统的目标运行时(比如win-x64)
- 保存配置后点「发布」,目标文件夹里就会生成带所有DLL的单EXE,app.config也会在同目录
方案2:用第三方工具合并(更灵活)
要是VS原生的单文件发布不合意(比如不想运行时解压临时文件),可以用这俩工具:
- ILMerge:微软官方工具,直接命令行合并
- 先通过NuGet装
ILMerge,或者去官网下独立工具 - 命令示例:
ILMerge.exe /target:winexe /out:YourFinalExe.exe YourOriginalExe.exe Dependency1.dll Dependency2.dll - 记得把原app.config改名为
YourFinalExe.exe.config,和EXE放一起
- 先通过NuGet装
- Costura.Fody:NuGet集成,编译时自动嵌DLL
- NuGet搜
Costura.Fody装上,不用额外配置,直接编译项目,生成的EXE就自带所有依赖DLL,app.config正常放同目录
- NuGet搜
补充说明
.NET 6这类现代框架的发布向导默认就把单文件发布做的很直观,而.NET Framework 4.8在VS2022里默认导向了安装程序类的发布流程,得手动切到文件夹模式才行。
内容的提问来源于stack exchange,提问作者Toru DxD
相关产品推荐
相关产品推荐

