VMware ThinApp是一款應用程式虛擬化工具,但對於我來說用的更多的是製作單檔軟體和便攜軟體;VMware ThinApp將程式相關資源如exe、dll、ocx、註冊表項等封裝到單一的EXE檔中,程式運行時需要的資源也都從這個單EXE的虛擬環境中,從而實現與作業系統的隔離。
借助VMware ThinApp的封裝可以製作比較純正的單檔軟體,而簡單設置參數後,VMware ThinApp也能充當製作便攜軟體的角色;大部分情況下,VMware ThinApp也確實能出色的工作;之前一直想做一個簡單的ThinApp使用教學,不過總是沒堅持下來,這次借著新版VMware ThinApp的發佈就先整理出一個製作思路來吧,希望能與大家共同探討學習下。不過現在我還是不太喜歡單檔軟體了,尤其是ThinApp封裝的,更傾向於綠色軟體和免安裝軟體。
引用
1. 首先運行程式「Setup Capture.exe」,ThinApp會以嚮導模式完成程式打包,點擊「Next」繼續。
2. 這裡簡單介紹了注意事項,最主要的就是在一個乾淨的系統上掃描形成系統快照,好處就是能得到程式正常運行所需要的最多資訊。
如需要自訂掃描配置,點擊「Advanced settings...」,這裡可以設置需要掃描的驅動器和註冊表分支,設定好之後確定返回。
3. 點擊「Next」後ThinApp會以掃描當前檔案系統和註冊表並形成一個快照,ThinApp正在保存快照:
待系統快照完成之後,VMware ThinApp會給出提示,即開始安裝並配置好你需要封裝的程式,建議將程式安裝到預設位置。一切完成之後點擊「Next」繼續:
4. VMware ThinApp進行程式安裝後的系統快照掃描:
掃描完成後將會提示選擇程式入口點,即從哪個程式開始啟動,一般就是主程序檔,通常 ThinApp會自動選擇好:點擊「Next」繼續。
5. 進入「Sandbox Location」設置,Sandbox是Thinapp的沙盤或緩存目錄,及程式所作更改的保存路徑,以後再運行封裝的程式時會從Sandbox中讀取配置資訊,如果刪除Sandbox的話,程式就會復原為預設狀態(即快照時的狀態);
VMware ThinApp提供了三種模式:「User's profile (%AppData%\Thinstall」目錄就是系統的Application Data目錄,「USB flash / portable media」就是將「Sandbox」保存到exe檔所在路徑,即相當於製作便攜軟體了、Sandbox路徑就跟封裝出的程式在同一個目錄中。
6. 點擊「Next」進入System Isolation模式設置;所謂的「Isolation modes」就是設置虛擬程式所做的更改如何影響到實際的電腦環境。
「Merged isolation mode」(合併模式)允許虛擬程式在實際的檔案系統中保存檔(如c:\user路徑,但系統目錄除外)、或者說封裝後的程式(Thinstalled App)對檔案系統的更改是合併進現有的檔案系統的;
而選擇「WriteCopy isolation mode」模式後,虛擬程式所作的更改只會保存到桌面和文檔目錄,而保存到其他目錄(如c:\user)是不可見的(被重定向並保存到到了Sandbox 中),或者說封裝後的程式對檔案系統的更改將不會在實際的檔案系統中可見,轉而保存到Sandbox中,如處理後的圖片等。這裡「Merged isolation mode」用的比較多。
7. 點擊「Next」繼續,這裡可以設置Thinapp工程檔的保存路徑,還可以設置封裝時的壓縮模式(Compression);
「No compression」即為不壓縮,「Fast compression」為快速壓縮模式;建議選擇「Fast compression」,能提供57%的壓縮率,而程式啟動時間跟「No compression」相差不多,就是第一次封裝的時候時間較長。
點擊「Next」後VMware ThinApp開始保存工程檔:
8. 保存完之後,你有兩個選擇:「Build Now」直接以預設參數生成虛擬化程式,或「Browse Project」返回到工程檔目錄自訂更多高級選項。
這是直接選擇「Build Now」後的情況,最後會提示Build Complete,封裝後的程式在工程目錄的「bin」資料夾中:
9. 選擇「Browse Project」流覽到工程檔目錄。在這裡可以刪除一些不必要的檔以減少封裝後的檔大小,如刪除説明檔、卸載程式等;而這裡的「Package.ini」就是封裝參數設定檔,由「build.bat」調用,我在這裡說明一下常用的參數。修改參數後重新運行「build.bat」即可生成虛擬化程式
。
*壓縮和分離模式,這在前面的嚮導已經設置過了,如果不滿意地方,也可以直接在「Package.ini」中更改:
可選項有:
CompressionType=None
CompressionType=Fast
DirectoryIsolationMode=Merged
DirectoryIsolationMode=WriteCopy
* 「SandboxPath」設置:SandboxPath即Sandbox路徑,SandboxPath即可以用相對路徑,也可用絕對路徑。
SandboxPath=. (EXE檔相同路徑下)
SandboxPath=%AppData%\Thinstall (系統的AppData\Thinstall目錄)
SandboxPath=LocalSandbox\Subdir1(EXE檔目錄下的子目錄)
SandboxPath=Z:\Sandboxes
*「OutDir」即打包程式的輸出目錄,不做過多介紹。
* 「SandboxName」即Sandbox的目錄名,最好設置為一個更好的名字,預設是軟體名稱。
*RemoveSandboxOnExit:程式結束時是否刪除Sandbox。
RemoveSandboxOnExit=1 (刪除Sandbox)
RemoveSandboxOnExit=0 (不刪除Sandbox)
*VirtualDrives:這裡保存的是快照時系統的驅動器狀態,包括類型、序號等資訊,以便運行虛擬程式時創建虛擬的驅動器狀態,我的經驗是最好是在一個虛擬機器中做快照,且不要有太多分區。
以上就是一些常用的Thinapp封裝參數,當然不止這些,還有很多很多高級的選項,需要的請自己參考説明檔吧,說明都很詳細,特別是ThinApp Scripts功能,可以在程式啟動或結束時運行批次處理或VBS腳本,這樣就能實現更多的功能了。需要說明的是VMware ThinApp並不是適合每一個程式,有的封裝後就不能運行,只能是通過ThinApp的升級來修復bug、支援更多的軟體;強烈建議在一個乾淨的系統環境中使用VMware ThinApp。我現在對單檔軟體不是怎麼感興趣,VMware ThinApp也用的少多了,不過還是希望能與大家多交流交流。
WELCOME
2010年2月17日 星期三
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言