VS程序打包(使用InstallerProjects制作安装包)、自定义安装程序类、不用卸载旧包直接覆盖升级

VS安装包制作介绍(使用InstallerProjects制作安装包)

一、介绍

功能:Installer Projects 是一个用于发布VS项目的官方扩展,可以将VS中开发的程序打包成标准的windows安装包,分发给用户安装。

版本:VS2013之前的版本默认自带Installer功能,VS2013之后的版本默认是不包含Installer模板的,所以需要自行去安装。

安装方法:

1、打开VS,选择 扩展-->管理扩展-->联机 (或者选择 工具-->扩展和更新-->联机),搜索Microsoft Visual Studio Installer Projects,进行安装,安装好之后,重启vs

2、去官网下载VS对应版本的InstallerProjects,在此附上适用于VS2017VS2019InstallerProjects下载地址https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects

二、制作安装包

2.1添加Setup项目

2.2 配置 Setup 项目
1. Author 一般填公司名,会使用其作为软件安装目录名
2. ProductName 应用程序名称,会使用其作为软件安装目录名
3. Localization 指定软件运行地语种
4. TargetPlatform 指定软件目标平台 x86 or x64
5. Version :发布版本号
6. InstallAllUsers True 效果:“控制面板”程序中会显示公司的名称,安装时默认为“任何人”
7. ProductCode 默认给出无需修改,当 Version 变动时会提示更改
根据以上配置系统安装目录默认为: [ 系统主目 ]\[Author]\[ProductName] ,安装时会创建两层的文件路径

 

 
2.3 文件夹说明
1. Application Folder 应用程序包含的文件设置。
2. User's Desktop 用户桌面快捷方式设置。
3. User's Programs Menu 用户启动菜单的快捷方式设置。
 
2.4 文件类型
1. Folder 添加目录
2. 项目输出: 将选中项目生成 dll 或者 exe
3. 文件: 按照原格式输出,添加额外的依赖文件( html 、不被主程序所引用的 dll exe 等)
4. 程序集: 选择指定版本程序集输出

 

2.5快捷方式生成步骤
1. Application Folder 文件夹中选中主输出右键生成快捷方式,将快捷方式移至 User‘s Desktop

User‘s Programs Menu文件夹中(如下图所示)

2.设置快捷方式属性,修改快捷方式名称和图标(.ico格式),如下图

 

2.6添加卸载程序
1. 卸载功能实现: C:\Windows\System32\msiexec.exe
2. Application Folder 文件夹中添加 msiexec.exe ,创建快捷方式,并设置属性 Arguments=/x {1028BF2E-832F-4B79-8D54-01CFB4BB30EC}  

(备注:{1028BF2E-832F-4B79-8D54-01CFB4BB30EC} Setup项目属性中的ProductCode,当项目属性中ProductCode改变时,卸载这里的Arguments需要跟着改变)

2.7依赖框架
  1. 右键Setup项目-->属性-->Prerequisites
  2. 在系统必备的窗体中,勾选Framework 4.6(开发的应用程序所使用的Framework版本,示例中为4.6),选择从组件供应商的网站上下载系统必备组件(此选项会提示客户去微软官网下载Framework 4.6 )。
  3. 指定系统必备组件的安装位置其他选项:需要提前把Framework 指定版本的安装包下载下来放置相应目录下
  4. 启动条件:右键Setup项目-->View-->启动条件,.NET Framework属性Version改为.NET Framework 4.6(与系统必备Framework版本一致)

 

生成安装包

1、以上配置完成,编译Setup项目即可在“Setup项目/Release”生成安装包。

 

2setup.exeSetup.msi的区别

msi文件时windows installer开发出来的程序安装文件,它可以让你安装、修改、卸载你所安装的程序,也就是说VS工具打包生成的msi文件就是windows installer的数据包,把所有和安装文件相关的内容封装在一个包里。VS工具打包生成的exe文件是主要是用于检查安装的环境(系统必备),当安装的环境检查成功后,会自动再安装msi文件。

3、补充(无需卸载旧包直接覆盖升级):安装以上步骤生成的安装包,若程序更改后再次生成的安装包,安装时会提示已经安装了该产品的另外一个版本(如左下图),此时则需要使用控制面板或卸载程序(2.6中有介绍)卸载掉旧包,然后才能安装新包。若程序更改想要直接覆盖升级,则需要修改Setup项目属性(2.2 配置Setup项目中有介绍),将Version改为大于原版本号,修改后系统会自动提示是否修改ProductCode(如右下图),此时点“是”,此时生成的安装包运行则不会再提醒左下图了。

到这一步还未完,虽然此时未卸载旧包可以直接安装了,但是安装后的dll和exe仍然是旧版本的dll、exe,要解决这个问题则修改所有程序集的版本号(程序集右键属性-->应用程序-->程序集信息)(如下图),修改程序集版本和文件版本,大于原版本号即可。然后重新生成的安装包就可以不用卸载直接覆盖升级啦。

自定义安装程序类

制作安装程序时,可以添加自定义安装程序类,在此类中编写安装过程中的一些自定义操作。
添加自定义安装操作类。
打开 Installer ,这个 class Installer 继承自 System.Configuration.Install.Installer ,里面就一个构造函数。现在安装程序不能完成的功能,都可以在这个类写代码来自己实现。 
 
 

