{"id":240564,"date":"2022-11-29T09:30:03","date_gmt":"2022-11-29T17:30:03","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=240564"},"modified":"2023-08-17T13:40:23","modified_gmt":"2023-08-17T20:40:23","slug":"removing-out-of-support-components-from-your-visual-studio-installations","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/removing-out-of-support-components-from-your-visual-studio-installations\/","title":{"rendered":"Removing out-of-support components from your Visual Studio installations"},"content":{"rendered":"<p><span data-contrast=\"auto\">Visual Studio is a rich IDE that provides an abundant collection of tools and functionality for developers to use in every stage of software development. As we all know, technologies change over time, some faster than others; consequently, <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/productinfo\/vs-servicing#components-not-covered-by-visual-studio-servicing\"><span data-contrast=\"none\">certain components<\/span><\/a><span data-contrast=\"auto\"> that are initially included with Visual Studio may go out of support faster than the IDE itself.\u00a0 When a component transitions to \u201cout of support\u201d, it will not receive any future updates, including security fixes.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Using the latest Visual Studio 2022 version 17.4 installer, it is now possible to bulk remove all components from your Visual Studio installation that have transitioned to an \u201cout-of-support\u201d state. You can do this manually through the UI, programmatically, or by machine wide policy, and you\u2019ll be able to manage both your client machines and your layouts. This functionality can also be used to manage and maintain older Visual Studio 2019 or 2017 installations.\u00a0 By using this new feature when you perform updates, you will be better able to keep your machine secure.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3><span data-contrast=\"none\">Previous Behavior<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">First, let\u2019s briefly review the prior behavior, as this will help illustrate the improvements we\u2019ve made.\u00a0 <\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Up until now, when a component transitioned to an out-of-support state, the UI in the installer was simply updated to display an \u201cout of support\u201d label. It was up to the user to periodically review their installation settings UI (for each instance of Visual Studio installed on the machine), and then evaluate and decide on which components they might want to uninstall. This approach, while functional, didn&#8217;t easily scale across all client machines within an organization. <\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Removing out-of-support components <\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">It&#8217;s now really easy to bulk remove all of the out-of-support components on your client machines using one of the following methods with the latest installer:\u00a0 <\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h5><span style=\"font-size: 12pt;\">Option 1: On-demand removal of out-of-support components\u00a0<\/span><\/h5>\n<p><span data-contrast=\"auto\">You can initiate a single, on-demand removal of all out-of-support components.<\/span><span data-ccp-props=\"{}\"> This functionality can be accessed via the new \u201cRemove all out-of-support components\u201d button in the <a href=\"https:\/\/learn.microsoft.com\/visualstudio\/install\/modify-visual-studio\">Installer&#8217;s &#8220;Modify&#8221; dialog<\/a> as shown below, or you can programmatically use the new <a href=\"https:\/\/learn.microsoft.com\/visualstudio\/install\/use-command-line-parameters-to-install-visual-studio#install-update-modify-repair-uninstall-and-export-commands-and-command-line-parameters\">&#8211;removeOos parameter with the modify command<\/a>.\u00a0 Either way will essentially bulk deselect everything that&#8217;s decorated with an out-of-support label, causing them all to be <b>un<\/b>installed during the next update. The key benefit of this method is that you can control the timing for when the out-of-support component removal happens. For example, if you want to explicitly remove out-of-support components once every few months, this on-demand method will give you time to notify any potentially affected developers, which will in turn give them time to assess impact and remove any project dependencies from components that may disappear. Remember that you can always modify the installation again and add these components back if so desired.<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/button-OOS-in-modify-workloads-dialog-with-red-circle.png\"><img decoding=\"async\" class=\"aligncenter wp-image-240568 size-large\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/button-OOS-in-modify-workloads-dialog-with-red-circle-1024x518.png\" alt=\"Remove out-of-support components button in Modify dialog\" width=\"640\" height=\"324\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/button-OOS-in-modify-workloads-dialog-with-red-circle-1024x518.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/button-OOS-in-modify-workloads-dialog-with-red-circle-300x152.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/button-OOS-in-modify-workloads-dialog-with-red-circle-768x388.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/button-OOS-in-modify-workloads-dialog-with-red-circle-1536x777.png 1536w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/button-OOS-in-modify-workloads-dialog-with-red-circle-2048x1036.png 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Figure 1: Modify an existing installation to bulk deselect all the out-of-support components<\/p>\n<h5><span style=\"font-size: 12pt;\">Option 2: Persistent removal of out-of-support components for a specific instance of Visual Studio\u00a0<\/span><\/h5>\n<p><span data-ccp-props=\"{}\">If you practice good software hygiene habits and regularly update Visual Studio monthly to stay secure, you may also want your specific instance of Visual Studio to just always automatically remove components as soon as they transition to an out-of-support state. To do this, you can enable the new persistent \u201cRemove all out-of-support components during future updates\u201d option in the <a href=\"https:\/\/learn.microsoft.com\/visualstudio\/install\/update-visual-studio#remove-out-of-support-components\">Update Settings dialog<\/a>, as illustrated below. This <a href=\"https:\/\/learn.microsoft.com\/visualstudio\/install\/use-command-line-parameters-to-install-visual-studio#modifysettings-command-and-command-line-parameters\">option is also available programmatically using the modifySettings verb<\/a>. This setting will cause the out-of-support uninstallation behavior to be sticky and persist across all future updates for that instance of Visual Studio, so that once any component transitions to out of support, it\u2019ll simply be removed during the next Visual Studio update.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-with-persistence-OOS-checked-red-circle-final.png\"><img decoding=\"async\" class=\"aligncenter wp-image-240567 size-large\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-with-persistence-OOS-checked-red-circle-final-1024x621.png\" alt=\"Persistent removal of out-of-support components\" width=\"640\" height=\"388\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-with-persistence-OOS-checked-red-circle-final-1024x621.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-with-persistence-OOS-checked-red-circle-final-300x182.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-with-persistence-OOS-checked-red-circle-final-768x466.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-with-persistence-OOS-checked-red-circle-final.png 1147w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a>Figure 2: The Update Settings dialog allows you to persistently remove all out-of-support components during each subsequent update<\/p>\n<h5><span style=\"font-size: 12pt;\">Option 3: Configuring global policy to uninstall all out-of-support components\u00a0<\/span><\/h5>\n<p><span data-contrast=\"auto\">IT Administrators can also set <a href=\"https:\/\/learn.microsoft.com\/visualstudio\/install\/set-defaults-for-enterprise-deployments\">machine wide policy that will apply this persistent setting to all instances and all versions of Visual Studio installed on the machine<\/a>. This global policy supersedes the removal methods discussed above, and the global policy superpower will disable the UI appropriately as illustrated below. This policy can help organizations stay clean with respect to compliance vulnerability detection scans and reports. You can use the <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/enable-group-policy-settings-with-visual-studio-administrative-templates-admx\/\">Visual Studio Administrative Templates (ADMX)<\/a> to manage policy configurations across your organization.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-policy-managed-with-persistence-greyed-out-red-circle.png\"><img decoding=\"async\" class=\"aligncenter wp-image-240566 size-large\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-policy-managed-with-persistence-greyed-out-red-circle-1024x643.png\" alt=\"Remove out-of-support components enabled by policy\" width=\"640\" height=\"402\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-policy-managed-with-persistence-greyed-out-red-circle-1024x643.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-policy-managed-with-persistence-greyed-out-red-circle-300x188.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-policy-managed-with-persistence-greyed-out-red-circle-768x482.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Update-settings-dialog-policy-managed-with-persistence-greyed-out-red-circle.png 1158w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Figure 3 &#8211; Remove out-of-support components option configured via organizational policy<\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Suppressing out-of-support components in your layout<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Many enterprises use <\/span><a href=\"https:\/\/docs.microsoft.com\/visualstudio\/install\/create-a-network-installation-of-visual-studio\"><span data-contrast=\"none\">network layouts<\/span><\/a><span data-contrast=\"auto\"> to control what version of Visual Studio the client machines acquire. If you&#8217;re using <span style=\"font-size: 1rem;\" data-contrast=\"auto\"><a href=\"https:\/\/learn.microsoft.com\/visualstudio\/install\/applying-administrator-updates\">Administrator updates<\/a><\/span><span style=\"font-size: 1rem;\" data-ccp-props=\"{}\"> to keep your clients secure, then it&#8217;s possible to <\/span><\/span><span style=\"font-size: 1rem;\" data-contrast=\"auto\"><a href=\"https:\/\/learn.microsoft.com\/visualstudio\/install\/create-a-network-installation-of-visual-studio?view=vs-2022#configure-the-layout-to-remove-out-of-support-components-on-the-client-machine\">configure your layout to instruct the Administrator update to remove out-of-support components on the client machine.<\/a><\/span><\/p>\n<h3><span data-contrast=\"auto\">Support for older versions of Visual Studio<\/span><\/h3>\n<p><span data-contrast=\"auto\">As mentioned above, the ability for the installer to remove out of support components is a new feature introduced in Visual Studio 2022 and will be available with all supported minor versions, including <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/productinfo\/vs-servicing#enterprise-professional-and-build-tools-editions-support\"><span data-contrast=\"none\">LTSC channels<\/span><\/a><span data-contrast=\"auto\">.\u00a0 However, it is possible to extend this behavior to Visual Studio 2019 and Visual Studio 2017 products as well &#8211; you just need to get the Visual Studio 2022 installer on those client machines. The three easiest ways of getting the latest installer onto a machine with an older version of Visual Studio is to either install some version of Visual Studio 2022 on the client machine, <\/span><a href=\"https:\/\/docs.microsoft.com\/visualstudio\/install\/enabling-administrator-updates\"><span data-contrast=\"none\">deploy any Administrator update to the client machine<\/span><\/a><span data-contrast=\"auto\">, or <\/span><a href=\"https:\/\/docs.microsoft.com\/visualstudio\/install\/create-a-network-installation-of-visual-studio#configure-the-layout-to-always-include-and-provide-the-latest-installer\"><span data-contrast=\"none\">include the latest installer in your network layout<\/span><\/a><span data-contrast=\"auto\">.\u00a0 <\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3>More Information<\/h3>\n<p><span data-contrast=\"auto\">Please review the <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/visualstudio\/install\/out-of-support-components\"><span data-contrast=\"none\">documented list of out-of-support components<\/span><\/a><span data-contrast=\"auto\"> to understand what components have transitioned to an out-of-support state and will be uninstalled should you choose to use this feature.\u00a0\u00a0<\/span><\/p>\n<p>For more information, please refer to the <a href=\"https:\/\/aka.ms\/vs\/admin\/guide\">Visual Studio Administrators Guide<\/a>. As always, we welcome your feedback. For problems or suggestions, please let us know by submitting your feedback at <a href=\"https:\/\/aka.ms\/vs\/admin\/feedback\">Visual Studio Feedback.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visual Studio is a rich IDE that provides an abundant collection of tools and functionality for developers to use in every stage of software development. As we all know, technologies change over time, some faster than others; consequently, certain components that are initially included with Visual Studio may go out of support faster than the [&hellip;]<\/p>\n","protected":false},"author":584,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[6865,6877,6878],"class_list":["post-240564","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-it-admin","tag-out-of-support","tag-supported-components"],"acf":[],"blog_post_summary":"<p>Visual Studio is a rich IDE that provides an abundant collection of tools and functionality for developers to use in every stage of software development. As we all know, technologies change over time, some faster than others; consequently, certain components that are initially included with Visual Studio may go out of support faster than the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/240564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/584"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=240564"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/240564\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=240564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=240564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=240564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}