原文来自: UPK软件安全社区 作者: 天下无雪 再此基础上进行修改

准备工作:
    VS2008原版90天试用光盘
    VS2008SP1补丁 用的是 iso 版的
    VS90SP1-KB957507-v2-CHS-x86.exe (中文智能提示补丁)
    VS90SP1-KB958502-x86.exe (JQuery智能提示补丁)
   
Orca MSI修改工具
    额外需要的文件:
        WcfTestClient.chm 
        SQL Server 2005 Express Edition SP3 (如果你不需要安装它就不需要这几个文件)
            SQLEXPR_CHS.EXE      (SQLEXPR32_CHS.EXE 这个文件也在右边下载)
            SQLEXPR_ADV_CHS.EXE (二者任一,后者是集成了图形化管理工具的SQL Express版本)
            SQLEXPR32_CHS.EXE

准备安装文件夹:
     新建工作文件夹:
            e:\vs
            e:\vs\old
            e:\vs\new
            e:\vs\log
            e:\vs\sp1
            e:\vs\needfile
            e:\vs\cmd

     将原版安装文件复制到:e:\vs\old
     将SP1补丁全部复制到:e:\vs\sp1
     将WcfTestClient.chm、SQLEXPR_CHS.EXE(SQLEXPR_ADV_CHS.EXE)、SQLEXPR32_CHS.EXE、VS90SP1-KB957507-v2-CHS-x86.exe、VS90SP1-KB958502-x86.exe复制到e:\vs\needfile。

 

集成脚本:cmd\Integration.bat (使用时请用管理员身份打开)
 

  1. rem 脚本开始,此处改为你相应的文件夹  
  2. e:  
  3. cd e:\vs  
  4. echo 展开原版安装文件……  
  5. msiexec.exe /a %CD%\old\vs_setup.msi TARGETDIR=%CD%\new /L*vx %CD%\log\extract.log  
  6. xcopy "%CD%\needfile\WcfTestClient.chm" "%CD%\new\program files\microsoft visual studio 9.0\common7\ide\" 
  7. echo 开始集成……  
  8. msiexec /p %CD%\sp1\VS90sp1-KB945140-X86-CHS.msp /a %CD%\new\vs_setup.msi /L*vx %CD%\log\patch-KB945140.log  
  9. msiexec /p %CD%\sp1\VC90sp1-KB947888-x86-chs.msp /a %CD%\new\vs_setup.msi /L*vx %CD%\log\patch-KB947888.log  
  10. msiexec /p %CD%\sp1\VC90sp1-KB948484-x86_x64-chs.msp /a %CD%\new\vs_setup.msi /L*vx %CD%\log\patch-KB948484.log  
  11. msiexec /p %CD%\sp1\VC90sp1-KB948560-x86_IA64-chs.msp /a %CD%\new\vs_setup.msi /L*vx %CD%\log\patch-KB948560.log  
  12. xcopy "%CD%\new\Program Files\Microsoft Visual Studio 9.0\CSetupMM" "%CD%\new\setup" /E /H /R /Y  
  13. mkdir %CD%\new\WCU\VCRuntimes  
  14. xcopy "%CD%\sp1\VC_x86Runtime.exe" "%CD%\new\WCU\VCRuntimes\" 
  15. xcopy "%CD%\sp1\VC_x64Runtime.exe" "%CD%\new\WCU\VCRuntimes\" 
  16. xcopy "%CD%\sp1\VC_IA64Runtime.exe" "%CD%\new\WCU\VCRuntimes\" 
  17. mkdir %CD%\new\WCU\SMO  
  18. xcopy "%CD%\sp1\SharedManagementObjects.msi" "%CD%\new\WCU\SMO\" 
  19. xcopy "%CD%\sp1\SQLSysClrTypes.msi" "%CD%\new\WCU\SMO\" 
  20. rem  有说用sp1的SqlPubWizInstaller.exe替换wcu目录下的  
  21. rem  sqlpubwiz.msi的 但是 下面的xcopy不是执行的这个方法  
  22. xcopy "%CD%\sp1\SqlPubWizInstaller.exe" "%CD%\new\WCU\SQLPub\" /H /R /Y  
  23. xcopy "%CD%\sp1\SSCERuntime-chs.msi" "%CD%\new\WCU\SSCE\" /H /R /Y  
  24. xcopy "%CD%\sp1\SSCEVSTools-chs.msi" "%CD%\new\WCU\SSCE\" /H /R /Y  
  25. xcopy "%CD%\sp1\vstolp20.exe" "%CD%\new\WCU\VS Tools for Office\" /H /R /Y  
  26. xcopy "%CD%\sp1\vstor_lp_zh-CHS_30.exe" "%CD%\new\WCU\VS Tools for Office\" /H /R /Y  
  27. echo 集成dotNet3.5……  
  28. %CD%\sp1\dotnetfx35.exe /extract:%CD%\temp /q  
  29. xcopy "%CD%\temp\WCU\dotNetFramework" "%CD%\new\WCU\dotNetFramework" /E /H /R /Y  
  30. xcopy "%CD%\sp1\dotnetfx35langpack_x64zh-CHS.exe" "%CD%\new\WCU\dotNetFramework\dotNetFX35\x64\" /H /R /Y  
  31. xcopy "%CD%\sp1\dotnetfx35langpack_x86zh-CHS.exe" "%CD%\new\WCU\dotNetFramework\dotNetFX35\x86\" /H /R /Y  
  32. rd %CD%\temp /S /Q  
  33. echo 集成2个补丁……  
  34. %CD%\needfile\VS90SP1-KB957507-v2-CHS-x86.exe /extract:%CD%\temp /q  
  35. msiexec /p %CD%\temp\VS90SP1-KB957507-v2.msp /a %CD%\new\vs_setup.msi /L*vx %CD%\log\patch-KB957507.log  
  36. rd %CD%\temp /S /Q  
  37. %CD%\needfile\VS90SP1-KB958502-x86.exe /extract:%CD%\temp /q  
  38. msiexec /p %CD%\temp\VS90SP1-KB958502.msp /a %CD%\new\vs_setup.msi /L*vx %CD%\log\patch-KB958502.log  
  39. rd %CD%\temp /S /Q  
  40. echo 主程序集成完毕,按任意键退出。&pause>nul 


