12.   准备View Thinapp

ThinappVMware在应用程序虚拟化的产品,Thinapp最大的特色是它基于程序打包的原理,不需要专门的服务器进行部署。我们需要做的就是在一台虚拟机上安装操作系统,Thinapp的程序,然后通过对比应用软件安装前后操作系统的变化,并将变化的部分打包成虚拟的应用程序。最后将应用程序放在一个共享目录中供View Manager来调用,而且可以在一个虚拟桌面上运行多个版本程序的实例。

沙箱(sandbox):是Thinapp特有的,它盛放了应用程序运行时需要的dll文件,注册表键值等等信息。

Thinapp打包的格式分为两种,一种是MSI的格式,一种是exe的格式。MSI格式是为了方便我们在域中进行管理,统计我们的软件资产利用情况,同时也方便客户端的部署。另外Thinapp还可以通过修改package.ini文件进行局部的调整,然后重新生成程序包,对环境没有任何的依赖关系。

Thinapp的授权中带有一个VMware Workstation的授权,我们可以使用它在任何一台计算机上安装虚拟机来生成打包文件。

Thinapp安装前需要的条件:

Ø 干净的Windows XP操作系统,一般我们使用Windows XP,如果需要的话,比如生成IE6的应用,也可以使用Windows 2000  Professional

Ø Windows的安全补丁,但不要安装Service Pack3,这主要是因为IE7的问题。

Ø 安装Windows Installer 3.1

Ø 不要安装任何的JDK.Net Framework, FlashWindows Media Player等软件以保持系统的干净度,防止产生软件依赖关系。

VMware View Thinapp的安装过程十分简单,这里就不多介绍了。

软件制作过程:

为干净的虚拟机创建一个快照,以便在安装软件后回到初始状态。

运行Thinapp Setup Capture,捕捉应用程序安装前系统的状态。整个扫描过程大概10秒钟左右。

接下来就将Setup Capture最小化,安装应用程序,待安装完成后,运行应用程序并进行相应的设置。完成后关闭应用程序。

打开Thinapp Setup Capture,点击Postscan,如果应用程序安装过程中计算机需要重新启动,没有关系,等程序配置完成后,重新运行Thinapp Setup Capture,系统会询问是否运行Postscan

Thinapp Setup Capture会对安装好应用程序的系统再次进行扫描,并对前后的结果进行比较,然后让你选择需要运行的应用程序名称(Entry Point),设置权限,隔离模式,沙箱的路径,在软件库中显示的名称,生成的打包文件(这里包括是否需要生成MSI文件,是否生成DAT文件,DAT文件是面对特别大的文件而设置的,如果打包文件大于200MB,就要需要生成一个DAT文件以减小EXE文件的大小。)。打包设置的选项如图12

 

12:打包文件的设置选项

最后系统会询问是否需要编辑Package.ini文件,如果不需要就直接点击Build生成打包文件。当然也可以在以后重新编辑package.ini文件并重新生成打包文件。

完成以后就可以直接将生成的EXE或者MSI文件放在一个共享目录中供用户使用。

View Manager中管理Thinapp

View manager中也可以统一管理Thinapp,以让应用程序自动安装到虚拟桌面中。安装步骤为:

建立一个或多个共享目录,将生成的打包文件放入这个目录中。共享目录需要让用户帐号和虚拟桌面的计算机帐号都有读权限。

登录View Manager,在View Configuration>ThinApp Configuration页面中点击Add Repository,将创建的共享目录添加进去,注意共享目录的路径不能使用IP地址。

进入Inventory>ThinApps界面,点击Scan New Thinapps按钮,选择相应的Thinapp Repository,系统会自动扫描目录中的MSI文件,然后选择需要的应用程序。

最后将相应的应用程序指定给相应的桌面池或者虚拟桌面。双击应用程序,点击Add Assignment,选择Pools或者Desktop,就可以指定了(具体见图13)。此时登录到相应的虚拟桌面,就可以在桌面上看到应用程序图标,其运行方式跟以前完全一样。

 

13:应用程序指派到桌面池

如果我们需要删除相应的应用,只要在图13中点击Remove Assignment来解除绑定,系统会自动在系统中删除应用程序。

Thinapp的部署中我们需要考虑以下问题:

程序版本的升级:比如Firefox的升级,EXE文件的制作方式是通过修改新版本打包文件的后缀名并将新版本的文件放在同一目录下,当用户执行旧文件时,会自动更新到新版本。MSI文件的制作方式可以参考VMware的文档。

不同程序之间的依赖关系:如IE需要FlashJRE等等插件,我们只需要修改package.ini中的相应选项(optional link),加入相应的插件打包文件路径即可。参考文档(http://blogs.vmware.com/thinapp/2010/04/upgrade-a-deployed-thinapp-package-with-the-help-of-msi.html

多个版本的运行:有的开发人员需要在一个桌面上运行多个版本的应用程序,如Firefox的不同版本。这个问题其实不是Thinapp的问题,而是应用程序自身的问题。因为有的应用程序是排斥相同的进程运行的。但是可以通过添加参数来同时运行多个进程。在Thinapp中,我们所做的就是修改Package.ini中的参数,添加CommandLine参数。比如Firefox就是用-no-remote来允许多个进程同时运行。具体参考文章为:http://blogs.vmware.com/thinapp/2009/12/multiple-instances-of-an-application.html