[C#.net资料]visual studio打包可安装的exe程序(添加配置文件),新手小白最全教程 - 知乎
VS程序打包(使用InstallerProjects制作安装包)、自定义安装程序类、不用卸载旧包直接覆盖升级_installer projects-CSDN博客
打包WPF应用程序
打开VS,选择 扩展-->管理扩展-->联机 (或者选择 工具-->扩展和更新-->联机),搜索Microsoft Visual Studio Installer Projects,进行安装,安装好之后,重启vs(一定要重启)。
2.1 打包之前,请先生成一个稳定的可执行项目,这个可执行项目就是要打包的对象
如果有图标,可以先设置图标后再生成
2.2 添加执行打包的steup项目
选择 解决方案-->添加-->新建项目
搜索 setup --> 选择 Setup Project --> 点击 下一步
温馨提示:
这个setup的项目名称会成为你最终打包好以后安装程序的默认安装目录名称(所以不要随便取名)
新建完成后,会出现以下界面
如果没有自动打开这个界面,那么请按照以下操作打开这个界面:
选择 你的Setup项目 --> View --> 文件系统
Setup 属性说明:
根据以上配置系统安装目录默认为: [ 系统主目 ]\[Author]\[ProductName] ,安装时会创建两层的文件路径
右键 Application Folder --> Add --> 项目输出
3.1 Application Folder 右键菜单说明:
3.1.1 Add 类型说明:
重点来了,这里其实很简单,直接拖进去就完事,往往很多太过简单的事情,就是最容易被忽略的,也是小白最容易踩的坑。
右键 Application Folder --> Add --> 文件
在 Application Folder 文件夹中选中 主输出 右键生成快捷方式,将快捷方式移至 User‘s Desktop 文件夹中
千万不要忘记设置快捷方式名称和图标
选择 Setup 项目 --> 右键 生成
setup.exe 与 Setup.msi的区别
msi 文件是 windows installer 开发出来的程序安装文件,它可以让你安装、修改、卸载你所安装的程序,也就是说VS工具打包生成的msi文件就是windows installer的数据包,把所有和安装文件相关的内容封装在一个包里。VS工具打包生成的exe文件是主要是用于检查安装的环境(即系统必备),当安装的环境检查成功后,会自动再安装msi文件。
补充一点:
有时候版本升级后,打包会报错,可能是因为你这次打包中所需要的文件已经有变化,比如删掉了部分文件,或者新增文件,或者把文件移动到了其他位置,这个时候打包就会报错,因为你删除,新增或者移动,那么你都需要在 Application Folder 中做相应的修改,这个坑,如果我不说,新手必然会踩,总之我是踩过了的。
这里需要注意的是 Arguments 的值前面需要加 “/x ”,注意一定要加,否则卸载程序用不了
补充一点:
使用卸载功能的时候,如果打包时所有打包进去的文件缺少了任何一个,卸载时都会报错,所以,打包时请务必确保所有打包文件在使用过程中,不会被删掉,虽然这么说很傻,但有时真有这种安装时需要用到,而使用时会被某些功能删掉的情况,总之我就有。
安装以上步骤生成的安装包,若程序更改后再次生成的安装包,安装时会提示已经安装了该产品的另外一个版本,此时则需要使用控制面板或卸载程序卸载掉旧包,然后才能安装新包。
若程序更改想要直接覆盖升级,则需要修改 Setup 项目属性,将 Version 改为大于原版本号,修改后系统会自动提示是否修改 ProductCode,此时点“是”,此时生成的安装包运行则不会再提醒了。
到这一步还未完,虽然此时未卸载旧包可以直接安装了,但是安装后的 dll 和 exe 仍然是旧版本的 dll、exe,要解决这个问题则修改所有程序集的版本号(项目右键属性-->应用程序-->程序集信息)(如下图),修改程序集版本和文件版本,大于原版本号即可。然后重新生成的安装包就可以不用卸载直接覆盖升级啦。
至此,打包就已经圆满结束。
打完收工~~~