系统版本:Windows10 x64
开发工具:Visual Studio 2017
要用VS打包Winform首先需要确保安装了Visual Studio Installer Project(菜单栏——工具——扩展和更新)
![](http://iqotom.com/wp-content/uploads/2019/10/VS-Installer-02.png)
打包步骤
1. 新建Installer项目
![](http://iqotom.com/wp-content/uploads/2019/10/VS-Installer-01.png)
2. 右键Application Folder
添加项目输出
![](http://iqotom.com/wp-content/uploads/2019/10/WDT_G_01.png)
3.选择要打包的项目
![](http://iqotom.com/wp-content/uploads/2019/10/WDT_G_02.png)
4.会自动生成主输出和依赖库(如果有依赖)
![](http://iqotom.com/wp-content/uploads/2019/10/WDT_G_03.png)
5.添加项目需要的其他文件, 右键Application Folder
添加文件
![](http://iqotom.com/wp-content/uploads/2019/10/WDT_G_04.png)
![](http://iqotom.com/wp-content/uploads/2019/10/WDT_G_05.png)
6. 创建程序桌面快捷方式
右键主输出,选择创建快捷方式
,将生成的快捷方式剪贴到User's Desktop
,快捷方式属性Icon添加图标
![](http://iqotom.com/wp-content/uploads/2019/10/WDT_G_06.png)
7. 创建程序开始菜单
7.1 创建程序快速启动图标
这个跟创建桌面快捷方式的方法一样
7.2 创建程序卸载图标
a. 将C\Windows\System32\msiexec.exe
上传到Applicaiton Folder
b. 对msiexec.exe
重命名下,一般改名为“Uninstall.exe”
,然后创建快捷方式到User's Programs Menu
7.3 设置卸载参数
a. 在属性里面找到安装项目的ProductCode
b. 然后点击Uninstall
程序,修改属性参数Arguments
,值为"/x ProductCode"
设置开机启动
用修改注册表的方式来设置开机启动
1. 右键项目——View——注册表
![](http://iqotom.com/wp-content/uploads/2019/10/VS-Installer-06.png)
2. 添加如下字段到LOCAL_MACHINE,这个是所有用户,CURRENT_USER应该也可以(没测试过) \HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
(win10_64)
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
(win7_64)
![](http://iqotom.com/wp-content/uploads/2019/10/VS-Installer-07.png)
设置系统必备
一般我们开发的Winform程序都有一个目标框架,就是所依赖的.Net Framework版本环境,如.Net Framework 2.0/3.5/4.0/4.5等
要想我们的程序在电脑上正常运行,就得保证系统上装有指定的.net Framework版本框架。这个可以在安装包的属性中设置,启动安装前检查操作系统中是否安装了指定版本的框架或其他依赖,设置方法如下:
右键安装包项目,点开“Prerequisites”
![](http://iqotom.com/wp-content/uploads/2019/10/VS-Installer-08.png)
选择“从组件供应商的网站上下载系统必备组件”,这样一来,即使电脑上没有安装需要的.net Framework也不要紧,只要设置了这项,安装程序会自动从微软的官网上下载对应的组件并安装 。
在生成win7安装包时出现了警告:The target version of the .NET Framework in the project does not match the .NET Framework launch condition version ‘.NET Framework 4.6.1’. 说我的程序.net版本和启动条件版本不匹配。
![](http://iqotom.com/wp-content/uploads/2019/10/WDT_G_07.png)
这个警告会导致安装时需要下载.NET 4.6.1,但实际程序Net3.5就可以运行了。这个问题需要修改启动条件版本。右键工程——View——启动条件
![](http://iqotom.com/wp-content/uploads/2019/10/WDT_G_08.png)
选择.Net Framework启动条件版本与程序一致,比如程序需要3.5那么这里选择3.5就行了,再生成安装包就不会出现警告了。
![](http://iqotom.com/wp-content/uploads/2019/10/WDT_G_09.png)
生成安装文件
右键安装项目,选择重新生成
如果不出错,那么会在项目的Debug或Release文件夹生成安装文件
![](http://iqotom.com/wp-content/uploads/2019/10/VS-Installer-09.png)
Setup.exe里边包含了对安装程序的一些条件的检测,比如.net的版本是否支持,当条件具备后,setup.exe接着调用setup.msi进行安装。如果你确定条件都具备的话也可以直接运行setup.msi进行安装 。