打包程序增加自定义操作

1.Setup项目右键-->View-->自定义操作,可以看到有四个子项:安装、提交、回滚、卸载,如右图所示

2.Install上点击右键-->添加自定义操作-->Application Folder -->【主输出这样,重新生成后,安装之后就会执行 OnBeforeInstall OnAfterInstall BeforeInstall事件、 AfterInstall事件的代码了。)

CustomActionData 属性

自定义操作的附加数据,读取自定义操作的安装信息,需采用/name=value 的格式。多个值必须以单个空格隔开:/name1=value1 /name2=value2。如果值内有一个空格,则必须加引号:/name=a value”

举例:获取程序安装路径: /name=“[TARGETDIR]\”   代码中引用参数: this.Context.Parameters["name"];

InstallerClass 属性

为了使自定义操作被视为安装组件,必须将 InstallerClass 属性设置为 true。(该属性默认为true

 

 

 
 

 

 

 

 

 

 

 

 

 

  • 23
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
### 回答1: 将Qt程序打包安装包的过程可以分为以下几个步骤: 1. 准备好Qt程序的可执行文件和所需的依赖文件。确保程序可以在目标机器上独立运行,并且没有缺失的依赖项。 2. 创建一个安装目录,用于存放将要打包的文件。可以自定义目录结构,例如bin目录用于存放可执行文件,lib目录用于存放依赖库等。 3. 将Qt程序的可执行文件和依赖文件复制到安装目录中。确保文件路径与原本程序的路径一致。 4. 创建一个安装脚本或者使用Qt提供的打包工具,例如Qt Installer Framework。安装脚本可以定义安装过程中需要执行的操作,例如创建快捷方式、添加环境变量等。如果使用Qt Installer Framework,可以使用其提供的界面编辑器创建安装向导界面。 5. 对安装目录进行压缩,生成安装包。可以选择使用zip、tar或者其他的压缩格式。确保生成的安装包可以在目标机器上解压缩。 6. 将安装包进行测试,在目标机器上进行安装和运行测试,确保打包程序能够正常工作。 总结起来,将Qt程序打包安装包的过程包括准备程序和依赖文件、创建安装目录、复制文件到安装目录、编写安装脚本或使用打包工具、压缩安装目录并进行测试。 ### 回答2: Qt是一个跨平台的C++开发框架,可以方便地开发出图形界面应用程序。Qt程序可以通过打包安装包的方式进行分发和安装,以便用户可以方便地安装和使用。 Qt提供了一个工具Qt Installer Framework来创建安装包使用该工具,我们可以按照以下步骤打包Qt程序安装包: 1. 首先,我们需要创建一个安装包项目。在创建项目的过程中,我们需要提供一些基本信息,例如程序名称、版本号、制造商等等。这些信息都会在安装包中显示。 2. 接下来,我们需要定义安装包的组织结构。这包括安装目录、文件和文件夹的布局,以及依赖关系。我们可以自定义安装目录的结构,将文件和文件夹放置在适当的位置。 3. 然后,我们可以添加预定义的安装步骤,例如许可协议的接受、安装路径选择、组件选择等等。这些步骤将在安装过程中显示给用户。 4. 我们还可以自定义安装包的界面。Qt Installer Framework提供了一个XML文件来定义安装包的界面,我们可以根据需要进行修改和定制。 5. 完成以上步骤后,我们可以使用Qt Installer Framework提供的工具将安装包编译为可执行文件。这个可执行文件就是我们最终生成的安装包。 最后,我们可以将生成的安装包分发给用户,让用户可以方便地进行安装和使用。 总而言之,通过使用Qt Installer Framework,我们可以方便地将Qt程序打包安装包,以方便用户进行安装和使用。 ### 回答3: 要将 Qt 程序打包安装包,可以按照以下步骤进行操作: 1. 确保在 Qt Creator 中配置好项目的构建工具,如编译器和目标平台。 2. 在 Qt Creator 中选择“发布”或“构建”选项,进入构建设置页面。 3. 在构建设置页面中,选择正确的构建配置,如Release。 4. 在构建设置页面中,选择“Windeployqt”工具,并勾选“启用”。 5. 确保 Qt Creator 能够找到 “windeployqt” 工具。通过“工具”菜单 -> “选项” -> “Kits” 设置页面,查看当前配置是否有正确的路径。 6. 点击“构建”按钮开始构建应用程序。 7. 构建完成后,进入构建输出目录,应该会有生成的可执行文件以及一些依赖的 Qt 动态链接库。 8. 运行 “windeployqt” 工具,该工具会自动查找可执行文件中使用到的 Qt 动态链接库,并将它们拷贝到一个指定目录中。 9. 拷贝完所有依赖文件后,可以将生成的这个目录压缩成一个 ZIP 文件,或者使用其他打包工具(如Inno Setup,NSIS等)制作一个安装包,按照安装包制作工具的指引进行操作。 10. 安装包制作完成后,用户可以通过安装包安装程序,并在目标机器上运行 Qt 程序。 总之,将 Qt 程序打包安装包的关键是使用 “windeployqt” 工具自动查找和拷贝依赖的 Qt 动态链接库,然后使用打包工具将生成的文件打包成一个安装包,方便用户安装和使用
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值