如果您安装过 VS 2005 SP1的话,一定会感觉非常郁闷,因为 VS 2005 SP1比 VS 2005 的安装要慢的多,只是一个补丁而已,这么慢,一般人都受不了。
VS 2005 SP1 中文版的下载地址及安装方法,及解决数字签名认证的问题在我的一篇转改文章里介绍过:vs2005 sp1 下载地址、安装方法–更新非常慢,这里就 不说了。
从http://blogs.msdn.com/heaths/archive/2006/12/16/slipstreaming-visual-studio-2005-service-pack-1.aspx上看到这么一个解析方法
Slipstreaming Visual Studio 2005 Service Pack 1
Now that Visual Studio 2005 Service Pack 1 is released, some are wondering how to slipstream the patch so they can install Visual Studio 2005 with SP1 already applied. Much of this process is standard practice for Windows Installer packages.
Please note this will require a lot of disk space, as you’re unpacking around 3 GB – and more, if you add the MSDN installation, though that is not patched in this service pack – just for the product installation.
1. Install the Product
You must create an administrative image of Visual Studio 2005 in order to slipstream the service pack in that way. Installing the patch while installing the product – though a supported scenario with Windows Installer – is not supported in our patches currently because of how actions are conditioned, a more general problem I’ll discuss in a future post.
Assume D: is your CD or DVD drive letter, and \\server\share is a path with space available all licensed users can access.
msiexec.exe /a D:\vs_setup.msi TARGETDIR=\\server\share /L*vx install.log
2. Unpack the Patch
The patch you download for service pack 1 is a wrapper around the .msp file, so you must unpack the .msp file using the patch-standard /extract switch. Assuming you made an administrative installation of Team Suite, the main Visual Studio 2005 SP1 is used below:
VS80sp1-KB926601-X86-ENU.exe /extract “%TMP%”
3. Apply the Patch
Now that you have the .msp file extracted, you must apply it to the administrative installation from step 1.
msiexec.exe /a \\server\share\vs_setup.msi /p “%TMP%\VS80sp1-KB926601-X86-ENU.msp” /L*vx patch.log
4. Installing the Patched Product
The official deployment strategy for Visual Studio 2005 network installations can be found in KB907759. Copy the contents of the CD or DVD to the same directory – like \\server\share in the example above – but do not replace any files. You really don’t need to copy the CAB files in the root directory, either. All those files have been expanded into source directories. This step is to copy the bootstrap files and other required components to the installation directory. After copying is complete, run setup.exe as normal.
Notes
Because when Windows Installer installs a patch to an administrative image, the identity of the patch is essentially lost (the #transform is not persisted, which contains information about how to apply the patch) the service pack is not uninstallable when you install the slipstreamed installation you just created. The entry in Add/Remove Programs (ARP) was written in lieu of having ARP discover the patch, but without an UninstallString registry value for the patch because the patch doesn’t actually exist and can’t be uninstalled.
This is also an expanded form of the installation, with all files loose in their source directory structure. If someone were to write a tool to repackage this, such a tool would have to – based on the Media table, attributes in the File table, and Word Count summary property as described in File Sequencing and How Files are Located – re-CAB some files and embed some of those CAB files back into the .msi file, then reset the administrative image bit (bit 2) in the Word Count summary property.
翻译如下:(首先说明一下,这个跟网上当前流行的说法的是不一样的。是可以解决问题的)
首先,需要大于3G的硬盘空间(解压VS2005用,实际感觉大概需要4~5G,因为后面应用补丁的时候还会占用空间),这个补丁只会应用到VS2005上,和我们的MSND是没有什么关系的。
1。解压VS2005。
首先需要把我们VS2005安装光盘内的安装文件解压在我们的硬盘上。使用如下命令:
msiexec.exe /a G:\VS\vs_setup.msi TARGETDIR=D:\VSSETUP /L*vx install.log
其中G:\VS\vs_setup.msi G:是我的光驱盘符,这个目录是我光盘的VS2005安装文件的路径。
TARGETDIR=D:\VSSETUP 这个是指定你要解压到的位置,我指定了D:\VSSETUP 这个目录。
2。释放补丁包。
把我们下载到的补丁文件解压出来。使用如下命令:
VS80sp1-KB926604-X86-CHS.exe /extract "E:\vspatch\"
E:\vspatch\ 是我解压到的目录。解压出一个VS80sp1-KB926604-X86-CHS.msp的文件,注意,是以msp为后缀名。
3。应用补丁。
把我们解压出来的两个文件进行整合,使用如下命令:
msiexec.exe /a D:\VSSETUP\vs_setup.msi /p "E:\vspatch\VS80sp1-KB926604-X86-CHS.msp" /L*vx patch.log
剩下的就是漫长的等待了,花费的时间大概和你安装好 VS 2005 sp1 应用补丁的时间差不多吧。
打完补丁以后,把你VS安装目录(安装目录是指光盘的安装文件的目录,比如我的是G:\VS\)里的其他文件拷到D:\VSSSETUP里来了,但是,不要覆盖任何文件,还有。cab的压缩包也不用再拷了,刚才其实已经把cab里的东西在第一步的时候解压出来并应用补丁了。
如果是要刻录到光盘里的话,一定记得把光盘的卷标改为"DVD1",因为在安装vs2005的过程中,安装程序会检测卷标,如果你把它改成别的了,在安装时会出现:请插入磁盘:visual studio 2005 DVD 的提示,我以前装时也遇到这问题,后来Copy到计算机里再装就没事,还以为是别的什么问题,反正已经成功了,也就没管,这次装系统又出这问题,不解决不行呀,呵呵,我还想拿这刻盘卖钱呢,于是把我的镜像文件卷标改成DVD1再加载,OK,成功。
好多人不理解上边这句话的意思,来解释一下,他的意思是:G:\VS\目录下的所有“文件”<没有文件夹>,不包括*.cab文件,拷到D:\VSSSETUP,但不要覆盖任何文件,然后进入G:\VS\目录下wcu文件夹,全选,拷到D:\VSSSETUP\wcu目录下,提示是否覆盖文件及文件夹,选否。OK,这样就成功了,如果不按这个来可能会出现:“安装程序正在查找文件 runmsi.exe”,等提示,看到好多人还在网上找,让人提供其下载地址,其实,自己以前的vs 2005 安装盘里就有这文件
现在,可以把这个应用补丁的版本重新做成一张你的VS2005(SP1)安装光盘了,下次进行VS2005的安装可省事了。
I agree with Bit – more detailed info on step 4 would have helped. I managed to sucessfully slipstream SP1 and install vs 2005 after some trial and error. The first time around I got stuck during Setup when it wanted to install windows installer 3.1 and couldnt find the file. I tried to point it in the right direction and even though the file was in the folder I pointed it to it still said "The path is invalid".
Here is what worked for me: From the original source, select everything except the .cab files and copy that to \\server\share. When asked to replace any files or folders say no. The only 2 folders it wants to replace are "program files" and "wcu". Program files is fine like it is, but you need to go into wcu (on original disk) select everything in there, then go to wcu in \\server\\share, copy it there and say no to any files or folders it wants to replace.
The final size of the install folder (without msdn) was 2.87 GB
After that I installed straight from my hdd and
even though it was a bit of a nervous process just waiting for the setup to ask me for a missing file again it went fine and was nice and quick.