论坛风格切换切换到宽版
  • 4771阅读
  • 0回复

InstallShield 兩三事... [复制链接]

上一主题 下一主题
离线kiiali
 
发帖
805
金钱
0
威望
0
只看楼主 倒序阅读 0 发表于: 2002-11-05
[這篇文章最後由Invisible在 2002/11/05 11:33pm 編輯]

Date: Tue, 15 Dec 1998 03:)32 +0800
From: Invisible <Invisible@pcmail.com.tw>
Organization: MIC
To: patch-author@cpatch.org
Subject: (post) InstallShield 兩三事...
Sender: patch-author-request@cpatch.org
Resent-Message-Id: <B0000013323@cpatch.org>
Resent-From: patch-author@cpatch.org
X-Unsub: To leave, send text 'LEAVE' to <patch-author-request@cpatch.org>
ΥΥΥΥΥΥΥΥΥΥΥΥΥ*廢言在前*ΥΥΥΥΥΥΥΥΥΥΥΥΥ
對於軟體是否能掛上 For MS Windows 9X/NT 的 LOGO,MS 的要求中有一
項是「必須提供完整的安裝/移除介面」。
而目前的安裝製作軟體中,最廣為人知的大概就是 InstallShield 了吧
(註一)。InstallShield 是 InstallShield Software Corporation 這
家公司所製作,有興趣的朋友可以到 http://www.installshield.com
晃。

ΥΥΥΥΥΥΥΥΥΥΥΥΥ*檔案清單*ΥΥΥΥΥΥΥΥΥΥΥΥΥ
程式開發者/設計師完成軟體的設計之後,接下來便是考慮將軟體散佈出
去了。儘管軟體設計得再好,若沒有一個友善的安裝/移除介面,那麼恐
怕在消費者的心目中也要打個折扣(註二)。
本文的目的並不是介紹如何將軟體用 InstallShield 包裝起來,而是要
介紹經過 InstallShield 包裝的軟體的一些相關概念。
一般來說,若您看到的軟體(未安裝前)有如下的檔案清單,那就可以確
定是用 InstallShield 3 包裝過的。而目前 InstallShield 5.5 也已面
市,經過 InstallShild 5.5 包裝的檔案名稱又有些許不同,不過這不是
本文所要探討的重點。
_SETUP.DLL   安裝程式(Setup.exe)執行時必須的 .DLL 檔
_ISDEL.EXE   此檔的功能是確定安裝暫存檔已正確被刪除
DATA.Z     軟體壓縮檔,您安裝的軟體都被包裝在此檔中(註三)
_INST32I.EX_ 安裝程式所需檔案
_SETUP.LIB   Setup Library File
DISK1.ID     安裝程式所需檔案(磁碟編號檔)
SETUP.EXE   安裝程式主執行檔
SETUP.INI   安裝程式所需檔案
SETUP.INS   InstallShield 編譯過的安裝描述檔(Script file)
SETUP.ISS   進行自動安裝(Silent Installlation)時所需的檔案
SETUP.PKG   包裝清單檔(Packing List)
小弟進行中文化的時候,專門喜歡挑被 InstallShield 包裝過的軟體開
刀(如最近的 McAfee VirusScan 3.16 Delux 與 MicroAngelo 98),在
此願與大家分享一下對 InstallShield 的一些心得。
如果大家有注意的話,DATA.Z 通常是上述檔案清單中最大的一個,因為
軟體的所有檔案全被壓縮在裡面。Setup.exe 負責將被包裝的軟體的檔案
們丟到軟體的預設安裝路徑(通常是 x:Program FilesProgramName 目
錄)。除此之外,Setup.exe 並負責將被包裝的軟體所需要的登錄項目寫
入到Windows 的登錄資料庫(Registry)。
Data.z 這檔案如果在安裝有 Winzip 的系統中會具有 Winzip 的圖示,
但是 Winzip 各種版本並無法解開 Data.Z 這種檔案類型,因為這種 .Z
檔的檔案格式並不是一般 Unix 上的 .Z 檔(?)。
要解開 InstallShield 的 .Z 這種壓縮檔格式,必須使用 Icomp.exe 這
支程式。您可以在 InstallShield Express BC++ 5.0 Edition 或者是在
InstallShield Express Delphi Edition 中找到 Icomp.exe。
解開 .Z 檔要做啥?中文化囉...中文化後呢再使用 Icomp.exe 把所有中
文化後的檔案壓回 .Z 檔,其他檔案如 _Setup.dll 與 Setup.exe 再中
文化一下,那就完美了。最後祭出 InstallShield EXE Builder 將那堆
哩哩扣扣的檔案包成一個執行檔,就有臉見人囉!

ΥΥΥΥΥΥΥΥΥΥΥΥΥΥ*註一*ΥΥΥΥΥΥΥΥΥΥΥΥΥΥ
軟體安裝大約有幾項動作要完成:
1.複製軟體檔案到硬碟上。
2.修改登錄資料庫( Registry)。
3.修改檔案(如 Autoexec.bat、Config.sys、Win.ini、System.ini)。
除了使用 InstallShield 來包裝外,大約還有兩種方法:
1. 自行撰寫安裝程式,上述三動作全包辦(如 Symentec 系列軟體)。
2. 撰寫 .inf 檔呼叫 Windows 的 Setup API 完成上述三種動作(如 MS
  的 Camcorder、Microsoft Word Viewer 97 與其他 MS 軟體便是使用
  .inf 檔進行安裝,至於其包裝方法應是使用標準的 Self Extracting
  Cabinet File(?)。
ΥΥΥΥΥΥΥΥΥΥΥΥΥΥ*註二*ΥΥΥΥΥΥΥΥΥΥΥΥΥΥ
有時候反而比較偏愛那些沒有安裝程式的軟體,方便嘛,重灌破窗之後只
要再建一建連結便可以使用,反而比那些要安裝的軟體來得方便。

ΥΥΥΥΥΥΥΥΥΥΥΥΥΥ*註三*ΥΥΥΥΥΥΥΥΥΥΥΥΥΥ
軟體並不一定被 InstallShield 包裝在名為 Data.z 的檔案中,有時會
叫 _Setup.1 或 _Setup.2 或 _Setup.3 也說不定,不過通常是找檔案大
小最大的那一(幾)個就沒錯了。

ΥΥΥΥΥΥΥΥΥΥΥΥΥΥ*無名*ΥΥΥΥΥΥΥΥΥΥΥΥΥΥ
G:GTemp~exb0000     「安裝一半中斷法」會看到的軟體目錄
G:GTemp_istmp0.dir   「安裝一半中斷法」會看到的軟體目錄
如果被 InstallShield 包裝的軟體再被 InstallShield EXE Builder 包
裝過,那麼執行安裝程式時,暫存目錄會看到 ~exb0000 裡面有 "檔案清
單" 部分所提到的檔案。
※「安裝一半中斷法」語出 Kii Ali 「Nero 4005 暴力安裝法」一文。
ΥΥΥΥΥΥΥΥΥΥΥΥΥ*廢言在後*ΥΥΥΥΥΥΥΥΥΥΥΥΥ
弟是 Invisible,對於本文有任何問題的話,歡迎來信討論。
mailto:Invisible@pcmail.com.tw
mailto:xyz21960@ms22.hinet.net
http://127.0.0.1
自 2003 年起,Kii Ali 所有繁體版作品 "Help" 將譯為「幫助」,回歸軟體原始本意,不再遵照微軟的過度翻譯,而造成使用上的誤解。