WindowsInstaller如何改变安装文件位置?
WindowsInstaller如何改变安装文件位置?
因为软件安装的选项很多,安装时终端会根据需要定制安装。因此无法使用网络上常看到的“系统快照”的方法简单制作安装程序。
我在修改Windows Installer制作安装文件时遇到了奇怪的问题,使用MS自己的CABARC制作的DATA1.CAB压缩文件,在使用MS自己的.MSI安装时,竟然有许多文件报告无法找到。用各种工具打开压缩的CAB文件均可看到那些文件都是存在的,和msi文件中描述也是相同的,使用CABARC的LZX,MSZIP压缩均不能解决。看到网上的英文文章说,微软的压缩算法经历过许多改变,其中也含有错误。不知道是不是这个原因让我的CAB总是无法被安装程序完全接受。
后来转念一想,不如将CAB文件全部不压缩,而是展开到一个DATA名字的目录下,让安装程序直接去复制,不是就绕过可恶的BUG了吗?可是,由于是第一次接触修改制作安装程序,手里资料可以说是空白。
不知道哪个DX手里有可以学习的资料,能够让我通过orca修改MSI来完成路径指定的工作?
这也许就是一层窗户纸,可是却困扰了我3天了。:(
参考答案:关键原因是MSI的Files里Sequence的问题。
MSI的Files里Sequence指定了安装文件的顺序,这个顺序和CAB里压缩的文件顺序要一致,否则,就会发生找不到文件的现象。
如何按照指定顺序压缩文件呢?
需要使用CABARC及制作DDF配置文件合作创建CAB文件。
cabarc是可以从微软的网站上下载到的(cabsdk)。
ddf文件包含配置信息和文件列表:
.OPTION EXPLICIT
.Set CompressionType=MSZIP
.Set UniqueFiles="off"
.Set Cabinet=on
.Set MaxDiskSize=CDROM
.Set MaxCabinetSize=0
.Set FolderFileCountThreshold=0
.Set DiskDirectory1=d:\cab
.Set CabinetName1=EBD.cab
;FileList
D:\etiger\tools\ATTRIB.EXE
D:\etiger\tools\CHKDSK.EXE