v5.33总结-折腾是风险与惊喜并存

【需求】

    即将迎来2017的除夕夜,公司刚发布的是一个小的版本,在这个版本中我的工作是:用InstallShield制作新的安装包。

    为什么变更重新制作安装包的方式?是之前用XX插件(没去了解)做的安装包经常会被杀毒软件报病毒。

【初尝InstallShield】

原来也玩的做过安装包,用vs自带的工具去制作,在vs2013下,已经没有提供部署工具了,不过可以下载安装,一样的用。

这里写图片描述

既然需求已经指明是IS(InstallShield)来制作,那就去看看。

早在上一个版本中,因为个人对这个感兴趣,使用InstallShield2013LimitedEdition,这是一个轻巧的嵌入vs使用的版本,因为可以免费试用,是“可视化界面”引导的方式,Next/Next以及网上初级的资料较多,还是很容易做出一个demo。

在这个版本中,想用之前自己做的demo,发现工程无法使用,试用期到了,注册一下可以永久使用,那就去注册吧。

注册界面中的“国籍”一项是ComboBox,没有数据,需要翻墙……

翻墙后发现给的序列号没有作用……

有破解工具/方法,没用……

网上说可以打电话给中国区的客服解决,告知已经对该版本已经不在维护……

给官方发邮件,来回两三封,还是推荐使用最新版本……

这里写图片描述让我感慨一下这里,因为已有的demo,内心排斥新的版本,所以在怎么干掉试用期,花费了一段时间去……


【使用IS时遇到的事一:第三方软件打包】

 如何将.NET Framework或者其他更多的第三方打包到安装包中,如果目标机器没有,自动安装,且安装的版本与电脑位数一样?

这是一个系列问题。


 1.在IS中,提供了一大部分可供打包的第三方文件列表,以.prq文件的方式提供,在列表中勾选下载,便下载到你的本地IS路径SetupPrerequisites文件夹中。(.prq是个xml一样,里面记录了下载的地址路径等信息)

2.如果你需要的第三方软件不在此列表中,寻找该软件的.prq文件,放在SetupPrerequisites文件夹中,刷新IS的该列表即可。

3.在列表中勾选,且每个右键/属性都设置为从安装包中提取使用。

4.在生成安装包的时候,也设置为从安装包中提取软件。

这里就体现了IS的强大,安装包运行时,目标机器如果没有你勾选打包进去的第三方软件,会自动安装。且如果是x86的电脑,会安装x86的第三方软件,否则安装x64第三方软件,前提是该第三方软件的x86和x64版本都打包进去了。

【使用IS时遇到的事二:安装界面】

这里写图片描述 当我看到IS的logo,用IS做出一个安装包时,我才明白小时候玩的游戏和一些软件的安装包是用IS做的。

IS制作的安装包界面可以选择需要的Dialogs,也提供了一些theme,但是主体布局结构逃不开左右双栏结构。我替换素材,修改文字后,界面是美观了一点,但是还是无法忍受这种布局,且最不能让我忍受的是,每一个界面中有“InstallShield”的字样无法去掉。理解,但不愿意接受。

工期还有一段时间,我问Frank

这里写图片描述 Frank,为什么要用IS来做安装包,丑爆了。
这里写图片描述因为强大,可以满足我们的需求。
这里写图片描述我们的需求很简单。
这里写图片描述如果可以满足我们的需求,当然是越漂亮越好了。


【我对打包的理解】

当我用IS做出一个可以用于发布的安装包时,对打包有了一个系统的理解。
打包就是将vs下realease模式运行的文件加密后迁移至目标机器,且正常运行,在署个名。

这里写图片描述 填写基本信息

     a.软件名称
     b.公司名称
     c.软件版本号
     d.安装包、应用程序和卸载程序的icon

这里写图片描述软件文件

     程序集、config、数据库……

这里写图片描述部署软件运行环境

     .NET Framework、数据库

这里写图片描述其他(Core)

      软件安装默认的路径
      软件安装目录的结构
      安装时候美丽的界面
      创建桌面与任务栏的快捷方式
      软件是否可以重复安装
      软件是否可以在运行的时候卸载
      软件卸载的是否干净
      软件需要的第三方软件是怎么安装给用户
      ……

前三步是必须的,总结为:某人的某物在各种环境下可以正常运行。

这里写图片描述第四步并不是必须的,但是软件与软件的安装包用户体验就差距在了这里。


【尝试Inno Setup】

这里写图片描述在网上查找,别人的安装包是怎么做的?惊讶的发现,360、腾讯管家、PPTV等很多软件的安装界面风格很相似,尤其是有道云笔记、网易云音乐和QQ音乐,是一个有颜色的矩形,上面写点字,下面有简单的选项,安装过程是轮播图片。

这里写图片描述 Inno Setup也支持可视化的界面制作,制作步骤比IS简单多了,但相对功能也简单多了。采取脚本的方式制作,找到了一个成熟软件的安装包,本着”有轮子就不造轮子”的思想,尝试改改。支持pascal语言,用C#的底子尝试去改,变量名放前面,类型放后面,Boolean和vb一样,写方法签名是function和js一样(能看到“语言是共通的”影子,也让我坚定,要把C#精通才是目标。)

这里写图片描述两天的时间,居然真的该成功了。我在里面加入了一些自己需要的功能,核心是:

 - 打包.NET Framework,如果目标机器没有,运行安装包中.NET Framework的安装包。
 - 打包SqlCe,如果目标机器没有,是x86运行安装包中x86版本SqlCe安装包,是x64运行安装包中x64版本SqlCe安装包。
 - 打包VC++,如果目标机器没有,运行安装包中的VC++安装包。

