本文介绍了如何在Visual Studio 2017中,使用部署工具Visual Studio Installer打包项目,生成软件安装包。
用Visual Studio Installer打包的过程还是挺繁琐的,并不是很方便。不过这个工具的使用的方法不是很难,对初学者来说比较友好。
目录
- 1 安装部署工具
- 2 创建部署项目
- 2.1 添加项目输出
- 2.2 添加项目文件
- 2.3 属性设置
- 3 创建快捷方式
- 3.1 在桌面创建快捷方式
- 3.2 在用户菜单创建快捷方式
- 3.3 设置开机启动
- 4 DotNet安装
- 5 添加卸载程序
- 7 自定义安装
- 8 生成软件安装包
1 安装部署工具
在Visual Studio的菜单栏中, 选择”工具” –> “扩展和更新”
选择”联机”, 搜索: Visual Studio Installer, 下载Microsoft Visual Studio Installer Projects,安装工具,重启Visual Studio
2 创建部署项目
为解决方案添加新建项目, 在"其他项目类型"中找到Visual Studio Installer
模板可以选择Setup Project或Setup Wizard,Setup Wizard只是比Setup Project多了些引导,最终的项目结构没有区别
2.1 添加项目输出
在文件系统中, 右键点击” Application Folder”应用程序文件夹, 选择”Add” –> “项目输出”
在弹出窗口中, 选择需要打包的项目, 然后选择”主输出”, “确定”, 即可添加该项目的exe可执行文件. 其他的”本地化资源”和”内容文件”等可以根据需要进行添加
2.2 添加项目文件
右键点击”Application Folder”文件夹, 选择”Add” –> “文件”, 添加需要安装的项目的文件
如果有子文件夹, 需要”Add” –> “Folder”, 新建子文件夹, 重命名, 然后再添加子文件夹里的文件。但这样的添加方法在子文件夹数量很多的时候非常不方便。
2.3 属性设置
在Setup1的属性窗口中, 需要修改的属性主要有:
Author和Manufacturer, 分别是作者和制造商, 修改为公司名称。
ProductName, 产品名称, 修改为项目名称. 该名称会出现在安装对话框的标题栏以及卸载程序列表中
TargetPlatform, 根据项目的平台进行修改, 可设为x64或x86
Version, 版本号 (如果改了版本号请根据提示修改ProductCode, 否则安装新版和卸载旧版的时候会出问题)
RemovePreviousVersion, 是否移除之前的版本, 修改为True, 可避免同时安装相同软件的多个版本
在”Application Folder”的属性窗口中, DefaultLocation属性可以修改程序的默认安装位置.
3 创建快捷方式
右键点击主输出, 选择”Create Shortcut to 主输出 from…”, 为主输出创建快捷方式, 然后进行重命名。
快捷方式默认的图标很丑,修改图标的方法为:先在应用程序文件夹添加图标文件, 然后在快捷方式的属性窗口中, 将Icon属性设置为刚刚添加的图标文件
3.1 在桌面创建快捷方式
将新创建的快捷方式拖拽到”User’s Desktop”文件夹中即可
3.2 在用户菜单创建快捷方式
在” User’s Programs Menu”文件夹中添加子文件夹, 命名为公司的名称
为主输出新创建一个快捷方式, 并把将其拖拽到新建的子文件夹中
3.3 设置开机启动
右键点击根目录"File System on Target Machine" –> ”add special folder” –> ”用户的启动文件夹”, 创建用户的启动文件夹
为主输出新创建快捷方式, 然后把快捷方式放到启动文件夹中
4 DotNet安装
在解决方案资源管理器中, 右键点击Setup1项目, 选择”属性”.在弹出的对话框中, 点击” Prerequisites”, 打开系统必备对话框
如果不想在安装前自动安装DotNet, 可以把”创建用于安装系统必备组件的安装程序”的勾去掉, 那么这部分剩下的说明就可以不用看了。
如果想要在安装前自动安装DotNet, 先根据需要选择DotNet的版本, 然后选中”从与我的应用程序相同的位置下载系统必备组件”. 这个设置需要把DotNet离线安装包下载到本地, 并放到相应的文件夹中,具体的步骤如下:
- 下载相应版本的DotNet的Runtime离线包和中文包, 两个包都要下载。DotNet下载地址
- 然后把离线包"…-ENU.EXE"复制到"C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX…"中, 注意要放在相应的DotNetFX文件夹中
- 最后把中文包"…-CHS.EXE"复制到该目录下的” zh-Hans”文件夹中
另外, 如果选的是”从组件供应商的网站上下载系统必备组件”, 在安装的时候就会联网下载安装包,就不需要这么麻烦了。然而我在测试的时候发现这个下载的速度很慢,一直卡在零,所以最后还是选择了”从与我的应用程序相同的位置下载系统必备组件”
5 添加卸载程序
要卸载安装的软件,可以通过控制面板进行,还可以再次运行安装包进行卸载。
为了方便用户使用, 可以再多提供一个通过卸载程序进行卸载的方式。添加卸载程序的方法如下:
- 首先在"C:\Windows\System32" 中找到”msiexec.exe”, 复制到工程的目录中, 然后该程序添加到”Application Folder”中, 并创建一个快捷方式, 重命名为”UnInstall”s
- 最后, 在属性窗口中复制Setup1的ProductCode属性, 粘贴到Uninstall的Arguments属性里, 并在前面加上”/x ”, 注意:x后面有一个空格.
7 自定义安装
如果想要实现自定义安装的功能, 也就是说在安装时可以选择哪些文件要安装, 哪些文件不安装, 可以按以下的步骤修改安装条件.
- 添加对话框
在解决方案资源管理器中, 右键点击Setup1项目, 选择”View” -> “用户界面” - 右键点击Start节点, “添加对话框” -> “复选框(A)”, 即可添加复选对话框. 拖拽复选框(A), 将其移动到”安装文件夹”之上, 这样该对话框就会在选择安装文件夹之前出现
在“用户界面”这里可以对安装流程进行修改, 如果想要减少用户的点击操作, 提升用户体验, 可以根据需要去掉一些不必要的对话框, 例如删除”欢迎使用”和”确认安装”对话框. - 修改对话框
“复选框(A)”对话框的初始界面如下所示,但在Visual Studio的设计器中看不到这个对话框, 在生成安装包并进行安装时才可以看这个对话框。 - 可以通过修改对话框的属性来修改对话框的界面,如下所示:
BannerText: 对话框头部的文本, 可以修改为”自定义安装”。
BodyText: 对话框主体的文本, 可以修改为类似”是否安装下列文件? 如果不选中,则不会安装”这样的提示文本
Checkbox1Lable: 复选框的文本, 修改为可自定义安装的文件的名称
Checkbox1Property: 该复选框的标识名称, 在设置安装条件时会用到这个名称
Checkbox4Visible: 如果不需要那么多的复选框, 可以将其设为False - 修改文件的安装条件
把需要设置自定义安装的文件添加到”Application Folder”文件夹中, 在属性窗口中修改该文件的Condition属性, 例如设为”CHECKBOXA1=1”, 这样只有当对话框的第一个复选框被勾选了的时候, 才会安装该文件. 而”CHECKBOXA1”就是复选框(A)对话框的Checkbox1Property属性值
8 生成软件安装包
在解决方案资源管理器中, 右键点击Setup1项目, 选择"生成"或"重新生成".
如果要进行安装包的测试, 可选择该右键菜单的"安装"; 如果要卸载安装的软件, 就选择该右键菜单中的”卸载”.
参考资料:
https://aka.ms/vdproj-docshttps://blog.csdn.net/dog123xuheyin/article/details/85008071