天天看點

Inno Setup 打包注冊ocx控件的exe

Inno Setup打包控件簡介

Inno Setup在打包控件時,主要在.iss腳本中完成。首先,我們打開一個.iss檔案,進行代碼編寫。

;定義一些基礎變量

#define  MyAppName "XXXXXXX"
#define  MyAppVersion "X.X.X"
#define  AppPublisher "XXXXXXXXX"
#define  MyAppURL "http://XXXXXXXXX"

[Setup]       
; 注: AppId的值為單獨辨別該應用程式。
; 不要為其他安裝程式使用相同的AppId值。
;工具自帶生成Appid工具,不同版本可能操作不同
AppId={{3964D392-76E4-44A5-A972-1AB33FB01715}

AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName}_V{#MyAppVersion}
AppPublisher={#AppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}

;自己平時用大多不需要添加
;安裝協定
;LicenseFile = C:\xxxx\xxx.txt
;安裝前檢視的檔案
;InfoBeforeFile=C:\xxxx\xxx.txt
;安裝後檢視檔案
;InfoAfterFile=C:\xxxx\xxx.txt
;安裝密碼
;Password=123
;Encryption=yes


;這個訓示的值是用在向導的選擇開始菜單檔案夾頁中使用的預設開始菜單檔案夾名。如果這個訓示是空白或未指定,它将用“預設”作為名字
DefaultDirName=C:\xxxx\
;預設值是no。如果是yes就不會出現安裝目錄選擇的頁面。這個設定成auto也不錯。
DisableDirPage=yes

;預設的開始菜單中的名字。這個要設定
DefaultGroupName={#MyAppName}
;預設值是no。這個是顯示開始菜單頁面。yes将被忽略
DisableProgramGroupPage=yes

;預設是在iss檔案目錄下生成output檔案夾,可以自己設定生成位置。
OutputDir=.\

;生成的exe的檔案名字
OutputBaseFilename={#MyAppName}安裝包_V{#MyAppVersion}

;設定exe檔案的圖示,win10系統如果顯示圖示未變,可以嘗試重新開機電腦
SetupIconFile=.\xx.ico

;這個定義了生成時應該怎樣壓縮檔案,種類自查,預設為lzma2/max
Compression=lzma
;如果設為 yes,固實壓縮将啟用。這會使所有檔案一次性壓縮
SolidCompression=yes

;備注一些版本資訊
VersionInfoCompany={#AppPublisher}
VersionInfoDescription={#MyAppName}
VersionInfoVersion={#MyAppVersion}
VersionInfoCopyright=xxxxxxxxx Copyright(C) 2017

;選擇語言,Inno Setup安裝目錄下有一個Languages的檔案夾,該檔案夾提供了可供使用的語言,通過在腳本中加入[languages]段,可以實作該項功能
;[setup]段中需要加入ShowLanguageDialog=yes,其實不加也是可以的,因為ShowLanguageDialog預設是yes。
;compiler:他提供了編譯器所在目錄的路徑。
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"

;安裝檔案,第一個;前表示路徑
[Files]
;加載所有檔案
Source: 釋出檔案\*.*; DestDir: {app}; Flags: restartreplace; 
;注冊ocx
Source: 釋出檔案\xxx.ocx; DestDir: {app}; Flags: restartreplace regserver;
; 注意: 不要在任何共享系統檔案上使用“Flags: ignoreversion”

;這個可選段格式與 [Uninstalldelete] 一樣,除了它的條目處理在安裝步驟之前
[InstallDelete]
;這裡盡量不要使用通配符來删除所有檔案
Name: {app}\*.*; Type: files

[UninstallRun]
Filename: "regsvr32"; Parameters:"/u /s {app}\xx.ocx"

;這個可選段定義你想讓解除安裝程式删除除用 [Files] 或 [Dirs] 條目安裝/建立外的其它檔案或目錄,或由你應用程式建立的一些公共使用的 .INI 檔案。解除安裝程式在解除安裝時最後一步處理這些條目
[UninstallDelete]
[Uninstalldelete]
;Type: files; Name: "{win}\MYPROG.INI"
;下列是所支援的參數清單:
;Type (必需) 指定解除安裝程式要删除的是什麼。必須是下面中的一個:
; files 該名字參數指定一個詳細的檔案名,或帶通配符的檔案名。
; filesandordirs 除同時還比對目錄名外,功能與 files 相同,并删除任何名字比對的目錄以及包含它們中的所有檔案和子目錄。
;dirifempty 當使用這個參數時,名字參數必須是目錄名,但它不能包含通配符。該目錄隻在不包含任何檔案或子目錄的情況下才被删除。
;注 意: 不要嘗試在這裡使用通配符用來删除 {app} 目錄中的所有檔案。
Type: filesandordirs; Name: "{app}"

;系統資料庫進行注冊{控件的idclass}
[Registry]
Root: "HKCU"; Subkey: "Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{{10946843-7507-44FE-ACE8-2B3483D179B7}\iexplore\AllowedDomains\*";
;Root: "HKCU"; Subkey: "Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{{43E4D4FC-3CD8-459A-AAA1-698C1288DE93}\iexplore\AllowedDomains\*";

           

然後,我們點選生成,就會在iss同目錄下發現exe檔案,這就是我們得到打包後的exe檔案。點選運作,即可安裝注冊控件。

如果我們想要解除安裝,我們可以去找自己設定的安裝目錄,打開檔案發現裡面有一個解除安裝的exe,點選運作即可将所有的檔案清除。這是比較簡潔的安裝版本,如果有别的特殊的要求,可以根據查找更詳細的内容進行添加删除。

繼續閱讀