1. 程式人生 > 其它 >innoSetup打包檔案編寫模板

innoSetup打包檔案編寫模板

現在打包主要是使用 innosetup 這個軟體來進行打包,支援錄製指令碼和手動編寫指令碼,比較好用。

此文章主要記錄手寫指令碼,便於後期查詢,借鑑。

 

; 自定義的巨集,方便後期維護
#define MyAppName "良田講課儀"
#define MyAppVersion "V1.0"
#define MyAppExeName "TMaker.exe"
#define MyAppPublisher "Eloam"

[Setup]
AppId={{F382DAB1-E185-41EF-B6ED-32E86CC310B0}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName
={#MyAppName} {#MyAppVersion} ; 釋出者 - 安裝包檔案版本 - 版權 AppPublisher={#MyAppPublisher} VersionInfoVersion=1.0 VersionInfoCopyright={#MyAppPublisher} ; 預設安裝資料夾路徑 + 資料夾名稱 DefaultDirName={pf}\{#MyAppName} ; 預設組名稱,開始選單中會用到這個名稱 DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes ; 打包後安裝包的儲存路徑 - 打包後安裝包的名稱 OutputDir
=output OutputBaseFilename={#MyAppName} {#MyAppVersion} Compression=lzma SolidCompression=yes ; 不允許重複安裝 UsePreviousAppDir=no ; 安裝包圖示 & 解除安裝程式圖示 SetupIconFile = bin\logo.ico UninstallIconFile = bin\logo.ico ; 控制面板 UninstallDisplayIcon = {app}\logo.ico Uninstallable=yes UninstallDisplayName={#MyAppName} ; 簽名 ;SignTool
=sha1 ;SignTool=sha256 [Languages] Name: "chinesesimp"; MessagesFile: "compiler:Languages\ChineseSimp.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone [Files] ; exe Source: "bin\MJPGDriver.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "bin\TMaker.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "bin\amcap v3.0.9.exe"; DestDir: "{app}"; Flags: ignoreversion ; 多語言 Source: "bin\test3_zh.qm"; DestDir: "{app}"; Flags: ignoreversion Source: "bin\test3_en.qm"; DestDir: "{app}"; Flags: ignoreversion Source: "bin\test3_zh_fanti.qm"; DestDir: "{app}"; Flags: ignoreversion ; flt & ini Source: "bin\video.flt"; DestDir: "{app}"; Flags: ignoreversion Source: "bin\conf.ini"; DestDir: "{app}"; Flags: ignoreversion ; 圖示 Source: ".\bin\logo.ico"; DestDir: "{app}"; Flags: ignoreversion Source: ".\bin\logo.png"; DestDir: "{app}"; Flags: ignoreversion Source: ".\bin\cursor.png"; DestDir: "{app}"; Flags: ignoreversion ; dll Source: ".\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversion ; 資料夾 Source: ".\bin\iconengines\*"; DestDir: "{app}\iconengines"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\bin\imageformats\*"; DestDir: "{app}\imageformats"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\bin\platforms\*"; DestDir: "{app}\platforms"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\bin\styles\*"; DestDir: "{app}\styles"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\bin\tessdata\*"; DestDir: "{app}\tessdata"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\bin\TextHeadUp\*"; DestDir: "{app}\TextHeadUp"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\bin\translations\*"; DestDir: "{app}\translations"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\bin\worddirect\*"; DestDir: "{app}\worddirect"; Flags: ignoreversion recursesubdirs createallsubdirs [Registry] Root: HKLM; Subkey: Software\VisualPresent; ValueType: string; ValueName: huyangTmaker; ValueData: '123456'; Flags: uninsdeletekey ; 解決重複安裝 [code] // 安裝時,檢查程式是否已經安裝 function GetInstalledVersion(): String; var InstalledVersion: String; begin InstalledVersion :=''; RegQueryStringValue(HKLM, 'Software\VisualPresent', 'huyangTmaker', InstalledVersion); Result := InstalledVersion; end; function InitializeSetup(): Boolean; var PrevVer: String; ResultCode: Integer; Ret: Boolean; begin PrevVer := GetInstalledVersion(); result := true; if length(PrevVer) > 0 then begin //如果發現程式已經安裝過了 MsgBox ('該軟體已經安裝過, 請先解除安裝後再進行安裝.', mbError, MB_OK); result := false; end; end; [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\logo.ico" Name: "{group}\{cm:UninstallProgram, {#MyAppName}}"; Filename: "{uninstallexe}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename:"{app}\logo.ico" [Run] Filename: "{app}\MJPGDriver.exe"; Parameters: "/verysilent /norestart"; Description: "{cm:LaunchProgram, MJPGDriver}"; Flags:postinstall waituntilterminated skipifsilent Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent