{"id":1833,"date":"2006-12-16T10:45:00","date_gmt":"2006-12-16T10:45:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/heaths\/2006\/12\/16\/slipstreaming-visual-studio-2005-service-pack-1\/"},"modified":"2019-02-17T15:30:28","modified_gmt":"2019-02-17T22:30:28","slug":"slipstreaming-visual-studio-2005-service-pack-1","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/setup\/slipstreaming-visual-studio-2005-service-pack-1\/","title":{"rendered":"Slipstreaming Visual Studio 2005 Service Pack 1"},"content":{"rendered":"<p>Now that <a href=\"http:\/\/msdn.microsoft.com\/vstudio\/support\/vs2005sp1\/\">Visual Studio 2005 Service Pack 1<\/a> 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 <a href=\"http:\/\/msdn.microsoft.com\/library\/en-us\/msi\/setup\/applying_small_updates_by_patching_an_administrative_image.asp\">standard practice<\/a> for Windows Installer packages. <\/p>\n<p>Please note this will require a lot of disk space, as you&rsquo;re unpacking around 3 GB &ndash; and more, if you add the MSDN installation, though that is not patched in this service pack &ndash; just for the product installation. <\/p>\n<p><strong>1. Install the Product<\/strong> <\/p>\n<p>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 &ndash; though a supported scenario with Windows Installer &ndash; is not supported in our patches currently because of how actions are conditioned, a more general problem I&rsquo;ll discuss in a future post. <\/p>\n<p>Assume D: is your CD or DVD drive letter, and \\servershare is a path with space available all licensed users can access. <\/p>\n<p><span>msiexec.exe \/a D:vs_setup.msi TARGETDIR=\\servershare \/L*vx install.log <\/span><\/p>\n<p><strong>2. Unpack the Patch<\/strong> <\/p>\n<p>The patch you download for service pack 1 is a wrapper around the <em>.msp<\/em> file, so you must unpack the <em>.msp<\/em> file using the patch-standard <span>\/extract<\/span> switch. Assuming you made an administrative installation of Team Suite, the main Visual Studio 2005 SP1 is used below: <\/p>\n<p><span>VS80sp1-KB926601-X86-ENU.exe \/extract &ldquo;%TMP%&rdquo; <\/span><\/p>\n<p><strong>3. Apply the Patch<\/strong> <\/p>\n<p>Now that you have the <em>.msp<\/em> file extracted, you must apply it to the administrative installation from step 1. <\/p>\n<p><span>msiexec.exe \/a \\serversharevs_setup.msi \/p &ldquo;%TMP%VS80sp1-KB926601-X86-ENU.msp&rdquo; \/L*vx patch.log <\/span><\/p>\n<p><strong>4. Installing the Patched Product<\/strong> <\/p>\n<p>The official deployment strategy for Visual Studio 2005 network installations can be found in <a href=\"http:\/\/support.microsoft.com\/kb\/907759\/en-us\">KB907759<\/a>. Copy the contents of the CD or DVD to the same directory &ndash; like \\servershare in the example above &ndash; but do not replace any files. You really don&rsquo;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 <em>setup.exe<\/em> as normal. <\/p>\n<p><strong>Notes<\/strong> <\/p>\n<p>Because when Windows Installer installs a patch to an administrative image, the identity of the patch is essentially lost (the <em>#transform<\/em> 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 <a href=\"http:\/\/blogs.msdn.com\/heaths\/articles\/arpsystemcomponent.aspx\">in lieu<\/a> of having ARP discover the patch, but without an UninstallString registry value for the patch because the patch doesn&rsquo;t actually exist and can&rsquo;t be uninstalled. <\/p>\n<p>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 &ndash; based on the <a href=\"http:\/\/msdn.microsoft.com\/library\/en-us\/msi\/setup\/media_table.asp\">Media table<\/a>, attributes in the <a href=\"http:\/\/msdn.microsoft.com\/library\/en-us\/msi\/setup\/file_table.asp\">File table<\/a>, and <a href=\"http:\/\/msdn.microsoft.com\/library\/en-us\/msi\/setup\/word_count_summary.asp\">Word Count summary property<\/a> as described in <a href=\"http:\/\/blogs.msdn.com\/heaths\/archive\/2006\/05\/19\/602133.aspx\">File Sequencing and How Files are Located<\/a> &ndash; re-CAB some files and embed some of those CAB files back into the .<em>msi<\/em> file, then reset the administrative image bit (bit 2) in the Word Count summary property.<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&rsquo;re unpacking around 3 [&hellip;]<\/p>\n","protected":false},"author":389,"featured_media":3843,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[20,45,50],"class_list":["post-1833","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-installation","tag-visual-studio","tag-vs2005sp1"],"acf":[],"blog_post_summary":"<p>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&rsquo;re unpacking around 3 [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/posts\/1833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/users\/389"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/comments?post=1833"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/posts\/1833\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/media\/3843"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/media?parent=1833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/categories?post=1833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/tags?post=1833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}