在一个论坛上看到UltraISO这个软件发布新版本了,但是下载下来发现变成了安装包的形式,不再是单文件的绿色软件了。所以学习了一下制作单文件绿色软件的方法。

使用到的工具:VMware ThinApp(点此下载),uiso9_cn.exe(用于示例的)。

注:其他的程序这个时候最好不要运行。

打开VMware ThinApp的Setup Capture.exe

打开Setup Capture.exe
(1)点击Next,进入下一步

扫描注册表
(2)这一步是用于扫描安装软件之前的注册表。做一个参考。
Advaced Scan Locationgs:设置扫描注册表的盘,一般来讲都是C盘的,这个是看你把软件安装在哪个盘上了。
点击Prescan进行扫描。

安装UltraISO

(3)这个时候先最小化这个界面,安装目标软件,这里的是UltraISO这个软件。

安装UltraISO

(4)安装UltraISO,因为设置扫描的是C盘,所以不用改。注:这里的话我觉得最好都是默认目录的为好。

扫描注册表

(5)程序安装完之后,对软件进行相关的配置,比如:输入注册码,默认的配置等等。然后点击(3)中的PostScan,进行软件安装之后的注册表扫描。

选择启动程序

(6)扫描完之后选择该软件默认启动的真正的程序,一般来讲是只有一个的,这里选择UltraISO.exe,点击Next

选择启动用户组

(7)选择运行这个软件的用户组,一般都是Everyone,每个人都可以。点击Next

设置隔离模式

(8)设置系统文件的隔离模式

Merged模式:允许更改保存的文件在对应的磁盘里可见。
WriteCopy模式:不允许更改保存的文件在对应的磁盘里可见,但是可以到沙盘存档位置下找到。
这个不懂没关系,一般都是选择第一个的。点击Next

设置用户配置和数据的地方

(9)设置沙盘存放软件的用户配置和数据的地方,然后点击Next

