2008年12月16日 星期二

一個免費的安裝程式 - Inno Setup

如果你還在找一個適合的安裝程式 (ex: Visual C++ 、BCB的安裝程式),且不想用原本complier附的安裝程式的話,可以試試這一套「Inno Setup」,他是免費的,而且只需要寫一些簡單的script,我個人用起來還簡單好用的。(我有用過在Visual C++ 2005, 2008以及BCB6和WinCE的安裝)

底下我將比較常用的script列出來
[Setup]                           ; 設定頁面
AppName=MyApp ; 程式名稱
AppVerName= MyApp 2.0 ; 程式版本名稱
AppVersion=2.0.0.456 ; 版本
DefaultDirName={pf}\MyApp ; 安裝的預設目錄 {pf}是指Program Files
DefaultGroupName=MyApp ; 在「開始/程式集」的目錄
Compression=lzma ; 壓縮的方式
SolidCompression=yes ; 安裝程式是分佈多個檔案或是合併成一個檔案
OutputDir=..\..\bin\ ; 輸出安裝程式的目錄
OutputBaseFilename=MyApp 2.0.0 ; 輸出安裝程式的名稱

[Files] ; 你要發佈的檔案清單
; Source: 來源路徑
; DestDir: 目地目徑,{app}可能是DefaultDirName或user自訂
Source: MyApp.exe; DestDir: {app};
Source: MyApp.dll; DestDir: {app};
Source: help.txt; DestDir: {app}\help; Flags:

[Dirs] ; 要建立的目錄
; Name: 要建立的目錄路徑,其中{userappdata}是指user的My Documents目錄
Name: "{userappdata}\MyApp";

[Icons] ; 要建立的shortcut
; Name: shortcut的名稱,其中{group}可能是DefaultGroupName或user自訂
; Fileanme: shortcut要對映的名稱
; WorkingDir: shortcut的預設執行目錄 (這要記得加喔!)
Name: "{group}\MyApp"; Filename: "{app}\MyApp.exe"; WorkingDir: {app};

; {uninstallexe}是指uninstall的路徑
Name: "{group}\Uninstall"; Filename: "{uninstallexe}"; WorkingDir: {app};

[Run] ; 要執行的程式
; Filename: 程式名稱
; Description: 你的程式描述
; Flags:
; postinstall: 安裝程式後才會執行
; nowait: 安裝程式不會等待程式執行完畢,並且繼續下一步動作
Filename: "{app}\MyApp.exe"; Description: "Launch application"; Flags: postinstall nowait

更多設定項目請參考Inno Setup附的example或是help。
或是參考FAQKnowledge BaseMailing List


Inno Setup可以透過簡單的pascal語法來寫一些程式,例如自訂畫面、資源檢查或是檔案的操作,如果嫌Inno Setup的指令太少,那你可以外掛一些用C寫的dll來和pascal配合,來增加Inno Setup的指令及功能。
底下是一個簡單在Welcome的畫面時顯示MsgBox。

procedure CurPageChanged(CurPageID: Integer);
begin
if (CurPageID= wpWelcome) then begin
MsgBox('Welcome to Inno Setup.', mbInformation, MB_OK);
end;
end;


另外,網路上很多人為Inno Setup寫了一些額外的套件,可以直接使用UI來設定script或是增加#include來引用已寫好的script等功能,有興趣的可以下載Third-Party QuickStart Packs來玩玩。


結論:
Inno Setup是一個免費又簡單好用的安裝程式。 :)


下載 (Downloads):
1. Inno Setup Stable Release - 主程式
2. Third-Party QuickStart Packs - 包含常用的third-party元件

一些Inno Setup的技巧:
1. Inno Setup 包裝 Visual C++ runtime library
2. Inno Setup 如何在安裝程式前,先檢查並關閉之前的程式
3. more

Reference:
1. Inno Setup

1 則留言:

Unknown 提到...

很好的中文tutorial, thanks

LinkWithin

Related Posts with Thumbnails