InstallShield 制作INF驱动安装程序

题外话:
使用INF文件制作经过签名的CAT文件可以参考如下博文:
https://blog.csdn.net/qq_29729577/article/details/113537243

回归正题:
本例使用InstallShield 2020版本

驱动文件准备

将INF、CAT、SYS等驱动相关文件放至同一目录下,本例为简单示例,文件如下:
在这里插入图片描述

新建工程

NewProject,新建InstallScript MSI工程
在这里插入图片描述

Project Assistant设置

  • Application Information
    自行填写
    在这里插入图片描述

  • Installation Requirements
    默认都选No

  • Installation Architecture
    默认选No

  • Application Files
    先不填写

  • Application Shortcuts
    默认不填

  • Application Registry
    默认选No

  • Installation Localization
    简体中文即可

Installation Designer设置

1. 驱动设置

选择OGANIZATION下的Setup Design
在这里插入图片描述
删除默认项目DefaultFeature,选择PROJECT下的Device Driver
在这里插入图片描述
进入设备驱动向导
Device Driver Package选择驱动存放目录下的INF文件
System Architecture根据具体情况选择
在这里插入图片描述
下一页会自动列出目录下相关的驱动文件
在这里插入图片描述
下一页如下勾选即可
在这里插入图片描述
下一页选择平台
在这里插入图片描述
最后点击完成即可

2. 安装脚本设置

选择BEHAVIOR AND LOGIC中的InstallScript
在这里插入图片描述
选择Setup.Rul -> Before Move Data -> OnFirstUIBefore
在这里插入图片描述

去掉代码中不必要的过程,最终代码如下:

function OnFirstUIBefore()
    NUMBER nResult, nSetupType, nvSize, nUser;
    STRING szTitle, szMsg, szQuestion, svName, svCompany, szFile;
    STRING szLicenseFile;
	BOOL bCustom, bIgnore1, bIgnore2;
begin	
    // TO DO: if you want to enable background, window title, and caption bar title                                                                   
    // SetTitle( @PRODUCT_NAME, 24, WHITE );                                        
    // SetTitle( @PRODUCT_NAME, 0, BACKGROUNDCAPTION ); 	                  
    // Enable( FULLWINDOWMODE );						   
    // Enable( BACKGROUND );							  
    // SetColor(BACKGROUND,RGB (0, 128, 128));					   

    // Added in InstallShield 15 - Show an appropriate error message if
    // -removeonly is specified and the product is not installed.
    if( REMOVEONLY ) then
        Disable( DIALOGCACHE );
		szMsg = SdLoadString( IDS_IFX_ERROR_PRODUCT_NOT_INSTALLED_UNINST );
   		SdSubstituteProductInfo( szMsg );
		MessageBox( szMsg, SEVERE );
		abort;
    endif;
    
	nSetupType = TYPICAL;	

Dlg_SdWelcome:
    szTitle = "";
    szMsg   = "";
    nResult = SdWelcome(szTitle, szMsg);
    if (nResult = BACK) goto Dlg_SdWelcome;
	
	szTitle   = "";
	svName    = "";
    svCompany = "";

Dlg_SdStartCopy:
    szTitle = "";
    szMsg   = "";
    nResult = SdStartCopy2( szTitle, szMsg );			
	
    if (nResult = BACK) then
       goto Dlg_SdWelcome;;
    endif;

    // Added in IS 2009 - Set appropriate StatusEx static text.
    SetStatusExStaticText( SdLoadString( IDS_IFX_STATUSEX_STATICTEXT_FIRSTUI ) );

    // setup default status
    Enable(STATUSEX);
 
    return 0;
end;

编译

最终进入Project Assistant的Build Installation进行编译即可
在这里插入图片描述
编译完成后,生成setup.exe,即可进入安装流程,安装流程如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

以上就是INF驱动简单的安装包制作流程,但还遇到一个问题尚未解决:

还未找到方法能够编译出同时适配x86和x64平台的安装包,目前x86和x64是分开编译为两个安装包

如果知道方法的朋友请给我留言,大家共同进步,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值