|
我做过一张类似的OFFICE 5IN1,从老外那里学的。
压缩比高过龙卷风的,内容一样的情况下650M的CD就能刻下。
转在下面:
原贴地址:
http://www.msfn.org/board/lofiversion/index.php/t51225.html
感谢作者 marek722
下面是我实施的过程:
一、准备:
a、准备OFFICE2003
在D盘建一个文件夹“OFFICE11”,再分别建5个子文件夹“FP11”“ONOTE11”“PRJPROE”“PRO11”“VISPRO”,把对应的5张CD的内容分别拷贝在里面。
为了将来制作CD节省空间,需要删掉一些不重要的内容:打开“PRJPROE”删掉“DOCS”“LANGPACK”“SUPPORT”,只保留“FILES”;打开“PRO11”删掉“MSDE2000”,再打开“FILES”删掉“ACCRT”。打开“VISPRO”删掉“VISIODOC.PDF”。
至此,“OFFICE11”文件夹中共有477个文件,73个文件夹,约1.67G。去掉全部文件夹的“隐藏”“只读”属性。
b、准备SP2
在D盘建一个文件夹“SP2”,将下载的4个补丁文件拷贝里面。注:一定得是“FullFile”的,文件名如下:
Office2003SP2-KB887616-FullFile-CHS.exe
OneNote2003SP2-KB887619-FullFile-CHS.exe
Project2003SP2-KB887620-FullFile-CHS.exe
Visio2003SP2-KB887622-FullFile-CHS.exe
c、安装必要的软件
按照 marek722 贴中所指,下载“md5sum.exe”,为了获得更高的压缩效率,我用“cabarc.exe”代替了 marek722所说的“makecab.exe”。
安装 orca,下载了 marek722 的“sort2cabs.zip”。
这些是必需的,当然还有其他的,例如:Autorun, UltraISO 也要准备一下。
二、集成补丁:
a、解开SP2,方法有2种:直接用Winrar解开,或者用命令行,我来演示后一种:
(我把下面这些命令全部“Save as”成一个1.bat,这样的情况后面还有很多,生成bat会很方便)。
d:\SP2\Office2003SP2-KB887616-FullFile-CHS.exe /t:c:\SP2 /c
d:\SP2\OneNote2003SP2-KB887619-FullFile-CHS.exe /t:c:\SP2 /c
d:\SP2\Project2003SP2-KB887620-FullFile-CHS.exe /t:c:\SP2 /c
d:\SP2\Visio2003SP2-KB887622-FullFile-CHS.exe /t:c:\SP2 /c
提示“许可协议”,点击“是”,解开第二个补丁时,会提示是否覆盖“ohotfix*.*”那3个文件,选择“全部”,这3个文件没什么用。
b、拷贝d:\office11到c:\office11,为什么这样做?主要是为了最后制作ISO方便,也可以不这么做。
c、集成补丁,按照下面的代码,一定要注意,路径和文件名不能错,不然全乱了。
msiexec /a c:\office11\pro11\PRO11.MSI /p c:\SP2\MAINSP2ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="GWH28DGCMPP6RC46J4MT3HFDY" /qb
msiexec /a c:\office11\pro11\OWC11.MSI /p c:\SP2\OWC11SP2ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="GWH28DGCMPP6RC46J4MT3HFDY" /qb
msiexec /a c:\office11\pro11\OWC10.MSI /p c:\SP2\OWC102003SP2ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="GWH28DGCMPP6RC46J4MT3HFDY" /qb
msiexec /a c:\office11\fp11\FP11.MSI /p c:\SP2\MAINSP2ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="WFDWYXQXJFRHRYGBG7RQBBDHM" /qb
msiexec /a c:\office11\fp11\OWC11.MSI /p c:\SP2\OWC11SP2ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="WFDWYXQXJFRHRYGBG7RQBBDHM" /qb
msiexec /a c:\office11\fp11\OWC10.MSI /p c:\SP2\OWC102003SP2ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="WFDWYXQXJFRHRYGBG7RQBBDHM" /qb
msiexec /a c:\office11\onote11\onote11.MSI /p c:\SP2\ONENOTESP2.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="WFDWYXQXJFRHRYGBG7RQBBDHM" /qb
msiexec /a c:\office11\prjproe\PRJPROE.MSI /p c:\SP2\PROJECTSP2.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="WFDWYXQXJFRHRYGBG7RQBBDHM" /qb
msiexec /a c:\office11\prjproe\OWC11.MSI /p c:\SP2\OWC11SP2ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="WFDWYXQXJFRHRYGBG7RQBBDHM" /qb
msiexec /a c:\office11\prjproe\OWC10.MSI /p c:\SP2\OWC102003SP2ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="WFDWYXQXJFRHRYGBG7RQBBDHM" /qb
msiexec /a c:\office11\vispro\VISPRO.MSI /p c:\SP2\VISIOSP2.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="WFDWYXQXJFRHRYGBG7RQBBDHM" /qb
(不出意外的话,这个过程需要一点时间,大概10分钟)。
d、删掉5个子文件夹“FP11”“ONOTE11”“PRJPROE”“PRO11”“VISPRO”中的所有cab文件。
至此office11中约有9878个文件,883个文件夹。
三、重新打包
这个过程太烦琐了,其实这时候的文件夹不到3G,不愿意作CD的话,跳过吧,直接加上Autorun做成DVD吧。
a、把在5个子文件夹“FP11”“ONOTE11”“PRJPROE”“PRO11”“VISPRO”下所有的文件统统“剪切”到c:\office11,把空的文件夹删掉。
按照下面的命令建一些文件夹,并拷贝文件。
@ echo off
echo 对应每个msi文件,在sort下建一个工作目录
echo
md c:\office11\sort\pro11
md c:\office11\sort\owc10
md c:\office11\sort\owc11
md c:\office11\sort\fp11
md c:\office11\sort\onote11
md c:\office11\sort\prjproe
md c:\office11\sort\vispro
echo
echo 拷贝xml文件
echo
copy c:\office11\files\setup\*.xml c:\office11\sort
b、从msi中导出idt文件
以c:\office\pro11.msi为例:
运行orca,File->Open,选择c:\office11\pro11.msi,Tables->Export Tables,“Output”路径中选择c:\office11\sort\pro11,在“Tables”里面选中如下的5个表(CabinetDetail, Component, Directory, File, Media),提示导出了5个表。
这里要注意的是,如果orca版本太低,或者导出时没选中采用长文件名,导出的idt文件可能是8.3格式,请确认下述的文件名和你的是匹配的( CabinetDetail.idt Component.idt, Directory.idt, File.idt, Media.idt)。
这样的操作很烦琐,一共是11个msi文件要导出其中的55个表。
c、修改idt文件
在后面的编译中会出现一些错误,我反复研究发现:“fp11”“onote11”“prjproe”“vispro”中的Directory.idt中有点问题,有个地方是“HELP:WUBI86”,需将其中的“HELP”更改为“.”,变成“.:WUBI86”即可。
费了点力气才修正这个问题,遗憾的是不知道为什么会有这样的错误,可能是导出时路径orca搞错了,也可能是sort2cab.js里面不支持这样的写法。
另一个需要修改的地方是:C:\OFFICE11\sort\prjproe\Media.idt 将全部的“PROJECT11”改成“OFFICE11”,这是为了做5IN1时修改的。
到这里让我们举例来看一个文件夹下都有什么吧:(...的内容和fp11是一样的)
C:\OFFICE11\SORT
│ cabarc.exe
│ FP11.XML
│ l.txt
│ md5sum.exe
│ ONOTE11.XML
│ OWC10.XML
│ OWC11.XML
│ PRJPROE.XML
│ PRO11.XML
│ sort2cabs.js
│ tabledirs.lst
│ VISPRO.XML
│ xmlfiles.lst
│
├─fp11
│ CabinetDetail.idt
│ Component.idt
│ Directory.idt
│ File.idt
│ Media.idt
│
├─onote11
│ ...
│
├─owc10
│ ...
│
├─owc11
│ ...
│
├─prjproe
│ ...
│
├─pro11
│ ...
│
└─vispro
...
d、生成新的cab文件
这是最长的一个过程,打开命令行窗口,切换路径到c:\office11\sort,运行下面的命令:
cscript sort2cabs.js
现在需要很长的一段时间了,喝杯茶吧。
当Script暂停时,会提示更新msi文件,用orca打开修改如下:(以fp11.msi为例)
打开 fp11.msi,导入c:\office11\fp11\sort\fp11\下命名为 CabinetDetail.new.idt 的文件,选择“Replace”,再导入另外2个*.new.idt。(CabinetDetail, File, Media 3个文件有更新)替换掉原来的,不能选择“Merge”。导入所有新表后存盘,打开owc10.msi,owc11.mdi按照上述方法修改。
当所有的操作完成后,退出orca,回到script窗口,让程序继续运行。
这个过程很重要,也特别容易出错,如果将来做好的安装程序在“完全安装”时,提示找不到文件,一般都是这一步的问题。
四、收尾工作
a、运行完script差不多需要1小时,很累的说。
b、将“sort”中新的xml文件拷贝到“setup”文件夹中:
copy c:\office11\sort\*.xml c:\office11\files\setup /y
c、挑出有用的文件,因为前面在D盘预留了没打补丁的文件,现在只要执行下面的命令即可:
xcopy c:\office11 d:\office11\pro11 /u /e /y
xcopy c:\office11 d:\office11\onote11 /u /e /y
xcopy c:\office11 d:\office11\fp11 /u /e /y
xcopy c:\office11 d:\office11\prjproe /u /e /y
xcopy c:\office11 d:\office11\vispro /u /e /y
复制了 477 个文件,约1.65G,优化压缩后74min的CD就可以放下。
d、用UltraISO把PRO11,VIOPRO,FP11,ONOTE11,PRJPROE放在里面,再作个Autorun生成一张CD吧。 |
|