{"id":245929,"date":"2023-11-15T10:00:20","date_gmt":"2023-11-15T18:00:20","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=245929"},"modified":"2023-11-27T15:52:23","modified_gmt":"2023-11-27T23:52:23","slug":"introducing-visual-studio-17-9-preview-1-is-here","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/introducing-visual-studio-17-9-preview-1-is-here\/","title":{"rendered":"Introducing Visual Studio 17.9 &#8211; Preview 1 is Here!"},"content":{"rendered":"<p><span class=\"TextRun Highlight SCXW62521282 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW62521282 BCX8\">We&#8217;re<\/span><span class=\"NormalTextRun SCXW62521282 BCX8\"> excited to introduce Visual Studio 17.9 Preview 1, another leap forward in our continuous effort to enhance your development experience. This latest iteration is not just an update; <\/span><span class=\"NormalTextRun SCXW62521282 BCX8\">it&#8217;s<\/span><span class=\"NormalTextRun SCXW62521282 BCX8\"> a transformation, enriched with features that speak directly to your needs for productivity and flexibility.<\/span><\/span><span class=\"EOP SCXW62521282 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/visualstudio.microsoft.com\/downloads\/\" target=\"_blank\">Download Visual Studio 2022<\/a><\/div><\/p>\n<p><span class=\"TextRun Highlight SCXW15220185 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW15220185 BCX8\">At the heart of this release is a <\/span><span class=\"NormalTextRun SCXW15220185 BCX8\">synergy<\/span><span class=\"NormalTextRun SCXW15220185 BCX8\"> with AI, bringing tools like GitHub Copilot to the forefront. Imagine crafting perfect Git commit messages without a second thought, or seamlessly navigating complex code with advanced IntelliSense support for Unreal Engine projects. <\/span><span class=\"NormalTextRun SCXW15220185 BCX8\">We&#8217;re<\/span><span class=\"NormalTextRun SCXW15220185 BCX8\"> not just enhancing features; <\/span><span class=\"NormalTextRun SCXW15220185 BCX8\">we&#8217;re<\/span><span class=\"NormalTextRun SCXW15220185 BCX8\"> rethinking the way you interact with your development environment.<\/span><\/span><span class=\"EOP SCXW15220185 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><span class=\"TextRun Highlight SCXW15151749 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW15151749 BCX8\">From memory management to debugging, each improvement in this release is designed to streamline your workflow and spark innovation. Let&#8217;s dive into the details!<\/span><\/span><\/p>\n<p>Let us know your <a href=\"#thank-you\">favorite feature<\/a>!<\/p>\n<table style=\"font-weight: 400;\" data-tablestyle=\"MsoNormalTable\" data-tablelook=\"1184\" aria-rowcount=\"6\">\n<tbody>\n<tr aria-rowindex=\"1\">\n<td data-celllook=\"69905\"><b><span data-contrast=\"none\">Area<\/span><\/b><span data-contrast=\"none\">\u202f\u202f\u202f<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/td>\n<td data-celllook=\"69905\"><b><span data-contrast=\"none\">Enhancements<\/span><\/b><span data-contrast=\"none\">\u202f\u202f\u202f<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr aria-rowindex=\"2\">\n<td data-celllook=\"69905\"><a href=\"#productivity\"><b><span data-contrast=\"none\">Productivity<\/span><\/b><\/a><\/td>\n<td data-celllook=\"69905\">\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"#generated-git-commit-messages\"><span data-contrast=\"auto\">Generated Git Commit Messages (GitHub Copilot)<\/span><\/a><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><a href=\"#event-handler-leaks-insights\"><span data-contrast=\"auto\">Event Handler Leaks Insights<\/span><\/a><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><a href=\"#non-modal-debug-visualizers\"><span data-contrast=\"auto\">Non-modal Debug Visualizers<\/span><\/a><\/li>\n<li><a href=\"#instrumentation-tool-start-with-collection-pause-option\"><span data-contrast=\"auto\">Instrumentation &#8220;Start with collection pause&#8221; option<\/span><\/a><span data-contrast=\"auto\">\u00a0(\ud83d\ude4f<a href=\"https:\/\/developercommunity.visualstudio.com\/t\/removed-profiling-options-Instrumenting\/10385122\" target=\"_blank\" rel=\"noopener\">Community Suggestion<\/a> \u2013 1 vote)<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"5\" data-aria-level=\"1\"><a href=\"#include-references-diagnostics\"><span data-contrast=\"auto\">#include References Diagnostics<\/span><\/a><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"6\" data-aria-level=\"1\"><a href=\"#memory-layout-for-c-classes-and-structs\"><span data-contrast=\"auto\">Memory Layout for C++ Classes, Structs, and Unions<\/span><\/a><span data-contrast=\"auto\">\u00a0(\ud83d\ude4f<a href=\"https:\/\/developercommunity.visualstudio.com\/t\/add-tools-to-display-c-class-memory-layout\/392536\" target=\"_blank\" rel=\"noopener\">Community Suggestion<\/a> \u2013 90 votes)<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"7\" data-aria-level=\"1\"><a href=\"#switch-between-single-and-multiple-rows-in-the-document-well\"><span data-contrast=\"auto\">Switch between single and multiple rows in the document well<\/span><\/a><span data-contrast=\"auto\">\u00a0(\ud83d\ude4f<a href=\"https:\/\/developercommunity.visualstudio.com\/t\/scrollable-open-file-tabs-with-mouse-wheel\/353560\" target=\"_blank\" rel=\"noopener\">Community Suggestion<\/a> \u2013 253 votes)<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr aria-rowindex=\"3\">\n<td data-celllook=\"69905\"><a href=\"#c-game-dev\"><b><span data-contrast=\"none\">C++ Game Dev<\/span><\/b><\/a><\/td>\n<td data-celllook=\"69905\">\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"#improved-blueprint-experience-in-visual-studio\"><span data-contrast=\"auto\">Improved Unreal Engine Blueprints Support<\/span><\/a><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><a href=\"#improved-intellisense-for-unreal-engine-projects\"><span data-contrast=\"auto\">Improved IntelliSense Support for Unreal Engine<\/span><\/a><span data-contrast=\"auto\">\u00a0(\ud83d\ude4f<a href=\"https:\/\/developercommunity.visualstudio.com\/t\/intellisense-improvement-show-sizeof-structs-and-a\/848297\" target=\"_blank\" rel=\"noopener\">Community Suggestion<\/a> \u2013 6 votes)<\/span><\/li>\n<li><a href=\"#specify-custom-cmake-executable\"><span data-contrast=\"auto\">Specify Custom CMake Executable<\/span><\/a><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr aria-rowindex=\"4\">\n<td data-celllook=\"69905\"><a href=\"#net-c\"><b><span data-contrast=\"none\">.NET\/C#<\/span><\/b><\/a><\/td>\n<td data-celllook=\"69905\">\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"#automatic-deoptimization\"><span data-contrast=\"auto\">Automatic Deoptimization<\/span><\/a><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"#razor-snippets\">Razor Snippets<\/a><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"#multi-tfm-support-for-razor-files\">Multi-TFM Support for Razor Files<\/a><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><a href=\"#blazor-scaffolding-for-net-8-projects\"><span data-contrast=\"auto\">Blazor CRUD scaffolding<\/span><\/a><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr aria-rowindex=\"5\">\n<td data-celllook=\"69905\"><a href=\"#extensibility\"><b><span data-contrast=\"none\">Extensibility<\/span><\/b><\/a><\/td>\n<td data-celllook=\"69905\">\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"#extensibility\"><span data-contrast=\"auto\">Ability to load extensions using config files<\/span><\/a><span data-contrast=\"auto\">\u00a0(\ud83d\ude4f<a href=\"https:\/\/developercommunity.visualstudio.com\/t\/a-vsconfig-file-should-automatically-prompt-to-ins\/518364\" target=\"_blank\" rel=\"noopener\">Community Suggestion<\/a> \u2013 140 votes)<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr aria-rowindex=\"6\">\n<td data-celllook=\"69905\"><a href=\"#ui-refresh-preview-and-tinted-themes\"><b><span data-contrast=\"none\">UI Refresh<\/span><\/b><\/a><\/td>\n<td data-celllook=\"69905\">\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"#ui-refresh-preview-and-tinted-themes\"><span data-contrast=\"auto\">Visual Studio UI Refresh Preview<\/span><\/a><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Productivity<\/h2>\n<h3><span data-contrast=\"none\">Generated Git Commit Messages<\/span><\/h3>\n<p><span data-contrast=\"auto\">Developers make Git commits frequently, but many of us don\u2019t invest the time to write meaningful commit messages. Use the new generated commit message feature to help you describe your set of changes.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">To try it out, you&#8217;ll need an active <\/span><a href=\"https:\/\/github.com\/features\/copilot?utm_source=vscom&amp;utm_medium=hero&amp;utm_campaign=cta-get#pricing\"><span data-contrast=\"none\">GitHub Copilot subscription<\/span><\/a><span data-contrast=\"auto\"> and the <\/span><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=VisualStudioExptTeam.VSGitHubCopilot\"><span data-contrast=\"none\">preview GitHub Copilot Chat Extension<\/span><\/a><span data-contrast=\"auto\">. Click on the \u201cAdd AI Generated Commit Message\u201d sparkle pen icon in the Git Changes window to generate a suggestion. Copilot will look at the file changes in your commit, summarize them, and then describe each change. You can then &#8220;Insert AI Suggestion&#8221; or &#8220;Discard.&#8221; Share your feedback on this feature <a href=\"https:\/\/aka.ms\/AICommitMessages\">here<\/a>. \u202f<\/span><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Event Handler Leaks Insights<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Manage Memory Insights tab provides additional information. It can now detect &#8220;Event Handler Leaks,&#8221; which can happen when one object subscribes to another object&#8217;s events. If the event publisher lives longer than the event subscriber, the subscriber remains in memory, even when there are no other references to it. This can cause memory leaks and the application will use more memory over time without releasing unused memory properly.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/ManagedMemory.png\"><img decoding=\"async\" class=\"aligncenter wp-image-245930\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/ManagedMemory.png\" alt=\"A screenshot showing the new feature in Managed Memory\" width=\"642\" height=\"361\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/ManagedMemory.png 480w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/ManagedMemory-300x169.png 300w\" sizes=\"(max-width: 642px) 100vw, 642px\" \/><\/a><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Non-modal Debug Visualizers<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Managed Custom Visualizers and the String Visualizes are now non-modal, allowing concurrent interaction with the Editor while the visualizer window is active. It is possible to have multiple types of visualizers open simultaneously, and you have the flexibility to choose whether to float or dock your visualizer window.<\/span><span data-ccp-props=\"{&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Instrumentation tool &#8220;Start with collection pause&#8221; option<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"none\">The Instrumentation tool now has a &#8220;start-pause&#8221; option for profiling applications. This lets you start the app under the profiler&#8217;s control without immediately collecting data. You can resume data collection later when needed by hitting the record button. This is useful, especially in gaming, where you can get into the game before data collection starts. The feature is compatible with both native and managed projects.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/StartCollection.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-245931\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/StartCollection.png\" alt=\"Start Collection with Pause feature in diagnostics\" width=\"720\" height=\"321\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/StartCollection.png 720w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/StartCollection-300x134.png 300w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">#include References Diagnostics<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">You can now use this feature to visualize how many times each #include directive has been referenced in your code. You can view the specific references by clicking on the reference count on top of the directive. You can also navigate to any reference by double-clicking on it in the list.<\/span><\/p>\n<p>By default, this feature is disabled. To enable it, right-click anywhere in your code editor and select &#8220;#include Directives&#8221; from the context menu. Then, choose &#8220;Turn #include Diagnostics On&#8221;.<a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/include-directives.png\"><img decoding=\"async\" class=\"aligncenter wp-image-245932 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/include-directives.png\" alt=\"Image showing how to turn on #include Directives Diagnostics tool\" width=\"1499\" height=\"484\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/include-directives.png 1499w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/include-directives-300x97.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/include-directives-1024x331.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/include-directives-768x248.png 768w\" sizes=\"(max-width: 1499px) 100vw, 1499px\" \/><\/a><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Memory Layout for C++ Classes and Structs<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><i><span data-contrast=\"auto\">This feature is currently in its experimental stage and will undergo gradual enhancements in the Visual Studio 2022 version 17.9 Preview channels.<\/span><\/i><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:257}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">This feature allows you to visualize the memory layout of classes or structs. It shows you how the data members are arranged in memory, including their padding, offsets, and sizes. To access this feature, hover your cursor over the name of a class or struct in your code editor. A Quick Info tooltip will appear with a \u201cMemory Layout\u201d link. Click on the link to open a new window with the memory layout diagram. In the diagram, you can hover over each data member to see its offset and size in bytes.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:257}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Switch between single and multiple rows in the document well<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">You can now quickly switch between single and multiple tab rows in Visual Studio&#8217;s document well by scrolling the mouse wheel up or down. The first time you open more tabs in Visual Studio than can fit in a single row in the document well, you&#8217;ll see a tip letting you know of this new feature.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{}\"><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/DocWell.png\"><img decoding=\"async\" class=\"aligncenter wp-image-245933\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/DocWell.png\" alt=\"Image showing the new tabbed document well in visual studio\" width=\"703\" height=\"214\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/DocWell.png 618w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/DocWell-300x91.png 300w\" sizes=\"(max-width: 703px) 100vw, 703px\" \/><\/a><\/span><\/p>\n<p><span data-contrast=\"auto\">Scrolling down on the mouse wheel while hovering over the tabs in the document well will shift your view to show multiple tab rows. Conversely, scrolling up on the mouse wheel will collapse the view down to a single tab row.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2>C++ Game Dev<\/h2>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Improved Blueprint Experience in Visual Studio<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:257}\">\u00a0<\/span><\/h3>\n<p><i><span data-contrast=\"auto\">This is currently an experimental feature and will gradually be made available to Unreal Engine developers in the coming weeks in the Visual Studio 2022 version 17.9 Preview channels.<\/span><\/i><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:257}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Blueprints support in Visual Studio just got easier. You can now view Blueprint references and Asset Properties without installing the Visual Studio Integration Tool plugin. The update removes the requirement for building your game before gathering Blueprint information. Your Blueprint reference experience will be greatly improved as Visual Studio will now display CodeLens hints with less machine resources and reduced latency. Next, we have added support for including usages of UFUNCTIONs outside of the class hierarchy directly in the CodeLens results. Lastly, we will cache the results from previous scans and only process new or modified assets since the last scan.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:257}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Improved IntelliSense for Unreal Engine Projects<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:257}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Unreal Engine uses its own reflection mechanism to connect its C++ and Blueprints worlds. This is achieved through custom preprocessing of C++ sources with Unreal Header Tool (UHT) and injection through regular C++ preprocessor. In Visual Studio 2022 version 17.9 Preview 1, we have improved the handling of Unreal Engine IntelliSense by ensuring consistency and accuracy. IntelliSense in Visual Studio will now refresh more readily for UHT generated files, reducing the likelihood of displaying unwarranted errors.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3><span data-contrast=\"none\">Specify custom CMake executable<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">You can now specify a custom CMake executable if you want to use one other than the executable shipped with Visual Studio. To do so, please navigate to <\/span><i><span data-contrast=\"auto\">Tools &gt; Options<\/span><\/i><span data-contrast=\"auto\"> and under <\/span><i><span data-contrast=\"auto\">CMake &gt; General<\/span><\/i><span data-contrast=\"auto\"> select <\/span><b><span data-contrast=\"auto\">Enable custom CMake Executable.<\/span><\/b><span data-contrast=\"auto\"> From there, specify the path to your CMake executable you want to use.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/custom-cmake.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-245934\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/custom-cmake.png\" alt=\"Image showing the new custom cmake file feature\" width=\"720\" height=\"468\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/custom-cmake.png 720w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/custom-cmake-300x195.png 300w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<h2>.NET\/C#<\/h2>\n<h3><span data-contrast=\"none\">Automatic Deoptimization<\/span><\/h3>\n<p><span data-contrast=\"none\">With NET 8, the Debugger now automatically deoptimizes release code and external code while debugging. When you set breakpoints and go through your code step by step, only the parts you stop at will be deoptimized, keeping the rest of your application running smoothly. To use this feature, you just need to turn off the &#8220;Just My Code&#8221; option in the debugger settings. This improvement brings benefits like fewer errors in the locals, watch, and immediate windows, and less unexpected code jumps when you&#8217;re debugging your application.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Razor Snippets<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">HTML snippets are now available in Razor (.razor) files, making it easier and faster to write out common, repeating code patterns.\u00a0 To insert a snippet, start typing a common HTML tag (i.e. &lt;table&gt;) and select one of the dashed-box options from the resulting dropdown.<\/span><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\">Multi-TFM Support for Razor Files<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Multi-targeting framework support (TFM) is now available for Razor files. This allows you to include code that targets a particular framework and filter between code that targets each framework using the dropdown header above the editor window.\u00a0 You can also use the navigation bar drop downs to quickly navigate to different classes and members in the Razor file.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/multitfm.png\"><img decoding=\"async\" class=\"aligncenter wp-image-245935\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/multitfm.png\" alt=\"Blazor file with multi tfm intellisense support\" width=\"712\" height=\"290\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/multitfm.png 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/multitfm-300x122.png 300w\" sizes=\"(max-width: 712px) 100vw, 712px\" \/><\/a><\/p>\n<h3><span data-contrast=\"none\">Blazor Scaffolding for .NET 8 projects<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">We have added support to scaffold views for Blazor projects, including CRUD (Create-Read-Update-Delete) using Entity Framework. After adding a model class to a Blazor project, you can get started with scaffolding by right clicking on the project in the Solution Explorer and selecting <\/span><i><span data-contrast=\"auto\">Add &gt;\u00a0 New Scaffolded Item<\/span><\/i><span data-contrast=\"auto\">. In the dialog that appears the new scaffolders are in the node under Common &gt; Razor Component. See the image below.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\"><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffolding.png\"><img decoding=\"async\" class=\"aligncenter wp-image-245938\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffolding.png\" alt=\"New blazor scaffolding wizard\" width=\"667\" height=\"461\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffolding.png 480w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffolding-300x208.png 300w\" sizes=\"(max-width: 667px) 100vw, 667px\" \/><\/a><\/span><\/p>\n<p><span data-contrast=\"auto\">If you select the option Razor Components using Entity Framework (CRUD), you will get another dialog prompting for the details of what should be scaffolded.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\"> <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffoldingcrud.png\"><img decoding=\"async\" class=\"aligncenter wp-image-245937\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffoldingcrud.png\" alt=\"CRUD specific scaffolding UI\" width=\"633\" height=\"282\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffoldingcrud.png 480w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffoldingcrud-300x134.png 300w\" sizes=\"(max-width: 633px) 100vw, 633px\" \/><\/a><\/span><\/p>\n<p><span data-contrast=\"auto\">Here you select your model class and the DbContext that should be used. You can also create a new DbContext if needed. After completing this process files will be added to your project to enable the CRUD operations on the model class selected.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Here is a screenshot of the UI which is generated from the model provided.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\"><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffolding3.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-245936\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffolding3.jpg\" alt=\"Screenshot of the newly scaffolded UI\" width=\"616\" height=\"295\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffolding3.jpg 480w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/blazorscaffolding3-300x144.jpg 300w\" sizes=\"(max-width: 616px) 100vw, 616px\" \/><\/a><\/span><\/p>\n<p><span data-contrast=\"auto\">Some important notes on the code which is generated in your project.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"23\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">The scaffolded code uses the new static server-side rendering support in Blazor in .NET 8<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"23\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">The generated components only work on the server &#8211; they aren&#8217;t supported with WebAssembly based rendering<\/span><span data-ccp-props=\"{&quot;335559739&quot;:0}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"23\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">The generated code uses the new QuickGrid component in .NET 8 for the table, which supports, sorting, filtering, pagination, etc if you enable interactivity on the page<\/span><span data-ccp-props=\"{&quot;335559739&quot;:0}\">\u00a0<\/span><\/li>\n<\/ul>\n<h2>Extensibility<span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Many users enhance their Visual Studio experience by relying on custom extensions to provide very targeted specific, and often contextual functionality. However, it was sometimes difficult to standardize extension functionality across teams, projects, installations, etc.\u00a0 We\u2019re happy to announce that now, you can leverage your <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/visualstudio\/install\/import-export-installation-configurations?view=vs-2022#vsconfig-file-format\"><span data-contrast=\"none\">vsconfig files and include extension information<\/span><\/a><span data-contrast=\"auto\"> in there, alongside the component information.\u00a0 Since vsconfig files are easy to pass around and share with others, it\u2019ll be easy to now share information about which extensions to load. This <\/span><a href=\"https:\/\/developercommunity.visualstudio.com\/t\/A-vsconfig-file-should-automatically-pr\/518364?q=vsconfig+\"><span data-contrast=\"none\">capability to load extensions thru a vsconfig file was one of our top requested community features<\/span><\/a><span data-contrast=\"auto\">, and we\u2019re very excited to finally be able to deliver on it.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">When the Visual Studio installer reads a vsconfig file, it will detect if any extensions are specified, and if so, it will load them within Visual Studio in a machine wide context, available for all users to use.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Over the past few minor releases, we have extended the capability of vsconfig files to ensure they work in a variety of common scenarios.\u00a0 You can use the installer and import a config file into an existing installation, or you can use it to initialize a new installation. You can programmatically pass in a vsconfig file, either directly or by using winget configure. You can add a vsconfig file to your repo or solution, and when Visual Studio loads the solution it\u2019ll process the config file.\u00a0 You can create a layout using a vsconfig file and now you can instruct clients that install from that layout to respect the config file.\u00a0 Please try this feature out and <\/span><a href=\"https:\/\/developercommunity.visualstudio.com\/t\/A-vsconfig-file-should-automatically-pr\/518364?q=vsconfig+\"><span data-contrast=\"none\">let us know what you think<\/span><\/a><span data-contrast=\"auto\">!<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<h2><span data-contrast=\"none\">UI Refresh Preview and Tinted Themes<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">In this preview, we\u2019re finally able to make the UI Refresh available for folks to try for themselves. To enable the UI Refresh Preview, go to Tools &gt; Manage Preview Features, then look for \u201cExperimental control styles\u201d. Once the option is checked, you\u2019ll need to restart Visual Studio to see the new UI.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">In addition to the new UI which is based on the Fluent Design language, we\u2019re also proud to reveal the first preview of the Tinted themes. You can find these under Tools &gt; Theme or in the \u201cColor Theme\u201d combobox in Tools\\Options under Environment &gt; Visual Experience. This new set of themes, inspired by Microsoft Edge, gives you a new set of options to give Visual Studio a fresh set of colors to express your particular style.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><div style=\"width: 2880px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-245929-1\" width=\"2880\" height=\"1620\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/20231025-rejuvenation-tinted-themes.mp4?_=1\" \/><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/20231025-rejuvenation-tinted-themes.mp4\">https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/20231025-rejuvenation-tinted-themes.mp4<\/a><\/video><\/div><\/p>\n<p><span class=\"TextRun SCXW195006460 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW195006460 BCX8\">This <\/span><span class=\"NormalTextRun SCXW195006460 BCX8\">represents<\/span><span class=\"NormalTextRun SCXW195006460 BCX8\"> the first <\/span><span class=\"NormalTextRun SCXW195006460 BCX8\">functional preview of <\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW195006460 BCX8\">the UI<\/span><span class=\"NormalTextRun SCXW195006460 BCX8\"> Refresh, but we know we still have more work to do. The Blue theme still has some issues and is currently incompatible with <\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW195006460 BCX8\">the UI<\/span><span class=\"NormalTextRun SCXW195006460 BCX8\"> Refresh, as are any custom themes<\/span><span class=\"NormalTextRun SCXW195006460 BCX8\"> that you might have installed from outside Visual Studio. <\/span><span class=\"NormalTextRun SCXW195006460 BCX8\">We\u2019re<\/span><span class=\"NormalTextRun SCXW195006460 BCX8\"> working on our story for these, so stay tuned.<\/span><\/span><span class=\"EOP SCXW195006460 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">We\u2019d love to hear your feedback on these new features To <\/span><a href=\"https:\/\/aka.ms\/uirefresh179devcomm\"><span data-contrast=\"none\">share your feedback on the UI Refresh<\/span><\/a><span data-contrast=\"auto\">, you can join the discussion on Developer Community. If you want to <\/span><a href=\"https:\/\/aka.ms\/uirefreshtinted179devcomm\"><span data-contrast=\"none\">share your feedback on the Tinted Themes<\/span><\/a><span data-contrast=\"auto\">, we\u2019ve got a Developer Community discussion specifically for that too. Please stay tuned to the Visual Studio blog for more information about the UI Refresh in the near future.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">Thank you!<\/span><\/h2>\n<p style=\"text-align: center;\"><iframe src=\"https:\/\/www.surveymonkey.com\/r\/NXJ8JYW\" width=\"760\" height=\"450\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/p>\n<p><span data-contrast=\"none\">We<\/span><span data-contrast=\"none\"> appreciate the time you\u2019ve<\/span><span data-contrast=\"none\"> spent reporting issues\/suggestions and hope you continue to give us feedback when using Visual Studio on what you like and what we can improve. <\/span><span data-contrast=\"none\">Your feedback is critical to help us make Visual Studio the best tool it can be! <\/span><span data-contrast=\"none\">You can share feedback with us via\u202f<\/span><a href=\"https:\/\/developercommunity.visualstudio.com\/home%22%20\/t%20%22_blank\"><span data-contrast=\"none\">Developer Community<\/span><\/a><span data-contrast=\"none\">: report any bugs or issues via\u202f<\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio?view=vs-2022\"><span data-contrast=\"none\">report a problem<\/span><\/a><span data-contrast=\"none\">\u202fand\u202f<\/span><a href=\"https:\/\/developercommunity.visualstudio.com\/VisualStudio\/suggest\"><span data-contrast=\"none\">share your suggestions<\/span><\/a><span data-contrast=\"none\">\u202ffor new features or improvements to existing ones.\u202f<\/span><span data-contrast=\"none\">\u202f\u202f\u202f<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Stay connected with the Visual Studio team by following us on <\/span><a href=\"https:\/\/www.youtube.com\/@visualstudio\"><span data-contrast=\"none\">YouTube<\/span><\/a><span data-contrast=\"none\">, <\/span><a href=\"https:\/\/twitter.com\/VisualStudio\"><span data-contrast=\"none\">Twitter<\/span><\/a><span data-contrast=\"none\">, <\/span><a href=\"https:\/\/www.linkedin.com\/showcase\/microsoft-visual-studio\/\"><span data-contrast=\"none\">LinkedIn<\/span><\/a><span data-contrast=\"none\">, <\/span><a href=\"https:\/\/www.twitch.tv\/visualstudio\"><span data-contrast=\"none\">Twitch<\/span><\/a><span data-contrast=\"none\"> and on <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/visualstudio\/?view=vs-2022\"><span data-contrast=\"none\">Microsoft Learn<\/span><\/a><span data-contrast=\"none\">.\u202f\u202f\u202f<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">On behalf of the whole Visual Studio team, thanks for reading and Happy Coding!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re excited to introduce Visual Studio 17.9 Preview 1, another leap forward in our continuous effort to enhance your development experience. This latest iteration is not just an update; it&#8217;s a transformation, enriched with features that speak directly to your needs for productivity and flexibility.\u00a0 At the heart of this release is a synergy with [&hellip;]<\/p>\n","protected":false},"author":1965,"featured_media":239569,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[],"class_list":["post-245929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio"],"acf":[],"blog_post_summary":"<p>We&#8217;re excited to introduce Visual Studio 17.9 Preview 1, another leap forward in our continuous effort to enhance your development experience. This latest iteration is not just an update; it&#8217;s a transformation, enriched with features that speak directly to your needs for productivity and flexibility.\u00a0 At the heart of this release is a synergy with [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/245929","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\/1965"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=245929"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/245929\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/239569"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=245929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=245929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=245929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}