VMware ThinApp是一款應(yīng)用程序虛擬化工具,但對于我來說用的更多的是制作單文件軟件和便攜軟件。
VMware ThinApp將程序相關(guān)資源如exe、dll、ocx、注冊表項等封裝到單一的EXE文件中,程序運行時需要的資源也都從這個單EXE的虛擬環(huán)境中,從而實現(xiàn)與操作系統(tǒng)的隔離。
借助VMware ThinApp的封裝可以制作比較純正的單文件軟件,而簡單設(shè)置參數(shù)后,VMware ThinApp也能充當(dāng)制作便攜軟件的角色,大部分情況下,VMware ThinApp也確實能出色的工作。
之前一直想做一個簡單的ThinApp使用教程,不過總是沒堅持下來,這次借著新版VMware ThinApp的發(fā)布就先整理出一個制作思路來吧,希望能與大家共同探討學(xué)習(xí)下。不過現(xiàn)在我還是不太喜歡單文件軟件了,尤其是ThinApp封裝的,更傾向于綠色軟件、便攜軟件和免安裝軟件。
1. 首先運行程序Setup Capture.exe ,ThinApp會以向?qū)J酵瓿沙绦虼虬,點擊Next繼續(xù)。
2. 這里簡單介紹了注意事項,最主要的就是在一個干凈的系統(tǒng)上掃描形成系統(tǒng)快照,好處就是能得到程序正常運行所需要的最多信息。
如需要自定義掃描配置,點擊Advanced settings… ,這里可以設(shè)置需要掃描的驅(qū)動器和注冊表分支,設(shè)定好之后確定返回。
3. 點擊Next后ThinApp會以掃描當(dāng)前文件系統(tǒng)和注冊表并形成一個快照,ThinApp正在保存快照:
待系統(tǒng)快照完成之后,VMware ThinApp會給出提示,即開始安裝并配置好你需要封裝的程序,建議將程序安裝到默認位置。一切完成之后點擊Next繼續(xù):
4. VMware ThinApp進行程序安裝后的系統(tǒng)快照掃描:
掃描完成后將會提示選擇程序入口點,即從哪個程序開始啟動,一般就是主程序文件,通常ThinApp會自動選擇好,點擊Next繼續(xù)。
5. 進入Sandbox Location設(shè)置,Sandbox是Thinapp的沙盤或緩存目錄,及程序所作更改的保存路徑,以后再運行封裝的程序時會從Sandbox中讀取配置信息,如果刪除Sandbox的話,程序就會復(fù)原為默認狀態(tài)(即快照時的狀態(tài));
VMware ThinApp提供了三種模式:
* User's profile (%AppData%\Thinstall目錄就是系統(tǒng)的Application Data目錄;
* USB flash / portable media 就是將Sandbox保存到exe文件所在路徑,即相當(dāng)于制作便攜軟件了、Sandbox路徑就跟封裝出的程序在同一個目錄中。
6. 點擊Next進入System Isolation模式設(shè)置;所謂的Isolation modes就是設(shè)置虛擬程序所做的更改如何影響到實際的計算機環(huán)境。
Merged isolation mode(合并模式)允許虛擬程序在實際的文件系統(tǒng)中保存文件(如c:\user路徑,但系統(tǒng)目錄除外)、或者說封裝后的程序(Thinstalled App)對文件系統(tǒng)的更改是合并進現(xiàn)有的文件系統(tǒng)的;
而選擇WriteCopy isolation mode模式后,虛擬程序所作的更改只會保存到桌面和文檔目錄,而保存到其他目錄(如c:\user)是不可見的(被重定向并保存到到了Sandbox中),或者說封裝后的程序?qū)ξ募到y(tǒng)的更改將不會在實際的文件系統(tǒng)中可見,轉(zhuǎn)而保存到Sandbox中,如處理后的圖片等。這里Merged isolation mode用的比較多。
7. 點擊Next繼續(xù),這里可以設(shè)置Thinapp工程文件的保存路徑,還可以設(shè)置封裝時的壓縮模式(Compression);
No compression即為不壓縮, Fast compression為快速壓縮模式;建議選擇Fast compression ,能提供57%的壓縮率,而程序啟動時間跟No compression相差不多,就是第一次封裝的時候時間較長。
點擊Next后VMware ThinApp開始保存工程文件:
8. 保存完之后,你有兩個選擇: Build Now直接以默認參數(shù)生成虛擬化程序,或Browse Project返回到工程文件目錄自定義更多高級選項。
這是直接選擇Build Now后的情況,最后會提示Build Complete,封裝后的程序在工程目錄的bin文件夾中:
9. 選擇Browse Project瀏覽到工程文件目錄。在這里可以刪除一些不必要的文件以減少封裝后的文件大小,如刪除幫助文件、卸載程序等;而這里的Package.ini就是封裝參數(shù)配置文件,由build.bat調(diào)用,我在這里說明一下常用的參數(shù)。修改參數(shù)后重新運行build.bat即可生成虛擬化程序。
壓縮和分離模式,這在前面的向?qū)б呀?jīng)設(shè)置過了,如果不滿意地方,也可以直接在Package.ini中更改:
可選項有:
NoneCompressionType=None
CompressionType=Fast
DirectoryIsolationMode=Merged
DirectoryIsolationMode=WriteCopy
SandboxPath設(shè)置:SandboxPath即Sandbox路徑,SandboxPath即可以用相對路徑,也可用絕對路徑。
SandboxPath=. (EXE文件相同路徑下)
SandboxPath=%AppData%\Thinstall (系統(tǒng)的AppData\Thinstall目錄)
SandboxPath=LocalSandbox\Subdir1(EXE文件目錄下的子目錄)
SandboxPath=Z:\Sandboxes
OutDir即打包程序的輸出目錄,不做過多介紹。
SandboxName即Sandbox的目錄名,最好設(shè)置為一個更好的名字,默認是軟件名。
RemoveSandboxOnExit:程序結(jié)束時是否刪除Sandbox。
RemoveSandboxOnExit=1 (刪除Sandbox)
RemoveSandboxOnExit=0 (不刪除Sandbox)
VirtualDrives:這里保存的是快照時系統(tǒng)的驅(qū)動器狀態(tài),包括類型、序列號等信息,以便運行虛擬程序時創(chuàng)建虛擬的驅(qū)動器狀態(tài),我的經(jīng)驗是最好是在一個虛擬機中做快照,且不要有太多分區(qū)。
以上就是一些常用的Thinapp封裝參數(shù),當(dāng)然不止這些,還有很多很多高級的選項,需要的請自己參考幫助文件吧,說明都很詳細,特別是ThinApp Scripts功能,可以在程序啟動或結(jié)束時運行批處理或VBS腳本,這樣就能實現(xiàn)更多的功能了。需要說明的是VMware ThinApp并不是適合每一個程序,有的封裝后就不能運行,只能是通過ThinApp的升級來修復(fù)bug、支持更多的軟件;強烈建議在一個干凈的系統(tǒng)環(huán)境中使用VMware ThinApp。我現(xiàn)在對單文件軟件不是怎么感興趣,VMware ThinApp也用的少多了,不過還是希望能與大家多交流交流。