当前位置:首页 » 《随便一记》 » 正文

C# WPF项目打包成一个exe安装包教程(VS2022)

27 人参与  2024年05月26日 09:48  分类 : 《随便一记》  评论

点击全文阅读


        创作背景:一直想找到一个合适方法将项目打包成一个安装包,曾经尝试很多次,也再网上找了很多资料,这里进行一个总结,希望能给有需要的朋友提供一份思路,避免走我走过的弯路。

        以下就是我整理后的过程:

 ****特别注意**** :一定要将需要打包项目和Set up项目放到一个解决方案中!!!!

1、下载扩展Microsoft Visual Studio Installer Projects

点击扩展 ---> 管理扩展,搜索Microsoft Visual Studio Installer Projects,点击下载,完成安装。

2、新建Set up项目

右击解决方案 ---> 添加 ---> 新建项目,在搜索框中搜索Setup,选择如图所示工程

,并配置新项目信息。

安装项目,三个目录的作用

Application Folder:即 “应用程序文件夹”,表示要安装的应用程序需要添加的文件(注:如果项目中用了三方开源插件,也需要在里面添加上)

User‘s Desktop:即 “用户桌面”,表示这个应用程序安装完,用户的桌面上的创建的.exe快捷方式

User’s Programs Menu:即 “用户的程序菜单”,表示应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件夹用来存放:应用程序.exe和卸载程序.exe

3、应用程序文件夹下添加文件

右击Application Folder(应用程序文件夹)---> Add ---> 文件,把你需要打包的项目下的---> bin ---> Debug目录下的所有文件添加到Application Folder中(比如下图所示的一些.dll、.pdb文件,如果Debug目录下还有子目录那也需要把子目录里的文件一并添加进去) 假如有子目录,需要在“Application Folder”新建文件夹,并修改为相同名称,并把文件文件中的内容同样添加,防止程序中的调用找不到路径。

4、添加卸载程序

右击Application Folder ---> Add ---> 文件 --->把C:\Windows\System32下的msiexec.exe文件添加到Application Folder中,添加进来并重命名为   Uninstall.exe

右击Uninstall.exe文件 ---> 点击Create Shortcut to msiexec.exe,创建快捷键方式,重命名为 卸载程序.exe

点击您刚刚新建的Setup项目,复制ProductCode 属性的值

点击卸载程序.exe ---> 将复制的ProductCode 的属性值粘贴在Arguments 属性中,然后在最前面加上 /X (PS:/X后有一个空格哦)

将卸载拖动到User‘s Programs Menu(用户的程序菜单)中

5、添加运行环境

右击 Application Folder ---> Add --->项目输出,选择项目、主输出 ---> 确定

创建了主输出文件的快捷方式(方法同4.2),拖进User's Desktop(用户桌面)

右击您新建的Setup项目---> 属性--->点击Prerequisites…

选择所使用的.net的版本(根据自己项目选择)---> 确定

6、添加程序图标(选做)

右击Application Folder(应用程序文件夹)---> Add ---> 文件,将你的icon文件导入

右键User’s Desktop下的主输出快捷方式-->选择属性窗口

选择ICON属性的下拉箭头--->(Browse...),选择刚刚添加的ICON文件,确认即可。

7、生成项目exe

右击您新建的Setup项目---> 生成。在您新建的Setup项目的目录下即可看到如下文件,debug文件夹,会看到生成了两个文件“XX.exe”和“XX.msi”。其中如果使用exe文件进行安装,则必须要有.msi文件。如果选择.msi文件进行安装,可以不需要exe文件。


点击全文阅读


本文链接:http://zhangshiyu.com/post/113723.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1