集成SQL Server 2005 Express Edition SP3:cmd\IntegrationSQLESP3.bat

  1. rem 此处改为你相应的文件夹   
  2. @echo off   
  3. e:   
  4. cd e:\vs   
  5. echo 请选择操作类型:   
  6. echo 【1】集成SQL Server 2005 Express Edition with Advanced Services SP3   
  7. echo 【2】集成SQL Server 2005 Express Edition SP3   
  8. echo 默认操作为【1】   
  9. set /p answer=   
  10. if %answer%==1 goto InteADV;   
  11. if %answer%==2 goto Inte;   
  12. :InteADV   
  13. xcopy "%CD%\needfile\SQLEXPR_ADV_CHS.EXE" "%CD%\new\WCU\SSE\SQLEXPR.EXE" /H /R /Y   
  14. goto End   
  15. :Inte   
  16. xcopy "%CD%\needfile\SQLEXPR_CHS.EXE" "%CD%\new\WCU\SSE\SQLEXPR.EXE" /H /R /Y   
  17. goto End   
  18. :End   
  19. xcopy "%CD%\needfile\SQLEXPR32_CHS.EXE" "%CD%\new\WCU\SSE\sqlexpr32.exe" /H /R /Y   
  20. echo SQL Server 2005 Express Edition SP3集成完毕,按任意键退出。&pause>nul   
  21. @echo on 



脚本运行完毕后还有几步要做:

1. Orca软件把new\vs_setup.msi打开,在File下面增加文件项

File

Component_

FileName

FileSize

 

 

NetFX35_clwireg.exe

NetFX35_clwireg.exe

netfx.exe|clwireg.exe

114200

   

NetFX35_clwireg_ia64.exe

NetFX35_clwireg_ia64.exe

netfx.exe|clwireg_ia64.exe

295448

 

 

NetFX35_clwireg_x64.exe

NetFX35_clwireg_x64.exe

netfx.exe|clwireg_x64.exe

131608

   

 

FileSize
114200
295448
131608
Version  9.0.30519.0 (3个一样)
Sequence    546 (3个一样)

2. 修改SqlPubWizInstaller.exe的版本信息
打开new\Program Files\Microsoft Visual Studio 9.0\CSetupMM\baseline.dat和new\Setup\baseline.dat两个文件,
找到SqlPubWizInstaller.exe把版本信息替换成
DetectFileVersion=2007.100.1600.22

 

3. 直接把VS2008变成正式版本(可选)
打开[new\Program Files\Microsoft Visual Studio 9.0\CSetupMM\setup.sdb]和[new\Setup\setup.sdb]两个文件,
找到[Product Key]小节,把它下面的25位的序列号改成:
PYHYPWXB3BB2CCMV9DX9VDY8T
如果下面什么也没有,就直接加。
说明: 本步是为了直接把VS2008变成正式版本,当然你也可以不这样做,那就需要安装后再输入序列号,这个序列号是VS2008 Team Suite版本的,如果你的版本不是这个,要换成正确的。

 

4. 免输序列号(可选)
打开[new\Setup\locdata.ini]文件,找到 [VS Custom]小节,在下面加上:
PIDKEY=PYHYPWXB3BB2CCMV9DX9VDY8T
这个是安装的时候要求输入序列号的,如果这里写的,安装的时候,就不需要手动输入了。

 

到此,Visual Studio 2008 SP1已经集成完毕,

最后可以使用UltraISO 或是 CDImage 生成 ISO 文件

cdimage -lDVD1 -t08/14/2007,16:00:00 -h -n -o -m e:\vs\new D:\VS2008_teamsuit_chs_sp1.iso

-l     (jkl’s l, not i or 1), 卷标名称
-t    所有文件和目录的时间戳
-h   包含隐藏文件和目录
-n   允许长文件名
-o   优化存储,相同文件保存一次
-m  忽略最大镜像文件大小  681,984,000 字节

ps:
1 vs2005 整合 sp1 时 需要把卷标名 设为 DVD1, 不知道 vs2008 是否也需要?
2 不解压缩,直接用虚拟光驱加载iso文件,能否整合成功?

 

附录:

xcopy 参数说明

/E -------- 复制目录和子目录,包括空的。与 /S /E 相同。可以用来修改 /T。
/R -------- 覆盖只读文件。
/H -------- 也复制隐藏和系统文件。
/Y -------- 复制文件审核设置(隐含 /O)。
/O -------- 复制文件所有权和 ACL 信息。

批处理中的%CD%说明

%CD% -------- 返回当前目录字符串