使用VS2010的打包方案之前已经讲过,连接如下:
https://blog.csdn.net/u014453443/article/details/104497457
该方案无法应用在VS2017/VS2019上,已经进行测试,无法生成安装包
最主要的区别是在Application Folder(应用程序文件夹)添加的文件不一样,VS2017/VS2019打包过程如下:
1.在右上角解决方案上 右键--添加--新建项目--Setup Project,如下图所示
填写项目名称及位置,点击创建,如下图所示:
2. 点击创建之后弹出如下图所示:
3. 在项目Setup上点击右键,属性,弹出如下对话框
4.点击Prerequisites...按钮选择需要条件,弹出如下窗口,选择必备组件及组件安装位置,选择确定
5. 回到如下界面,点击应用,然后再点击确定,返回到主界面
属 性 |
说 明 |
Output file name |
在编译项目时生成的msi或msm文件的名称 |
Package file |
这个属性允许指定如何打包文件。其选项有: As loose uncompressed files:所有的部署文件都在同一个目录下存储为.msi文件; In setup file:文件打包到.msi文件中(默认设置); In cabinet files:文件打包到同一目录下的一个或多个cab文件中。选择这个选项时,CAB size选项就是可用的 |
Bootstrapper |
这个属性允许指定Bootstrapper是否包含在安装文件中。Bootstrapper提供了Windows Installer 2.0版本。其选项是: None:不包含Bootstrapper Windows Installer Bootstrapper:包含用于在客户PC上安装应用程序的Bootstrapper(默认设置) Web Bootstrapper:用于从Web上下载应用程序的Bootstrapper。选择这个选项时,会显示一个对话框,要求输入安装信息和(可选)升级URL。 |
Compression |
这个属性指定所包含文件的压缩样式。其选项如下: Optimized for speed:用于较大的文件,安装时间较短(默认设置) Optimized for size:用于较小的文件,安装时间较长 None:不压缩 |
CAB size |
Package file属性设置为In cabinet files时,这个属性就会被激活。它不仅可以创建一个cabinet文件,还可以设置每个cab文件的最大尺寸 |
Authenticode Signature |
在选中这个属性时,部署项目的输出就使用Authenticode标记,默认设置为不选中 |
Certificate file |
用于签名的证书 |
Private key file |
包含签名文件的数字加密键的私有键 |
Timestamp server URL |
Timestamp服务器的URL |
6. 选中应用程序文件夹--右键--Add--项目输出,如下图所示:
7. 在弹出界面上选择主输出,如下图所示,选择确定
8.这时候会在右边生成主输出文件,如下图所示:
9.创建快捷方式,在主输出上右键--Create Shortcut to 主输出 from UserClientGUI
10.生成的快捷方式如下图所示
11. 选中快捷方式--属性--Name改为UserClientGUI,更改后如下图所示
12. 添加应用程序图标ico,在应用程序文件夹上右键--Add--文件,如下图所示
13. 选中图标1.ico文件,添加后如下图所示
14. 设置ico,在应用程序文件夹右侧选中UserClientGUI快捷方式--右键属性--Icon--Browse,如下图所示
15. 点击Browse,如下图所示:
16. 选中应用程序文件夹,然后选中1.ico,再次点击OK,如下图所示
17. 于是返回到上级目录,这时候刚才的界面上已经出现了ico图标了,点击OK,如下图所示
18. 此时快捷方式已经创建好了,拖住UserClientGUI,拖到左侧User's Desktop(用户桌面)文件夹下,如下图所示
19. 按照同样的方式再次创建UserClientGUI快捷方式,如下图所示,本次创建快捷方式用于添加启动栏
20. 在User's Programs Menu(用户的程序菜单,也就是启动栏) 文件夹上右键--Add--Folder,如下图所示
21. 将生成的文件夹更改为UserClientGUI,如下图所示
22. 同样将应用程序文件夹下的UserClientGUI快捷方式拖动到 User's Programs Menu下的UserClientGUI文件夹下,如下图所示
23. 拖动好的UserClientGUI文件夹下的文件如下图所示
24. 添加卸载程序。同样在Application Folder上右键--Add--文件,如下图所示:
25. 选择C盘Windows--system32下的msiexec.exe,如下图所示:
26. 添加好的msiexec.exe如下图所示:
27. 在msiexec.exe上右键--Create Shortcut to msiexec.exe创建快捷方式,如下图所示:
28. 选中创建好的快捷方式,将名字更改为卸载,如下图所示:
29. 添加控制面板图标,在Setup项目上右键--属性--AddRemoveProgramsIco上选择Browse,选择图标,如下图所示
30. 在属性中找到ProductCode,复制里面的数据,如下图所示
31. 在Application Folder中找到卸载快捷方式--右键属性--找到Arguments,/x+空格+粘贴,如下图所示:
32. 将卸载快捷方式拖拽到User's Programes Menu下的UserClientGUI文件夹下,如下图所示:
33. 对Setup项目属性说明如下:
项 目 属 性 |
说 明 |
AddRemoveProgramIcon |
显示在“添加/删除程序”对话框中的图标 |
Author |
应用程序的编写者。这个属性设置通常与Manufacturer的相同,它显示在msi软件包的Properties对话框中的Summary页面上,以及“添加/删除程序”对话框的SupportInfo页面上的Contact字段中 |
Description |
这是一个形式自由的文本字段,描述了要安装的应用程序或组件。这些信息显示在msi软件包的Properties对话框中的Summary页面上,以及“添加/删除程序”对话框的SupportInfo页面上的Contact字段中 |
DetectNewerInstalledVersion |
这是一个布尔值,设置为true时,将检查是否已安装了应用程序的更新版本,如果是,就停止安装过程 |
InstallAllUsers | 设置为True ,这样在“控制面板”程序中会显示公司的名称;在安装时会默认为“任何人”,否则默认为“只有我”) |
Keywords |
可用于在目标计算机上搜索msi文件。这些信息显示在msi软件包的Properties对话框中的Summary页面上 |
Localization |
用于字符串资源和注册设置的地域。这会影响安装程序的用户界面 |
Manufacturer |
生产应用程序或组件的公司名称,该项目属性的设置。一般与Author属性中指定的信息相同。这些信息显示在msi软件包的Properties对话框中的Summary页面上,以及“添加/删除程序”对话框的SupportInfo页面上的Publisher字段中,用作应用程序默认安装路径的一部分 |
ManufacturerURL |
一个Web站点的URL,该站点与要安装的应用程序或组件相关 |
ProductCode |
应用程序或组件的惟一的字符串GUID。Windows Installer使用这个属性标识应用程序的后续升级或安装 |
ProductName |
描述应用程序的名称,在“添加/删除程序”对话框中用作应用程序的描述,还用作默认安装路径的一部分:C:\Program Files\ Manufacturer\ ProductName |
RemovePreviousVersions |
一个布尔值,如果设置为true,就检查计算机上是否安装了应用程序的以前版本。如果是,就调用以前版本的卸载功能,之后继续安装。这个属性使用ProductCode和UpgradeCode确定是否卸载。 |
SearchPath |
一个字符串,表示从属程序集、文件或合并模块的搜索路径。在开发机器上建立安装软件包时使用该属性 |
Subject |
与应用程序相关的其他信息。这些信息显示在msi软件包的Properties对话框中的Summary页面上 |
SupportPhone |
为应用程序或组件提供支持的电话号码。这些信息显示在“添加/删除程序”对话框的SupportInfo页面上的Support Information字段中 |
SupportURL |
为应用程序或组件提供支持的URL。这些信息显示在“添加/删除程序”对话框的SupportInfo页面上的Support Information字段中 |
TargetPlatform | 指运行平台,默认为x86,Linux可以选择x64 |
Title |
安装程序的标题。它显示在msi软件包的Properties对话框中的Summary页面上 |
UpgradeCode |
一个字符串GUID,表示同一应用程序的不同版本共享的标识符。对于应用程序的不同版本或不同语言版本,不应修改UpgradeCode,该属性被DetectNewerInstalledVersion和RemovePreviousVersions使用 |
Version |
安装程序、cab文件或合并模块的版本号。注意它不是要安装的应用程序的版本号 |
34. 在应用程序上点击左键,如下图:第一个为系统主目录(默认C:\Programe),第二个为公司名([Manufacturer]),第三个为应用程序名称,这样在安装时就会创建两层的文件路径。需要删除DefaultLocation中的:[Manufacturer] 。删除后只有应用程序的名称。
35. 添加安装时背景图片,在项目Setup上右键--View--用户界面,如下图所示
36. 弹出界面如下
37. 左键选中欢迎使用,在属性BannerBitmap选择图片,如下图所示:
38. 用同样的方式为安装文件夹、确认安装、进度、已完成添加图片
39. 在Setup项目上点击右键--重新生成,在Debug目录下会生成安装包,如下图所示,
40. 点击setup应用程序(安装包),另一个是安装引导程序,其中绿色就是刚才设置的欢迎使用的图片背景,如下图所示:
41.点击下一步后弹出安装位置界面,通过点击浏览选择安装位置,如下图所示
42. 点击下一步弹出确认安装界面,如下图所示:
43. 点击下一步后弹出安装完成界面,到此表示安装结束,如下图所示:
44. 这时会在桌面上生成安装图标,在启动栏生成UserClientGUI文件夹,文件夹下有安装的应用及卸载方式,在控制面版也会显示新增加的应用程序,如下图所示: