About Windows Installer, the .NET Framework, and Visual Studio.
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.
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.
Heath Stewart has made a nice how to on his MSDN blog on how to slipstream visual studio 2005 SP1. Its
Că tot a apărut VS 2005 SP1 uitaţi un mini How to .. despre cum să faceţi slipstream la SP1. V.Nice.
After installing SP1, Properties window stopped working in Source view of an ASP.NET page. It used to display properties of a selected item (though slow), now it is just blank window with empty list of elements.
Can I uninstall the Service Pack?
The logs created in these steps are very large (60+ MBs), having not path given to the logs puts them wherever the current directory is. They should, at the least, be sent to the %TMP% folder.
Ex: msiexec.exe /a D:\vs_setup.msi TARGETDIR=\\server\share /L*vx "%TMP%\install.log"
Also there is a mistake in the 3rd step since there is no reference to a target directory, it will attempt to patch the source directory.
Simply changing the installer's path to the newly created administrative share is sufficient to properly patch the right source.
Ex: msiexec.exe /a \\server\share\vs_setup.msi /p "%TMP%\VS80sp1-KB926601-X86-ENU.msp" /L*vx "%TMP%\patch.log"
Visual Studio 2005 Service Pack 1 was released yesterday. Here are the direct download links. · VSTS
Aleksey, I recommend you report the problem using Microsoft Connect, which you can access though http://connect.microsoft.com. If you want to uninstall the service pack, you can do so in Add/Remove Programs from the Control Panel, but please take note your original Visual Studio 2005 installation media may be required, as reported in the "Instruction" sections of the download page at http://www.microsoft.com/downloads/details.aspx?familyid=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC&displaylang=en#Instructions.
jcarle, thanks for pointing out the mistake. I'll correct that. As for the log path, it's certainly up to the user to put the log wherever. I usually just use the current working directory because I can simply type "gvim patch.log". You can also decrease log size by getting rid of "x", but it is highly recommended that you pass "*v" to generate verbose logs, which is about the only way to diagnose problems given the transactional nature of Windows Installer.
Die Installation des Service Packs für Visual Studio 2005 dauert lange, sehr lange, desweiteren wird viel freier Speicher auf der Festplatte gebraucht und zwar schlappe 6,2 GB. Sollte man das Visual Studio mehrmals auf der Platte haben so erhöhrt sich
Finally the long awaited TFS service pack 1 has shipped ... see http://www.microsoft.com/downloads/details.aspx?FamilyID=A9AB638C-04D2-4AEE-8AE8-9F00DD454AB8&displaylang=en
Slipstream VS2005 SP1
Oh god, the output of this is big. I'm trying to build a DVD with updated Visual Studio components on it (VS2005 with SP1 slipstreamed, the latest MSDN Library, etc.), but the un-cabbed files take up 3.22GB on their own, which doesn't leave enough room on a DVD for even the older MSDN Library that was on the RTM DVDs. Is there going to be a way of getting around this or will I just have to go without a convenient up-to-date install DVD?
Answers to my prayers - kind of. Good post on slipstreaming the SP1 patch into a Visual Studio 2005 Fresh...
Joe, you could always keep MSDN on a separate disk. http://support.microsoft.com/kb/907759 documents putting both VS and MSDN in the same location, but you could simply put MSDN on a separate disk or just pop in your original when you need to. Personally, I don't install this in lieu of the current Platform SDK (now "Windows SDK") since that can integrate into the combined collection, or you can even just select it for use from VS's options dialog instead of the combined collection. That way it's up-to-date, along with headers, libs, etc.
Visual Studio 2005 Service Pack 1 available now