这里写图片描述由此感慨为什么程序猿喜欢开源。因为开源,资料多一点,因为开源,可以自己定义。IS固然强大,但也是在故步自封。
还有一点:自己做的东西,一定要自己看得过去才行。


【使用Inno Setup遇到的事】

在打包VC++组件的时候,我也想让它像我打包的.NET Framework一样,检测目标机器没有,运行VC++的安装包,但是发现VC++不同于.NET Framework和数据库,在XP SP2、XP SP3、Win7中注册表的GUID各不相同,没有办法根据注册表判断。

那不管用户有没有,都去尝试去安装,这总不会有大问题…,但带来的负面效果就是,用户有了,还会弹出VC++的Windows Installer的界面,显示要修复还是卸载,多一个没有用的界面,总是让人不爽。

有一种叫"静默安装"的方式,即不会显示安装过程,有就不安装了,没有就【偷偷的】给用户安装。但是VC++2012_x86版本给xp的目标机器上静默安装后,会自动重启目标机器,这就更让我恼火了,换成vc++2010的不会重启,但是10不足以支持我们的需求。

直接将vc++的dll放到主程序文件夹中,当做软件的一部分,也不去单独安装,以这样的方式解决。

这里写图片描述”静默安装”,哦,原来安装完一些软件,会推荐安装一些软件,有良心的呢,推荐安装的软件前面有个勾选,流氓的呢,在你不知情下就偷偷在安装了,连托盘的提示都没有。在这个版本中我还知道了有“静默升级”这个词,既有新版本发布,用户登录旧的版本会自动升级。


【尾声】
当我内心觉得骄傲时候,遇到了冷水,在这里总结,和诸位共勉:

3. 打包了6个无用的文件,xml、pak、ico

    xml文件一般是代码注释的文件,像数据库、ORM等都会有,不用打包进去。
    ico制作安装包的时候选好就可以了,没有必要放在安装包里面中。

这里写图片描述 安装过程中操作/提示增多

    目标机器没有安装.NET Framework,会先弹出一个仅含有"确定"的mbx提示:我们将引导您……
    目标机器没有安装数据库,会先弹出一个仅含有"确定"的mbx提示:我们将引导您安装……

4. 第三方软件安装与主程序安装相对独立

    之前的版本是用压缩包制作的安装包,检测到目标机器没有.NET Framework和数据库后,分别点同意协议和确定,然后.NET Framework、数据库和主程序三个软件会共享一个进度条进行安装。
    现在的版本是检测到目标机器没有.NET Framework,提示引导安装后,提取安装包中打包进去的.NET Framework安装包运行,是原生的安装过程。
    安装成功后,紧接着自动检测目标机器是否有数据库,当目标机器中没有数据库,提示引导安装后,提取安装包中打包进去的数据库安装包运行,是原生的安装过程。
    安装成功后,紧接着安装主程序软件。

这里写图片描述虽然是运行的一个安装包,但过程中展现的是三个独立的安装过程,三个进度条,会给用户造成一种错觉:我安装你的软件,你给我安装了些什么乱七八糟的。

这里写图片描述 卸载不干净

软件使用过程中产生的一些文件在软件卸载的时候没有删掉。

5. 可以覆盖安装

软件已经安装好,可以直接再次安装覆盖,没有像Windows Installer一样,有一个修复/卸载的界面。

这里写图片描述 可以在运行时卸载

会删掉一大部分文件,但是运行时用到的一些文件存留。

这里写图片描述 默认安装在D盘更好

如果检测目标机器有D盘,将软件安装在D盘,即使用户重装系统也没事。

这里写图片描述 当双屏的用户运行安装包,出现两个安装首页,其中一个还带有Windows边框

...

但还是有做的好的地方

这里写图片描述 安装过程漂亮多了

这里写图片描述 安装目录/任务栏的文件夹是中文名称

这里写图片描述感悟:没有一个功能是一个版本造就十全十美的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
VB制作填写网页软件是一种基于Visual Basic编程语言开发的工具,可以帮助用户快速创建并自定义填写网页。这种软件一般由几个主要功能组成。 首先,VB制作填写网页软件提供了简单易用的图形化界面,在开发填写网页时,用户只需通过拖拽、放置组件等简单操作即可完成页面的布局和设计。这样,即使没有专业的编程知识,用户也可以轻松地创建自己所需的填写网页。 其次,该软件通常具备表单编辑功能。用户可以选择表单输入字段的类型,如文本框、下拉框、复选框等,并设定相关属性,如数据验证规则、默认值等。通过这些编辑操作,用户可以定制表单输入的格式和限制条件。 此外,VB制作填写网页软件还支持页面逻辑与交互的设计。用户可以定义触发事件、添加脚本代码等,实现页面之间的数据传递、条件判断、动态显示隐藏等功能。这样,用户可以通过简单的配置来实现高度交互性的填写网页。 最后,VB制作填写网页软件一般还会提供页面预览的功能,用户可以在开发过程中随时查看填写网页的效果,及时调整设计和布局。同时,该软件还支持导出网页文件,以便用户将其嵌入到自己的网站中或与他人分享。 總之,VB制作填写网页软件是一种方便实用的工具,使用户能够快速、轻松地创建和定制填写网页,无需深入的编程知识,可以满足个人或小型组织的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值