对于一个项目来说,如果能够把软件打包成单个 exe 可执行文件,无需安装,下载后直接打开即可使用,就可以极大地方便用户使用,从而增加用户使用你的产品的意愿。同时,依托于 .NET 的原生优势,一般大小的软件打包出来的单个 exe 文件仅会有几 MB 大小。下面来说如何实现,对 WPF 、Winform 项目均有效。
一、.NET Core 3 之后的版本
在 .NET Core 3 之后的版本中,有如下两个功能:
- Single-file executables
- Assembly linking
能够直接生成单个 exe 可执行文件。下面以 Single-file executables 为例:
-
将
<PublishSingleFile>true</PublishSingleFile>
添加到项目文件。 -
在“解决方案资源管理器”窗格中,右键单击要发布的项目 。 选择“发布”。
如果还没有发布配置文件,请按照说明创建一个并选择“文件夹”目标类型 。 -
选择“编辑” 。
-
在“配置文件设置”对话框中,设置以下选项 :
- 将“部署模式”设置为“独立式”或“依赖于框架”。
- 将“目标运行时”设置为要发布到的平台 。 (必须是除“可移植”以外的设置。)
- 选择“生成单个文件”。
选择“保存”保存设置并返回到“发布”对话框 。
-
选择“发布”,将应用作为单个文件发布。
更多参阅微软文档
二、.NET Core 3 之前的 旧版本、.NET Framework
可是对于其他以前版本,如 .NET Framework 来说,并没有这个功能,要想把项目打包成单个 exe 可执行文件,可以借助于一个名为 Costura Fody 的开源包(Package)
通过 NuGet 安装
如下图,依次点击 Tools -> NuGet Package Manager -> Package Manager Console (不难看懂,我就不翻译了)
然后在弹出的 Console 控制台 终端 中,依次输入:
Install-Package Fody
Install-Package Costura.Fody
安装完这两个包之后,直接运行你的项目,然后就可以在项目的 \bin\Debug
目录中找到生成的单个 exe 可执行文件
文件夹中可能还有之前生成的文件没有删除,可以把 exe 文件单独复制到桌面,看看能不能打开,以验证是否成功
更多说明见其主页