对于一个项目来说,如果能够把软件打包成单个 exe 可执行文件,无需安装,下载后直接打开即可使用,就可以极大地方便用户使用,从而增加用户使用你的产品的意愿。同时,依托于 .NET 的原生优势,一般大小的软件打包出来的单个 exe 文件仅会有几 MB 大小。下面来说如何实现,对 WPF 、Winform 项目均有效。

一、.NET Core 3 之后的版本

在 .NET Core 3 之后的版本中,有如下两个功能:

  • Single-file executables
  • Assembly linking

能够直接生成单个 exe 可执行文件。下面以 Single-file executables 为例:

  1. <PublishSingleFile>true</PublishSingleFile> 添加到项目文件。

  2. 在“解决方案资源管理器”窗格中,右键单击要发布的项目 。 选择“发布”。

    如果还没有发布配置文件,请按照说明创建一个并选择“文件夹”目标类型 。

  3. 选择“编辑” 。

  4. 在“配置文件设置”对话框中,设置以下选项 :

    • 将“部署模式”设置为“独立式”或“依赖于框架”。
    • 将“目标运行时”设置为要发布到的平台 。 (必须是除“可移植”以外的设置。)
    • 选择“生成单个文件”。

    选择“保存”保存设置并返回到“发布”对话框 。

  5. 选择“发布”,将应用作为单个文件发布。

更多参阅微软文档

二、.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 文件单独复制到桌面,看看能不能打开,以验证是否成功

更多说明见其主页

将 C# .NET ( Core Framework ) WPF Winform 项目打包成单个 exe 可执行文件相关推荐

  1. 如何将cocos2d-x项目打包成一个.exe

    今天在CSDN上看到了一片有趣的博文,没错,他还是关于cocos2d-x的,但不同之处是,这会正对的不是ios又或安卓,而是我们最熟悉的windows,他教会了我如何将一个cocos2d-x编译后产生 ...

  2. 使用pyinstaller将python项目打包发布为exe可执行文件

    pyinstaller模块用于将python项目打包发布成exe文件,以方便地在没有安装python环境的机器上运行.该模块使用 pip install pyinstaller 安装即可. 一.常用参 ...

  3. Winform项目打包

    Winform项目打包Winform项目打包Winform项目打包 首先下载安装Installer Projects 安装速度太慢,可以下载离线包,双击直接安装也可以 链接:https://pan.b ...

  4. linux上jar包无法识别本地文件格式,解决使用maven将项目打包成jar包后运行在linux系统中无法读取jar包中文件的问题...

    哈哈,之前计划的每周至少更新一个博客的计划又因为各种原因都泡汤了.看来坚持真得是一件挺让人头疼的问题,无论如何,从这周开始接下来每周一定要至少更新一个技术博客,欢迎大家监督! 好,言归正传.之前前几周 ...

  5. Vue项目打包成桌面程序exe除了使用electron-vue你还可以这样

    场景 electron-vue 基于 vue (基本上是它听起来的样子) 来构造 electron 应用程序的样板代码. 该项目的目的,是为了要避免使用 vue 手动建立起 electron 应用程序 ...

  6. 使用 GraalVM 将纯 JavaFX 项目打包成 EXE

    使用 GraalVM 将纯 JavaFX 项目打包成 EXE GraalVM 的环境搭建 打包不含 FXML 的纯 JavaFX 项目 打包含 FXML 的纯 JavaFX 项目 测评 在 Intel ...

  7. 使用 GraalVM 将基本的 Java 项目打包成 EXE

    使用 GraalVM 将基本的 Java 项目打包成 EXE GraalVM 的环境搭建 将基本的 Java 项目打包成 EXE 将 JAR 转化为 EXE GraalVM 与 Java 中其它打包成 ...

  8. winform把所有dll打包成一个exe

    大家都知道做winform开发,是可以利用visual studio进行打包的,但是这种打包的方式需要双击安装,那么有没有什么方法,可以把winform程序打包成绿色版呢?当然,这里的"绿色 ...

  9. 转:教大家如何用HBuilder将web项目打包成apk

    链接:https://www.jianshu.com/p/d86bf569295d 将我们的web项目打包成一个apk文件并不难,首先准备好软件HBuilder还有你的项目,注意这里只献给那些不是真正 ...

最新文章

  1. 【Java 虚拟机原理】栈帧 | 动态链接 | 方法区 | 字节码文件二进制分析
  2. linux 分区 var,Ubuntu下移动/var目录到单独分区后出现的一些问题
  3. Batch Normalization的作用及原理
  4. Java条件查询分页——总结
  5. python中怎么判断字母大小写_python判断字符串是字母 数字 大小写(转载)
  6. 【OpenCV 例程200篇】04. 用 matplotlib 显示图像(plt.imshow)
  7. 面向对象之反射和其他内置方法
  8. TensorFlow 教程 --新手入门--1.4 win10环境安装实例
  9. 计算机的用户名在哪,告诉你win7系统用户名在哪以及用户名更改
  10. 院士大咖齐聚苏州,共话AI未来,30个优秀个人和企业、产品受到表彰
  11. 智能音箱,你在窃听我吗?
  12. php __call实现多继承,php如何使用_call实现多继承(代码示例)
  13. Python计算机视觉编程pdf
  14. 【实现windowsxp系统自动快速装机的方法】
  15. 如何修改显示Office图标而不是wps图标
  16. iOS---Xcode中删除描述文件Provisioning Profiles
  17. vue中使用clipboard实现点击复制功能
  18. 数据和安全②HTTPS单向和双向认证
  19. MT-InSAR原理和发展_刘计洪
  20. MySQL 中用NOW()和SYSDATE()函数获取当前日期时间

热门文章

  1. 淘宝api,custom - 淘宝官方订单API操作
  2. Selenium模拟浏览器访问
  3. Webex助力Innokids消除沟通隔阂,成就无边界创作
  4. 一文学会 PC搭建opengl es C++开发环境
  5. 虚拟化技术—基础(1)
  6. sklearn.svm中LinearSVR(svm线性回归)、LinearSVC(svm线性分类)与SVC(svm分类)、SVR(svm回归)之间的区别
  7. 中国医用显示器械市场现状调查与投资前景预测报告2022-2028年
  8. 开发板——在X210开发板上进行裸机开发的流程
  9. linux探针,存活探针(Liveness)、就绪探针(Readiness)、启动探针(Startup)、容器钩子
  10. 24点(给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利)