利用Install from Manifest Action隔离文件的变化
发现InstallAnyWhere提供了一个名为Install from Manifest的Action来解决安装包内会有频繁文件变更的情况。使用方法为:
1. 在工程中只添加了安装操作相关联的文件。运行平台添加了需要建立快捷方式的文件(如startup.bat文件)和需要安装以后进行文件内容修改的文件。
2. 建立要拷贝的文件内容列表,可以是目录的形式。如运行平台的文件只需要下面一行来表示:
D,$IA_PROJECT_DIR$/resource/src/,./
其中,"D,"表示这一行对应的是一个目录。文件则为"F";"$IA_PROJECT_DIR$/resource/src/"对应源目录,"./"对应这些文件要在安装后拷贝到什么地方,"./"表示拷贝到用户安装时选择的安装目录的根目录下。
3. 添加一个Install from Manifest的action。选择它的Manifest File为刚才编写的文件。
4. 如果刚才的文件列表中包含了在安装包工程中指定的文件,则在此action的最下方选择Never overwrite。
此Action的详细用法可以参考帮助内对应的文档。
这样,如果安装包内有文件新增、删除了,不用再修改安装包的工程文件,直接build即可。
利用Ant来build安装包
InstallAnyWhere的工程的build过程可以设置为ant任务,用ant来构建生成安装包。这需要生成多个安装包的场景来说很方便。具体的做法为:
1. 将installanywhere安装目录下的iaant.jar放置到ant的lib目录下。
2. 编辑build.xml文件。其中定义任务的语句如下,其中指定了installanywhere的安装目录、安装包工程的位置、要生成的安装包的位置、要Build出来的操作系统等。
具体的任务为
IAlocation="E:\Program Files\Macrovision\InstallAnywhere 7.1 Enterprise"
IAProjectFile="..\..\InforSuite.iap_xml"
InstallerStdErrRedirect="C:
console.txt"
InstallerStdOutRedirect="C:
console.txt"
AutoPopulateLabels="false"
BuildOutputLocation=".\OutPut\"
BuildLinuxWithVM="true"
BuildLinuxWithoutVM="false"
BuildHPUXWithVM="false"
BuildHPUXWithoutVM="false"
BuildAIXWithVM="false"
BuildAIXWithoutVM="false"
BuildSolarisWithVM="false"
BuildSolarisWithoutVM="false"
BuildNamedUnixWithVM="false"
BuildNamedUnixWithoutVM="false"
BuildWindowsWithVM="true"
BuildWindowsWithoutVM="false"
BuildMacClassicWithVM="false"
BuildMacClassicWithoutVM="false"
BuildMacOSX="false"
BuildPureJava="false"
/>
具体的设置可以参考帮助中对应的文档。
和ant集成后,可以利用ant做一些其他的操作,如zip文件的解压、文件的拷贝、文件内容的修改等,可以让安装包的制作自动化程度更高。