C#winform打包成可安装exe文件(vs2022版本)

因为打包成exe出现了好多问题,希望写下来给大家避坑

下面所有内容的前提是已经安装Visual Studio2022版本的软件

第一步:安装扩展

首先打开要打包的winform程序,工具栏中选择扩展->管理扩展。会打开扩展管理器。直接在扩展管理器里的浏览页面搜索Microsoft Visual Studio Installer Projects 2022(2022/Visual Studio都可以搜到)。因为我已经安装过了,所以显示的是已安装。我看很多博主都是推荐的直接在程序里安装,但是我当时下载特别慢,所以就去官方下载的。具体操作忘记了,觉得在程序里安装慢的小伙伴可以去看一下官方下载方法,以及如何放进程序包里。

在这里插入图片描述

打包程序

打包程序大多数都是选择在Debug模式下的内容,Release模式下的很少

Debug模式下编译的应用程序包含调试信息,在运行时出现问题更容易进行调试。
Release模式下的应用程序是为了最终发布构建的。它通常包含优化过的代码,这样可以提高性能并且减小程序的体积。不包含调试信息,这使得反编译和理解代码更加困难,从而提供更好的保护。
通常来说,在发布应用程序给最终用户之前,应该使用Release配置来构建应用程序,因为它布局包含了优化后的代码,而且没有调试信息,更适合生产环境。

我还是随大流使用Debug模式下的内容打包程序

如果想使用Release模型打包程序,只需在工具栏下面选择Debug或者Release后,点击工具栏中的生成->生成解决方案或者重新生成解决方案。外面这里选择Debug模式。
在这里插入图片描述
在这里插入图片描述

在项目名称上右击->选择属性。选择应用程序里的图标与清单,换成想要的图片。图片格式是ICO。可以直接使用在线工具转换图片格式。直接在线转ico图片格式即可。

注意:这里换的图片只是Debug模式下面的exe程序的图标。所以这一步为可选项。
在这里插入图片描述

就是创建程序的窗体左上角的图标

在这里插入图片描述

第二步:创建新项目。右击解决方案->添加->新建项目

在这里插入图片描述

新建项目后弹出该窗体,搜索Setup->选择Setup.Project->下一步

在这里插入图片描述

设置名称(一般不设置,默认的就是setup。如果设置也可以,设置的是msi的名称),路径不需要改动,就在你这个项目里面。创建新项目。

在这里插入图片描述

创建完成后会出现下面的界面

在这里插入图片描述

第三步:创建项目主输出。 右击Application Folder->选择Add->选择项目输出

在这里插入图片描述

选择字节要打包的主程序,我这里就是TagHandlerSample->然后选择主输出->配置选择活动->确定

在这里插入图片描述

然后就是下面的界面

在这里插入图片描述

第四步:创建桌面快捷方式

创建桌面快捷方式,右击主输出from TagHandlerSample->选择Create Shortcut to主输出from TagHandlerSample(Active)

在这里插入图片描述

得到下面的快捷方式(快捷方式带有小箭头),此快捷方式可以重新命名。比如我这里可以命名为上位机。

在这里插入图片描述
在这里插入图片描述

点击自己新创建的项目名称,我这里是Setup,会出现属性界面。然后复制ProductCode里面的内容。我这里是{CBDEAEFF-AE77-4CAA-BDB5-8880A5A9DB9A}每个人都不一样,不用复制我的。

在这里插入图片描述

点击快捷方式(带箭头的)—>右侧下面是他的属性,可以进行更改。必须更改的是Arguments—>将复制的ProductCode前面加上/X (斜杠大写X和空格)粘贴进去。

在这里插入图片描述

将快捷方式(带箭头的)从Application Folder里面拖到User’s Desktop用户桌面上去。

在这里插入图片描述

第五步:添加依赖(dll和exe)

选中Application Folder–>右击选择Add下面的文件。会弹出一个文件夹(自己打包项目的文件夹)---->选择bin文件下的—>Debug文件夹。Ctrl+A全选里面的文件—>点击打开后全部进入Application Folder文件夹里面。如果Debug里面有文件夹的话,无法直接加载进来,可以直接将文件夹拖到Application Folder文件里。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第六步:配置打包信息。 选择新建的项目文件(Setup)—>右击选择属性。

在这里插入图片描述

点击Prerequisites…

在这里插入图片描述

选择自己项目的运行环境---->选择需要联网安装依赖—>点击确定—>点击确定

在这里插入图片描述
在这里插入图片描述

点击新建的项目(Setup)—>右击选择生成—>然后选择在资源管理器中打开文件夹就可以看到生成的两个文件。exe文件用于安装,msi文件可用于卸载。

在这里插入图片描述
在这里插入图片描述

第七步:如何实现无网络安装依赖包

回到第六步,点击Prerequisites…

在这里插入图片描述

选择相应的依赖包和从应用程序相同的位置下载系统必备组件—>点击确定

在这里插入图片描述

打开你计算机C盘 搜索以下的路径

C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages

找到你相应的项目依赖框架
也可以直接在浏览器搜索**.net framework4.7.2离线安装包下载**选择官方下载
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果有以上的两个程序,那么可以直接点击新建的项目(Setup)—>右击生成---->然后选择在文件资源管理器中打开文件夹可以得到三个文件。

在这里插入图片描述
在这里插入图片描述

如果没有上面的两个文件,需要下载对应版本的离线安装包

下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/net472
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

下载好之后是这两个程序(这两个程序下的要靠运行,我下了很多次,NDP472-KB4054530-x86-x64-AllOS-CHS这个特别难下载。所以不要放弃。多下几次)

在这里插入图片描述

将NDP472-DevPack-ENU.exe复制到C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX472里面,把名字改为 NDP472-KB4054530-x86-x64-AllOS-ENU.exe(重命名的时候,我这里直接显示了.exe所以我写出来了,但是如果那么的文件夹不显示.exe。直接改前面的就可以)

在这里插入图片描述

将ndp472-kb4054530-x86-x64-allos-chs.exe复制到C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX472\zh-Hans里面并将名字改成NDP472-KB4054530-x86-x64-AllOS-CHS.exe

在这里插入图片描述

点击新建的项目(Setup)—>右击选择生成—>然后选择在资源管理器中打开文件夹就可以看到生成的三个文件。exe文件用于安装,msi文件可用于卸载。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这样不联网的方式就成功了。

最后相要提醒各位,打包好之后,如果发给其他人(电脑端没有vs软件),其他人不能使用,一定不用怀疑自己打包处理问题。看看是不是有串口通信的没有装驱动。如果打包发给别人,没有vs软件也是可以使用的。

有错误的地方欢迎批评指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值