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的使用的更多相关文章

  1. C# Note19: Windows安装包制作实践

    前言 最近在项目中需要不断更新新版本的software installer(软件安装包),于是便查阅资料,整理了下制作方法. NSIS安装包制作脚本 NSIS(Nullsoft Scriptable ...

  2. Windows Developer Day - MSIX and Advanced Installer

    前面一篇我们介绍了 Adaptive Cards 的基础知识,而在 Windows Developer Day 的 Modern Application Experience 环节,还有一个需要划重点 ...

  3. [程序安装包制作] Advanced Installer 备忘

    原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前, ...

  4. Mac OS平台下应用程序安装包制作工具Packages的使用介绍

    一.介绍 Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Ins ...

  5. 安装包制作工具 SetupFactory使用1 详解

    2014-11-19 Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows ...

  6. WinFrom 安装包制作

    1.添加安装向导项目打开文件系统界面,选择应用程序文件夹.在右侧右击->添加->文件,把程序需要的文件都添加进来. 2.右击程序集->创建快捷方式.右击快捷方式->属性窗口-& ...

  7. 安装包制作工具 SetupFactory 详解

    Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows 系统的注册表加入内容 ...

  8. VS2010安装包制作

    最近对软件安装包制作研究了一下,下面记录了一种比较简单,不用写代码的方法. 1.New Project---->Other Project Types ---->Visual Studio ...

  9. 使用Setup Factory安装包制作工具制作安装包

    在我们开发完软件后,除了极个别案例我们把整个目录复制给客户用外,我们一般都需要做成安装包,方便整个软件的部署操作,以安装包的部署操作可能简单的是复制文件,也可能包括一些注册表.数据库等额外的操作,不过 ...

随机推荐

  1. php注意事项

    1. 不要使用mysql_函数 这一天终于来了,从此你不仅仅"不应该"使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数 ...

  2. python3 登录接口

    登录接口 功能: 输入用户名(有一个用户名及对应的密码表) 认证成功后显示欢迎信息  输错三次后锁定(即第四次提示该账户已被锁定)用户登录锁定记录写到一个文件中. 用到:自定义函数.列表.字典 #Au ...

  3. Spring事务管理者与Spring事务注解--声明式事务

    1.在Spring的applicationContext.xml中配置事务管理者 PS:具体的说明请看代码中的注释 Xml代码: <!-- 声明式事务管理的配置 --> <!-- 添 ...

  4. 回顾CSS布局易混淆的概念

    一.浮动模型 元素默认是static的,不能浮动,但可以用CSS样式设置为浮动 浮动模型只有两个值 float:left 和 float:right ,可以让块状元素同行显示 二.层模型 top/bo ...

  5. 关于makefile

    0 Makefile概述 -------------------------------------------------------------------------------- 什么是mak ...

  6. wpf中UserControl的几种绑定方式

    我们经常会抽取一些可重用的控件,某个属性是否需要重用,直接决定了这个属性的绑定方式. 1.完全不可重用的控件 有一些与业务强相关的控件,它们的属性完全来自ViewModel,越是相对复杂的控件,越容易 ...

  7. sql2008 无法附加数据库

    sql2008 因为数据库正在使用,所以无法获得对数据库的独占访问权---还原或删除数据库的解决方法 数据库还原出现 3154错误 --主备份 --RESTORE DATABASE [NET_CN] ...

  8. 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 ...

  9. Libgdx 开发指南——目录

    本系列文档选译自libgdx github项目 wiki : https://github.com/libgdx/libgdx/wiki 由于关于Libgdx的中文文档非常稀缺,因此在这里对官方Wik ...

  10. POJ 1236 SCC+缩点

    题意:一张有向图,一问至少给几个点发送软件,才能让所有点都能收到软件:二问是至少添加几条边才能让整个图是一个连通分量: 分析:一般求连通分量都会求缩点,在这里缩点之后,生成一张新的图,在新的图中求每一 ...