工作记录——InstallShield制作windriver驱动安装包

之前工作中生成了windriver1221的PCI驱动文件,现在要将驱动文件.INF打包为安装包,使未安装windriver的电脑能够直接安装windriver生成的驱动并调用wdapi库进行硬件测试。

具体步骤如下:

第一步,安装InstallShield

制作安装包需要专业的安装包制作软件,我选用了InstallShield2015版本。安装完成后打开。

P.S.开InstallShield2015后我的软件会弹窗询问是否需要Install InstallShield Pack 2,我选择不安装,对后面安装包的制作并没有感觉到影响。

第二步,创建安装包工程

打开InstallShield2015,在界面左侧选择create a new project。

在弹出界面中选择InstallScript MSI Project,填写自己的工程名称和路径。

点击OK后进入安装包制作流程界面。

第三步,安装包制作流程

创建新工程完成后进入Project Assistant界面,这是流程图化的安装包设置界面。

基本流程为下面的一排图标一个个点过去进行设置。
第一个Application Information是设置信息,用于给你填写公司名,版本号,网站信息等,也可以选择安装包的图标,不关键,视自己需求和驱动版本填写即可。

第二个Installation Requirements用于设置安装包安装环境,主要是设置安装包支持的系统环境和安装必需的软件,视需求勾选。

P.S.这里我勾选选项中没有Windows10系统,但是我制作的安装包在Windows10系统中也能安装。

第三个Installation Architecture是用来设置安装包中的自定义安装选项的,功能类似于安装VS软件时你可以选择安装全部功能还是只安装你需要的语言包,但是由于我要安装的驱动软件只有一个,所有这项功能我没有详细了解。

第四个Application Files是关键步骤,其主要功能是导入安装包软件中需要用到的所有文件,我所需要的是一个安装windriver生成驱动的安装程序,所以需要的文件包括:目标驱动.INF ; windriver1221.INF ; windriver1221.cat ; windriver1221.sys ; wdreg.exe 这5个文件。

其中目标驱动文件由windriver生成后保存在电脑中,windriver1221.INF ,windriver1221.cat , windriver1221.sys 这三个文件在你的windriver安装路径下的redist文件夹中,wdreg.exe在安装路径下util文件夹中。


在左侧选择放置文件的目标文件夹,我选择的是My Product Name文件夹,需要注意文件夹名后的【】中的INSTALLDIR,这个INSTALLDIR是后面安装包制作编译中非常重要的路径,因为要调用你导入的文件需要进入相应的安装包路径,所以安装包安装时要调用刚刚的wdreg.exe文件时,就需要先进入这个INSTALLDIR路径,也就是说你导入文件的位置要自己记住。
选择完路径后在右侧空白处右击并点击Add,然后将自己电脑中刚刚提到的必需的文件导入进去即可。

第五个Application Shortcuts是用于设置安装包中的那个“在桌面/开始菜单中生成快捷方式”的选项和安装完成后快捷方式的图标的,但是我只需要安装驱动,不需要快捷方式,所以可以不进行设置。

第六个Application Registry是有些安装包在安装时所用的文件有时需要提前进行Windows系统注册,我这里安装驱动不需要。

第七个Installation Localizations用于设置安装包语言,建议使用英文English,因为好像勾选中文需要下载额外的语言包(不确定)。

第八个Build Installation是最后一步,用于release一个完整的setup.exe,即我们需要的安装包程序,但是现在还不能直接release,需要对我们导入的文件进行安装流程的代码编写。

第四步,安装包代码编译

点击上方的Installation Designer,进入安装包设计管理器,并且点击Behavior and Logic ->InstallScript。

