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