題外話:
使用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是分開編譯為兩個安裝包文章來源:http://www.zghlxwxcb.cn/news/detail-452816.html
如果知道方法的朋友請給我留言,大家共同進步,謝謝!文章來源地址http://www.zghlxwxcb.cn/news/detail-452816.html
到了這里,關于InstallShield 制作INF驅動安裝程序的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!