这里我们可以开始编写关于我们安装包的安装步骤的具体代码,在我这个项目中,我需要调用wdreg.exe这个程序,来对windriver1221.INF和目标驱动.INF这两个INF文件进行安装。(注意顺序!!!安装时先安装windriver1221.INF,但卸载时需要后卸载windriver1221.INF!
所以理论上安装的具体流程为:
1.打开windows命令行(cmd),
2.在命令行中进入安装包文件路径,
3.让cmd命令行执行

wdreg  -inf  windriver1221.inf  install
wdreg  -inf  目标驱动.inf  install

这两条指令(顺序不可改)

同理,卸载流程为:
1.打开windows命令行(cmd),
2.在命令行中进入安装包文件路径,
3.让cmd命令行执行

wdreg  -inf  目标驱动.inf  uninstall
wdreg  -inf  windriver1221.inf  uninstall

这两条指令(顺序不可改)

所以根据这两个流程编写代码。

首先是安装流程,安装流程在整个安装包流程中位于 OnFirstUIAfter位置,所以在上部选择Setup.Rul -> After Move Data -> OnFirstUIAfter,点击后会自动在代码下方出现一段OnFirstUIAfter的初始代码段。

在function OnFirstUIAfter()中定义安装包路径

STRING szDir;
szDir = INSTALLDIR;

这里的路径就是刚刚我们导入文件时要记住的路径,然后根据路径调用cmd命令行实现安装操作:


```cpp
StrRemoveLastSlash(szDir);
ChangeDirectory(szDir);
LaunchAppAndWait("cmd", "/c wdreg -inf windrvr1221.inf install" , WAIT); // on wdreg.exe
LaunchAppAndWait("cmd" , "/c wdreg -inf Etc7024wd1221.inf install" , WAIT);

加入这些代码后安装流程代码就完成了。

卸载流程跟安装流程很像,只是卸载流程在安装包完整流程的OnMainUIAfter部分,所以要再加一个Setup.Rul -> After Move Data -> OnMainUIAfter代码段,再将两个INF文件的卸载顺序换一下即可。

代码编写完成后回到刚刚流程图的第八个Build Installation,选择Single Executable,再点击Build Installations,或者直接在上面工具栏Build中进行build,build成功没有错误即完成了安装包的制作。

制作完成的setup.exe程序就在你的工程目录\Product Configuration 1\Release 1\DiskImages\DISK1中,就是那个setup.exe程序。

setup.exe就是完整安装包,安装驱动不需要文件夹中的任何其他文件,只需要运行setup.exe即可。

2019.11.28工作记录——InstallShield制作windriver驱动安装包相关推荐

  1. 2019.11.28

    2019.11.28 % 滑动平均(均值滤波) sliding_window = 5; impulse_fft_tmp = impulse_fft_6k; for i = 1+sliding_wind ...

  2. Advanced Installer 制作.NetWeb部署安装包

    Advanced Installer 制作.NetWeb部署安装包 原文:Advanced Installer 制作.NetWeb部署安装包 因为是.Net的Web应用程序,所以想用Advanced ...

  3. InstallAnywhere制作出来的安装包在64位机上无法卸载

    使用InstallAnywhere 2009的用户,在制作64位平台安装包时,可能会遇到制作出来的安装包无法卸载,并且这种情况仅限于带64位JVM的安装包. 解决办法: 在InstallAnywher ...

  4. Advenced Installer制作C#程序安装包过程.Net和Visual C++采用静默安装配置说明

    在制作C#程序安装包时,需要安装.Net Framework和Visual C++运行库文件.若采用一般安装模式会弹出安装界面,让用户点击确定进行安装,若用户选择出错会导致程序无法正常运行.给软件的运 ...

  5. 制作 Linux 一键安装包

    文章目录 制作 Linux 一键安装包 制作 Linux 一键安装包 像 Qt,Anaconda3 等都提供了 Linux 的一键安装包,后来在网上查到过制作 Linux 一件安装包的方法,感觉思维挺 ...

  6. [转]英文版VS2010制作中文环境安装包

    本文转自:http://www.cnblogs.com/upupto/archive/2010/10/29/1864726.html 自从VS2010发布以来,一直在用英文版本,接下来就说明用英文版本 ...

  7. IS2009制作Oracle 静默安装包(二) 感谢空白先生特许授权

    IS2009制作Oracle 静默安装包(二) 感谢空白先生特许授权 原文:IS2009制作Oracle 静默安装包(二) 感谢空白先生特许授权 上一篇: IS2009制作Oracle 静默安装包(一 ...

  8. 英文版VS2010制作中文环境安装包

    英文版VS2010制作中文环境安装包 .NET資料庫 2010-11-26 16:52:20 阅读289 评论0  字号:大中小 订阅 自从VS2010发布以来,一直在用英文版本,接下来就说明用英文版 ...

  9. 制作CPA静默安装包和静默包软件捆绑方法

    制作CPA静默安装包 iexpress  : https://jingyan.baidu.com/article/72ee561aa7de29e16138dfb0.html 静默包软件捆绑方法 1.s ...

  10. 使用NSIS制作revit插件安装包

    这里写自定义目录标题 使用NSIS制作revit插件安装包 下载 Addin文件 修改脚本文件 使用NSIS制作revit插件安装包 下载 NSIS DOWNLOAD HM NSIS Addin文件 ...

最新文章

  1. css flexbox模型_5分钟内学习CSS Flexbox-初学者教程
  2. Mysql数据库常用操作整理
  3. python—装饰器
  4. C# 延时小函数 很好用
  5. 特斯拉中国向招商银行贷款50亿元 工厂本月开始生产
  6. 终于可以和 QQ 彻底说再见了!
  7. 【Spring】Service 注入失败,空指针
  8. PROJ.4学习——地图投影
  9. keil5安装_如何安装Keil5
  10. error: component 'clippy' for target 'x86_64-unknown-linux-gnu' is unavailable for download 解决办法
  11. mysql支持3条用来创建循环的语句_MySql学习笔记——存储过程
  12. 微信小程序获取openid和用户信息
  13. IT行业基础知识:什么是互联网+
  14. ios - 农历公历互转 农历选择器
  15. STL学习——RB-tree篇
  16. Tensorflow2.0之用遗传算法优化卷积神经网络结构 Version2
  17. Mentor Graphics LP Wizard 软件使用----创建零件BGA封装库
  18. mysql采集方式_数据采集的几种方法
  19. html 微信语音聊天,layaBOX实时语音聊天与微信登陆接口分享
  20. port and land

热门文章

  1. RANSAC算法——看完保证你理解
  2. 批量 材质 调整_3dmax怎么批量修改材质
  3. 如何将超大文件传输给别人,超大文件如何传输
  4. 超详细“图+文”讲解,带你快速入门STM32编程!
  5. 《zw版·Halcon-delphi系列原创教程》 2d照片-3d逆向建模脚本
  6. SIFT/SURF算法
  7. get请求中url传参中文乱码问题
  8. 关于Sentaurus的日常(一)(Basics)
  9. python输出姓名_如何用Python生成若干个随机姓名?男女取名有方法,不能千篇一律...
  10. 技嘉主板bios设置内存图解