Cameyo自定义VOS,实现单文件程序便携化


Cameyo制作便携软件Cameyo——免费的VMware ThinApp,发布正式版》简单介绍了Cameyo的使用以及VOS残留的问题。现在新版Cameyo 634已经支持自定义VOS路径和注册表信息独立化,因此从便携软件的角度再说说怎么用Cameyo编辑虚拟程序实现更彻底的便携化。


自定义VOS路径

以前,Cameyo制作的单文件程序默认会将程序镜像VOS还原到C盘,并且不能在关闭程序后不自动自动清除。
新版Cameyo支持对VOS进行自定义编辑

“General”–“Date storage”–“Change”

对VOS提供了3种方案:

Cameyo Date storage

  • “Default”——就是默认的C盘VOS
  • “Under the extcultable`s directory”——和单文件程序在同一目录下
  • “Custom location”——自定义VOS路径

由于Cameyo已经提供了自动清除VOS功能(后面讲到),所以VOS的路径问题并不重要。但是从加快程序启动的角度出发不推荐使用自动清除(后面解释),所以最好选择第二种或第三种方法,将VOS移出C盘。


自动清除VOS

在“Advanced”选项中提供了对VOS等还原镜像的自定义操作:

Cameyo Remove traves

默认是第一种方案,即不会自动清除VOS。好处是下一次启动程序时不用再重新还原镜像,对于体积庞大的程序来说避免了屡次重复读写硬盘。
第三种方案“Remove all virtual date upon exit”则会在程序关闭时自动清除VOS文件,程序下次运行时重新还原镜像再生成VOS文件。
显然从加快程序启动和减少硬盘反复读写角度来说保留VOS是必要的。


便携化注册表信息

Cameyo默认是第一种保留方案,因此VOS和注册表信息都保留在系统。从便携软件的要求,还需要对注册表信息进行便携化。
上面的第二种方案“Leave no registry traces”,将把注册表信息保留为多个独立文件保存在VOS中,在程序启动时还原到注册表,程序关闭时自动从注册表注销相关信息(测试部分程序并不是100%清除)。


从便携化要求的角度,Cameyo在默认条件制作完成单文件程序后,还需要对VOS路径和注册表信息的保留进行再次编辑。
以前的Cameyo编辑需要net.framework 3支持,现在新版只要求net.framework 2支持。