1. 程式人生 > 實用技巧 >VMware ThinApp應用程式虛擬化工具

VMware ThinApp應用程式虛擬化工具

什麼是應用程式虛擬化?

應用虛擬化使得在不修改本地作業系統或檔案系統的基礎上進行軟體的部署。它允許軟體可以在獨立的環境中交付與更新,以確保作業系統和所有應用程式的完整性。因此,應用程式衝突及需要的迴歸測試將會顯著減少。同一個的應用程式可以封裝並並部署到多個版本的作業系統。這樣應用程式將會更容易地供給、部署、升級和回滾。

VMware ThinApp對於我來說更多是作為單檔案和便攜軟體製作工具來使用的,因為VMware ThinApp實現應用程式虛擬化的原理就是將程式所有相關的檔案如 exe、dll、ocx、登錄檔項等封裝到一個單一的EXE檔案中,程式被限定在單EXE環境下執行,需要的資源也都從這個單exe封裝包中呼叫,從而實現與作業系統的隔離。因此形式上就是單檔案軟體了。

通過VMware ThinApp你可以實現:

* 通過應用程式虛擬化消除安裝衝突
應用程式虛擬化技術可以將應用程式封裝起來以與OS或其他程式獨立開;這樣可以消除昂貴的迴歸測試和來自惡意程式的衝突。只需將程式插入到MSI或EXE檔案中並部署一個包括登錄檔鍵值、DLL、第三方庫及Framework的虛擬系統環境,而無需在底層作業系統中安裝的任何的代理或應用。

* 一次封裝、任意部署(網路、USB、物理或虛擬的桌上型電腦)
在使用者模式下部署虛擬化應用程式,而無需管理員許可權。由於整個應用程式及其虛擬OS是作為單EXE檔案部署的,所以無需安裝裝置驅動也不會修改登錄檔。從一個共享網路驅動器流式傳輸大型應用程式而無需伺服器或客戶端軟體的安裝。即使程式正在是也能升級或回滾。新版本的應用程式將在使用者下次啟動時得到執行。

* 照顧到您的移動辦公員工
讓您的使用者可以在任意一臺電腦上執行部署的應用程式,即使是報攤和酒店的電腦。他們不需要安裝軟體或裝置驅動,也不需要管理員許可權。而且應用程式執行可直接從行動式儲存裝置上啟動,包括快閃記憶體驅動器。

* 提高您的軟體分發過程
分發您的軟體而保護本地作業系統不被更改,一些更改可能引起不穩定或破壞安全。即使受限使用者賬戶也可以無需安裝而安全地執行虛擬化應用程式。

VMware ThinApp部署應用程式

VMware ThinApp安裝和測試過程如下:

1、從[url]http://www.vmware.com/download/[/url] 下載ThinApp,並註冊申請60天的試用License。 2、在VMware Workstation中新建一個win xp的虛擬機器,安裝下載的ThinApp。 3、執行ThinApp Setup Capture,點Next建立系統快照。 4、安裝需要打包的軟體,再點選Next,建立第二次快照,系統自動記錄2次快照的區別。 5、勾選執行軟體的主檔案,點選Next。 6、選擇執行時快取檔案的儲存位置(sandbox location),保持預設設定,點選Next。 7、選擇檔案隔離模式(isolation mode),保持預設設定,點選Next。 8、選擇檔案輸出目錄,是否生成msi檔案以及是否壓縮。 9、點選‘build now’生成exe檔案,在輸出目錄中的bin資料夾中找到生成的exe檔案,使用者將該檔案複製到本地就可以執行打包的程式,無需安裝和管理員許可權,十分方便部署和升級。

使用教程

1. 首先執行程式Setup Capture.exe ,ThinApp會以嚮導模式完成程式打包,點選Next繼續。
VMware ThinApp使用教程

2. 這裡簡單介紹了注意事項,最主要的就是在一個乾淨的系統上掃描形成系統快照,好處就是能得到程式正常執行所需要的最多資訊。
VMware ThinApp使用教程

如需要自定義掃描配置,點選Advanced settings… ,這裡可以設定需要掃描的驅動器和登錄檔分支,設定好之後確定返回。
VMware ThinApp使用教程

3. 點選Next後ThinApp會以掃描當前檔案系統和登錄檔並形成一個快照,ThinApp正在儲存快照:
VMware ThinApp使用教程

待系統快照完成之後,VMware ThinApp會給出提示,即開始安裝並配置好你需要封裝的程式,建議將程式安裝到預設位置。一切完成之後點選Next繼續:
VMware ThinApp使用教程

4. VMware ThinApp進行程式安裝後的系統快照掃描
VMware ThinApp使用教程

掃描完成後將會提示選擇程式入口點,即從哪個程式開始啟動,一般就是主程式檔案,通常ThinApp會自動選擇好,點選Next繼續。
VMware ThinApp使用教程