第一个:用户配置目录(%AppData%\Thinstall)
第二个:和生成的可执行文件在同一个目录下(这样会在同目录下产生配置文件)
第三个:自定义目录(这里如果设置成%Temp%的话就会在系统Temp文件夹下生成,具体可看附录1

设置是否发送参数给VMware公司

(10)是否将这次的用法参数发送给VMware公司,这里我选的是No,点击Next

设置配置文件的名字和存放

(11)如果生成配置文件的话,这个文件夹的名字是UltraISO Premiun V9.5。下面的是工程存放的位置。点击Next。

设置存放数据的位置

(12)软件运行产生的数据存放在哪里,一个是直接用这个单文件软件,另一个是使用dat文件。如果不想产生多出一个文件的话,如图所示的选就可。
MSI,这个是产生MSI的压缩包,没必要,不用勾选。
Compression,压缩,这个要选的,可以压缩率达到47%。
点击Save,进入下一步。

高级设置

(13)保存好之后,这里就可以进行高级设置:

Edit Package.ini:设置单文件exe生成的参数。(附录2中会进行描述)
Open Project Floder:打开项目的目录,建议打开,查看每个目录下是否有没有用的可以删除,减少生成文件的体积。
如果没有问题的话,点击Build,进行生成。

项目目录的文件

(14)项目目录的文件是这个样子的,如果以后要改的话,没必要再次运行Setup Capture.exe,可以直接改Package.ini,然后运行build.bat,就会在bin目录下生成单文件exe的

生成文件成功

(15)过一会就可以生成成功了,自己打开看看吧。

UltraISO 9.5.0.2800 绿色便携版


生成的Package.ini的代码是:

; This file can be used to configure build and runtime options for packages
; Lines that begin with a semicolon contain only comments and do not have any effect
; For documentation and to obtain a complete list of options available visit:
;
; http://www.vmware.com/info?id=906
;
[Compression]
CompressionType=Fast

[Isolation]
DirectoryIsolationMode=Merged

[BuildOptions]
;-------- MSI Parameters ----------
;Enable MSIFilename if you want to generate a Windows Installer package.
;MSIFilename=UltraISO Premium V9.5.msi
;MSIManufacturer=Unknown
;MSIProductVersion=1.0
;MSIDefaultInstallAllUsers=1
;MSIRequireElevatedPrivileges=1
;MSIInstallDirectory=UltraISO Premium V9.5 (VMware ThinApp)
;MSIProductCode={E2A41CFF-05AB-A8A0-E797-D4567CECE3B1}
;MSIUpgradeCode={AB091DC7-D07C-4F68-F44C-C1C7C145A187}
;MSIStreaming=0
;MSICompressionType=Fast
;MSIArpProductIcon=%ProgramFilesDir%\UltraISO\UltraISO.exe

;-------- AppSync Parameters ----------
;AppSyncURL=https://example.com/some/path/PackageName.exe
;AppSyncUpdateFrequency=1d
;AppSyncExpirePeriod=30d
;AppSyncWarningPeriod=5d
;AppSyncWarningFrequency=1d
;AppSyncWarningMessage=This application will become unavailable for use in %remaining_days% day(s) if it cannot contact its update server. Check your network connection to ensure uninterrupted service.
;AppSyncExpireMessage=This application has been unable to contact its update server for %expire_days% day(s), so it is unavailable for use. Check your network connection and try again.
;AppSyncUpdatedMessage=
;AppSyncClearSandboxOnUpdate=0

;-------- Parameters used only during Setup Capture ----------
SandboxPath=.
AccessDeniedMsg=You are not currently authorized to run this application. Please contact your administrator.
CapturedUsingVersion=4.6.1-361923
OutDir=bin

;-------- General Purpose Parameters ----------
SandboxName=UltraISO Premium V9.5
InventoryName=UltraISO Premium V9.5
;PermittedGroups=Administrators;Remote Desktop Users
;RemoveSandboxOnExit=1
;SandboxNetworkDrives=1
;SandboxRemovableDisk=1
;VirtualizeExternalOutOfProcessCOM=0

;OptionalAppLinks=plugins\*.exe
;RequiredAppLinks=\\server\share\*.exe;c:\abs\path\file.exe
VirtualDrives=Drive=c, Serial=ccb940a8, Type=FIXED; Drive=d, Serial=9c136dfd, Type=FIXED; Drive=e, Serial=4c1f7192, Type=FIXED; Drive=f, Serial=642aed59, Type=FIXED; Drive=g, Serial=b2924f50, Type=FIXED
;VirtualDrives=Drive=c, Serial=ccb940a8, Type=FIXED; Drive=d, Serial=9c136dfd, Type=FIXED; Drive=e, Serial=4c1f7192, Type=FIXED; Drive=f, Serial=642aed59, Type=FIXED; Drive=g, Serial=b2924f50, Type=FIXED; Drive=h, Serial=b2924f50, Type=CDROM; Drive=i, Serial=b2924f50, Type=CDROM
;VirtualComputerName=LAYCHER

AnsiCodePage=936
LocaleIdentifier=2052
LocaleName=zh-CN

; If you have problems running a 32 bit application under 64 bit Windows, try enabling this line before building the project
;Wow64=0

; Enable this option to load .Net binaries from the system instead of the package on Windows 7
;LoadDotNetFromSystem=Win7

QualityReportingEnabled=0

[UltraISO.exe]
Source=%ProgramFilesDir%\UltraISO\UltraISO.exe
;Change ReadOnlyData to bin\Package.ro.tvr to build with old versions(4.6.0 or earlier) of tools
ReadOnlyData=Package.ro.tvr
WorkingDirectory=%ProgramFilesDir%\UltraISO
Shortcuts=%Programs%\UltraISO

[卸载 UltraISO.exe]
Disabled=1
Source=%ProgramFilesDir%\UltraISO\unins000.exe
Shortcut=UltraISO.exe
WorkingDirectory=%ProgramFilesDir%\UltraISO
Shortcuts=%Programs%\UltraISO

[UltraISO 主页.exe]
Disabled=1
Source=%Common Programs%\UltraISO\UltraISO 主页.url
Shortcut=UltraISO.exe
Shortcuts=%Programs%\UltraISO

[UltraISO 使用说明.exe]
Disabled=1
Source=%ProgramFilesDir%\UltraISO\ultraiso.chm
Shortcut=UltraISO.exe
WorkingDirectory=%ProgramFilesDir%\UltraISO
Shortcuts=%Programs%\UltraISO

[UltraISO 在线订购.exe]
Disabled=1
Source=%Common Programs%\UltraISO\UltraISO 在线订购.url
Shortcut=UltraISO.exe
Shortcuts=%Programs%\UltraISO

[UltraISO 版本历史.exe]
Disabled=1
Source=%ProgramFilesDir%\UltraISO\History.txt
Shortcut=UltraISO.exe
WorkingDirectory=%ProgramFilesDir%\UltraISO
Shortcuts=%Programs%\UltraISO

[UltraISO 简介.exe]
Disabled=1
Source=%ProgramFilesDir%\UltraISO\Readme.txt
Shortcut=UltraISO.exe
WorkingDirectory=%ProgramFilesDir%\UltraISO
Shortcuts=%Programs%\UltraISO

[unins000.exe]
Source=%ProgramFilesDir%\UltraISO\unins000.exe
Shortcut=UltraISO.exe
Disabled=1

[cmd.exe]
Source=%SystemSystem%\cmd.exe
Shortcut=UltraISO.exe
Disabled=1

[regedit.exe]
Source=%SystemRoot%\regedit.exe
Shortcut=UltraISO.exe
Disabled=1

修改之后是:

[Compression]
CompressionType=Fast

[Isolation]
DirectoryIsolationMode=Merged

[BuildOptions]

SandboxPath=%Temp%
CachePath=%Temp%\UltraISO
AccessDeniedMsg=You are not currently authorized to run this application. Please contact your administrator.
CapturedUsingVersion=4.6.1-361923
OutDir=bin

SandboxName=UltraISO Premium V9.5
InventoryName=UltraISO Premium V9.5
RemoveSandboxOnExit=1

AnsiCodePage=936
LocaleIdentifier=2052
LocaleName=zh-CN

[UltraISO.exe]
Source=%ProgramFilesDir%\UltraISO\UltraISO.exe
;Change ReadOnlyData to bin\Package.ro.tvr to build with old versions(4.6.0 or earlier) of tools
ReadOnlyData=Package.ro.tvr
WorkingDirectory=%ProgramFilesDir%\UltraISO
Shortcuts=%Programs%\UltraISO

去掉了很多没有用的。

 


附录1:

系统参数

附录2:

因为涉及到的参数太多,不可能全部说,有兴趣的可以看官方的帮助文档:
在线帮助:http://pubs.vmware.com/thinapp4/help/wwhelp/wwhimpl/js/html/wwhelp.htm
说说主要的几个:

CompressionType=Fast
压缩类型,Fast是指压缩,还有None类型。

DirectoryIsolationMode=Merged
分离模式,有两种Merged和WriteCopy,前面讲过的,大部分用Merged。

SandboxPath=%Temp%
Sandbox的存放目录
SandboxPath=. (相对路径EXE文件相同路径下)
SandboxPath=%AppData%\Thinstall (系统的AppData\Thinstall目录)
SandboxPath=LocalSandbox\Subdir1(EXE文件目录下的子目录)
SandboxPath=Z:\Sandboxes(绝对路径)
SandboxPath=%Temp%(使用系统通配符目录)

CachePath=%Temp%\UltraISO
这个是自己手动加上去的,不加的话默认是X:\Documents and Settings\当前用户\Local Settings\Application Data\Thinstall\Cache目录下。

OutDir=bin
打包程序输出的目录。

RemoveSandboxOnExit=1
程序退出时是否删除沙盒,1是删除,0是不删除。
剩下的就不多说了,如果有兴趣,请自行查看官方帮助文档。

附录3:

想要UltraISO 9.5.0.2800的单文件绿色版吗?请移步:《UltraISO 9.5.0.2800单文件绿色便携版》

 


扩展阅读:

VMware ThinApp 4.0.4.3614 汉化去提示加使用教程
VMware ThinApp简明教程:制作单文件软件和便携软件

>> 若为原创,转载请注明: 转载自Laycher's Blog

>> 本文链接地址: 使用VMware ThinApp制作单文件绿色便携软件

>> 订阅本站: http://feed.feedsky.com/laycher