Windows安装包制作指南——Advanced Installer的使用
1. 前言
最近需要制作windows的安装包,据说Advanced Installer比较强大,遂拿它来制作安装包。在网上少量资料以及官网简约文档中摸索前进,总算是制作出可用的安装包,在此记录,仅供参考。
Advanced Installer版本: Advanced Installer 11.0, 目前的最新版是13.1,不过大同小异。
2. 安装包制作
2.1 新建工程
由于希望能够自己定制一些安装界面,我们选择Professinal版本,语言选择中文,然后创建工程:
2.2 产品详情
填写产品的基本信息,包括名称,版本,公司等:
2.3 安装参数
产品详情填好后,在左侧选择安装参数。咱们主要看右侧面板中“安装文件夹”->“应用程序文件夹”里面的内容:“[ProgramFilesFolder][Manufacturer]\[ProductName]”, 这个内容表示安装时默认的安装路径:
[ProgramFilesFolder] 表示 C:\Program Files(x86)
[Manufacturer] 表示公司名称,也就是2.2中填写的TestCompany
[ProductName] 表示产品名称,也就是2.2中填写的TestApp
那么默认显示的安装路径就是“C:\Program Files(x86)\TestCompany\TestApp”。
2.4 运行环境
左侧的数字签名、更新程序、升级和授权暂时不是关注的重点,先略过。Advanced Installer对运行环境提供了非常好的支持,我们可以选择任何需要的环境。待安装包制作完毕,运行安装包时会自动运行依赖的环境:
2.5 文件和文件夹
左侧的启动条件和合并模块暂时不是关注的重点,先略过。文件和文件夹里面放的就是我们的项目文件,可以选择新建或添加:
添加文件后,可能会是这样的:
2.6 对话框
由于我们希望能够自制对话框,需要切换成开发版。点击“项目”->"选项",在弹出的界面中,选择“项目类型”->“开发版”
假设我们要在选完安装路径后新增一个对话框,那么在右侧的FolderDlg右键,选择“新建对话框”:
让我们在对话框上添加两个输入控件,一个希望是必填的,另一个希望是选填的。注意右侧的属性名称,它是实现“必填”功能所必须关注的变量:
那么什么时候对输入框中是否有输入进行判断呢?应该是在用户点击“下一步”的时候。所以选择“下一步”,关注下方的“发布事件”:
我们需要新建一个事件,这个事件的作用是:如果必填项没有内容,那么弹出一个对话框来提示用户需要输入。想要做到这一点,点击“新建”。在新弹出的界面中选择“显示特定子对话框”,勾选“显示整个条件”,然后再条件中填写“NOT EDIT_1_DROP”。EDIT_1_DROP这个变量就是之前必填输入控件,前面加NOT的意思就是,如果这个输入控件没填内容,就弹出子对话框。
点击“确定”就可以了。
2.7 注册表
我们已经限定了必填项和选填项,但是又有疑问了,用户填写的内容保存在哪呢?我们能从什么地方读到这些变量呢?
这时候注册表就派上用场了,把用户输入的内容关联到注册表的相应变量中不就搞定了吗?Advanced Installer恰恰提供了这种机制。
在左侧选择“注册表”,我们可以看到右侧的注册表中已经有了两个变量Path和Version,分别是安装路径和版本。
然后在右侧的“[ProductName]”右键弹出菜单,点击“新建值”,
在弹出的窗口中,“名称”填写一个希望在注册表中被看到的名称,比如“RequiredValue”。再点击“属性”,选择之前自定义的对话框中的控件名称(就是咱们)。
创建好后如下:
2.8 自定义操作
梳理下刚刚的流程,用户在输入框中输入了内容,点击下一步后,这些内容被保存到注册表的相应位置。然后这些变量要用起来了,一种可能的场景就是,在安装结束时,我希望去执行自定义的脚本,这个脚本会从注册表中读取这些变量,并基于这些变量对项目文件做初始化。
那么执行自定义脚本就需要Advanced Installer的“自定义操作”来帮忙,在左侧选择自定义操作,然后在菜单栏单击“新建自定义操作向导”:
在弹出的面板中点击“下一步”,然后根据自己要执行的脚本或文件选择不同类型:
然后点击下一步,根据情况选择:
然后点击如图按钮选择源文件:
然后下一步,根据需要选择,再下一步,完成。完成后,在右侧界面中可以选择必要的选项,比如说隐藏窗口,或者是以管理员身份运行等。
2.9 构建和运行
如图,点击1呢是构建安装包,构建的目录默认是在“我的文档\Advanced Installer\Projects\TestApp\setup-SetupFiles"中,其中TestApp是项目名称。
点击2呢是构建并运行安装包,用作测试这个安装包是否可用。
3 总结
至此我们打出了windows 32位的有自定义界面的并能调用特定脚本的包。Advanced Installer还提供了各种强大功能,比如说能打出x86\x64混合包等,有待进一步探索。
Windows安装包制作指南——Advanced Installer的使用的更多相关文章
- C# Note19: Windows安装包制作实践
前言 最近在项目中需要不断更新新版本的software installer(软件安装包),于是便查阅资料,整理了下制作方法. NSIS安装包制作脚本 NSIS(Nullsoft Scriptable ...
- Windows Developer Day - MSIX and Advanced Installer
前面一篇我们介绍了 Adaptive Cards 的基础知识,而在 Windows Developer Day 的 Modern Application Experience 环节,还有一个需要划重点 ...
- [程序安装包制作] Advanced Installer 备忘
原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前, ...
- Mac OS平台下应用程序安装包制作工具Packages的使用介绍
一.介绍 Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Ins ...
- 安装包制作工具 SetupFactory使用1 详解
2014-11-19 Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows ...
- WinFrom 安装包制作
1.添加安装向导项目打开文件系统界面,选择应用程序文件夹.在右侧右击->添加->文件,把程序需要的文件都添加进来. 2.右击程序集->创建快捷方式.右击快捷方式->属性窗口-& ...
- 安装包制作工具 SetupFactory 详解
Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows 系统的注册表加入内容 ...
- VS2010安装包制作
最近对软件安装包制作研究了一下,下面记录了一种比较简单,不用写代码的方法. 1.New Project---->Other Project Types ---->Visual Studio ...
- 使用Setup Factory安装包制作工具制作安装包
在我们开发完软件后,除了极个别案例我们把整个目录复制给客户用外,我们一般都需要做成安装包,方便整个软件的部署操作,以安装包的部署操作可能简单的是复制文件,也可能包括一些注册表.数据库等额外的操作,不过 ...
随机推荐
- php注意事项
1. 不要使用mysql_函数 这一天终于来了,从此你不仅仅"不应该"使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数 ...
- python3 登录接口
登录接口 功能: 输入用户名(有一个用户名及对应的密码表) 认证成功后显示欢迎信息 输错三次后锁定(即第四次提示该账户已被锁定)用户登录锁定记录写到一个文件中. 用到:自定义函数.列表.字典 #Au ...
- Spring事务管理者与Spring事务注解--声明式事务
1.在Spring的applicationContext.xml中配置事务管理者 PS:具体的说明请看代码中的注释 Xml代码: <!-- 声明式事务管理的配置 --> <!-- 添 ...
- 回顾CSS布局易混淆的概念
一.浮动模型 元素默认是static的,不能浮动,但可以用CSS样式设置为浮动 浮动模型只有两个值 float:left 和 float:right ,可以让块状元素同行显示 二.层模型 top/bo ...
- 关于makefile
0 Makefile概述 -------------------------------------------------------------------------------- 什么是mak ...
- wpf中UserControl的几种绑定方式
我们经常会抽取一些可重用的控件,某个属性是否需要重用,直接决定了这个属性的绑定方式. 1.完全不可重用的控件 有一些与业务强相关的控件,它们的属性完全来自ViewModel,越是相对复杂的控件,越容易 ...
- sql2008 无法附加数据库
sql2008 因为数据库正在使用,所以无法获得对数据库的独占访问权---还原或删除数据库的解决方法 数据库还原出现 3154错误 --主备份 --RESTORE DATABASE [NET_CN] ...
- The data is said to include information from networks
The data is said to include information from networks as well as from individual computers and smart ...
- Libgdx 开发指南——目录
本系列文档选译自libgdx github项目 wiki : https://github.com/libgdx/libgdx/wiki 由于关于Libgdx的中文文档非常稀缺,因此在这里对官方Wik ...
- POJ 1236 SCC+缩点
题意:一张有向图,一问至少给几个点发送软件,才能让所有点都能收到软件:二问是至少添加几条边才能让整个图是一个连通分量: 分析:一般求连通分量都会求缩点,在这里缩点之后,生成一张新的图,在新的图中求每一 ...