5. 進入Sandbox Location設定,Sandbox是Thinapp的沙盤或快取目錄,及程式所作更改的儲存路徑,以後再執行封裝的程式時會從Sandbox中讀取配置資訊,如果刪除Sandbox的話,程式就會復原為預設狀態(即快照時的狀態)

VMware ThinApp提供了三種模式:
*User's profile (%AppData%\Thinstall目錄就是系統的Application Data目錄;
*USB flash / portable media 就是將Sandbox儲存到exe檔案所在路徑,即相當於製作便攜軟體了、Sandbox路徑就跟封裝出的程式在同一個目錄中。
VMware ThinApp使用教程

6. 點選Next進入System Isolation模式設定;所謂的Isolation modes就是設定虛擬程式所做的更改如何影響到實際的計算機環境

Merged isolation mode(合併模式)允許虛擬程式在實際的檔案系統中儲存檔案(如c:\user路徑,但系統目錄除外)、或者說封裝後的程式(Thinstalled App)對檔案系統的更改是合併進現有的檔案系統的;

而選擇WriteCopy isolation mode模式後,虛擬程式所作的更改只會儲存到桌面和文件目錄,而儲存到其他目錄(如c:\user)是不可見的(被重定向並儲存到到了Sandbox中),或者說封裝後的程式對檔案系統的更改將不會在實際的檔案系統中可見,轉而儲存到Sandbox中,如處理後的圖片等。這裡Merged isolation mode用的比較多。
VMware ThinApp使用教程

7. 點選Next繼續,這裡可以設定Thinapp工程檔案的儲存路徑,還可以設定封裝時的壓縮模式(Compression);

No compression即為不壓縮, Fast compression為快速壓縮模式;建議選擇Fast compression ,能提供57%的壓縮率,而程式啟動時間跟No compression相差不多,就是第一次封裝的時候時間較長。
VMware ThinApp使用教程

點選Next後VMware ThinApp開始儲存工程檔案:
VMware ThinApp使用教程

8. 儲存完之後,你有兩個選擇: Build Now直接以預設引數生成虛擬化程式,或Browse Project返回到工程檔案目錄自定義更多高階選項。
VMware ThinApp使用教程

這是直接選擇Build Now後的情況,最後會提示Build Complete,封裝後的程式在工程目錄的bin資料夾中:
VMware ThinApp使用教程

9. 選擇Browse Project瀏覽到工程檔案目錄。在這裡可以刪除一些不必要的檔案以減少封裝後的檔案大小,如刪除幫助檔案、解除安裝程式等;而這裡的Package.ini就是封裝引數配置檔案,由build.bat呼叫,我在這裡說明一下常用的引數。修改引數後重新執行build.bat即可生成虛擬化程式
VMware ThinApp使用教程

壓縮和分離模式,這在前面的嚮導已經設定過了,如果不滿意地方,也可以直接在Package.ini中更改:
VMware ThinApp使用教程

可選項有:
NoneCompressionType=None
CompressionType=Fast
DirectoryIsolationMode=Merged
DirectoryIsolationMode=WriteCopy

SandboxPath設定:SandboxPath即Sandbox路徑,SandboxPath即可以用相對路徑,也可用絕對路徑。
VMware ThinApp使用教程
SandboxPath=. (EXE檔案相同路徑下)
SandboxPath=%AppData%\Thinstall (系統的AppData\Thinstall目錄)
SandboxPath=LocalSandbox\Subdir1(EXE檔案目錄下的子目錄)
SandboxPath=Z:\Sandboxes

OutDir即打包程式的輸出目錄,不做過多介紹。

SandboxName即Sandbox的目錄名,最好設定為一個更好的名字,預設是軟體名。
VMware ThinApp使用教程

RemoveSandboxOnExit:程式結束時是否刪除Sandbox。
RemoveSandboxOnExit=1 (刪除Sandbox)
RemoveSandboxOnExit=0 (不刪除Sandbox)

VirtualDrives:這裡儲存的是快照時系統的驅動器狀態,包括型別、序列號等資訊,以便執行虛擬程式時建立虛擬的驅動器狀態,我的經驗是最好是在一個虛擬機器中做快照,且不要有太多分割槽。

以上就是一些常用的Thinapp封裝引數,當然不止這些,還有很多很多高階的選項,需要的請自己參考幫助檔案吧,說明都很詳細,特別是ThinApp Scripts功能,可以在程式啟動或結束時執行批處理或VBS指令碼,這樣就能實現更多的功能了。需要說明的是VMware ThinApp並不是適合每一個程式,有的封裝後就不能執行,只能是通過ThinApp的升級來修復bug、支援更多的軟體;強烈建議在一個乾淨的系統環境中使用VMware ThinApp

轉載於:https://blog.51cto.com/freemanluo/487037