2022Logo Visual Studio 2022 version 17.8 Release Notes


Watch the recordings of the Visual Studio 2022 launch event to learn about what's new, hear tips & tricks, and download free digital swag.

Developer Community | Visual Studio 2022 Roadmap | System Requirements | Compatibility | Distributable Code | Release History | License Terms | Blogs | Latest Release Known Issues | Whats New in Visual Studio Docs

Click a button to download the latest version of Visual Studio 2022. For instructions on installing and updating Visual Studio 2022, see Update Visual Studio 2022 to the most recent release. Also, see instructions on how to install offline.

Download Community Button Download Professional Button Download Enterprise Button

Visit the Visual Studio site to download other Visual Studio 2022 products.

Visual Studio 2022 version 17.8 Releases

Visual Studio 2022 Blog

The Visual Studio 2022 Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 2022 releases in the following posts:

17.8.3 Visual Studio 2022 version 17.8.3

released Dec 5th, 2023

Summary of What's New in this Release of Visual Studio 2022 version 17.8.3

  • An issue in which projects that use razor files either as linked files or from shared projects has been fixed.

Developer Community

Known Issues

  • Users who have privilege management software from Delinea installed may experience issues launching Visual Studio. Delinea is aware of this issue and has addressed it. Please contact them through https://delinea.com/support to get instructions on how to resolve this issue.”

17.8.2 Visual Studio 2022 version 17.8.2

released Nov 28th, 2023

Summary of What's New in this Release of Visual Studio 2022 version 17.8.2

  • Fixed an issue where, in certain situations, a document window can get stuck showing a loading message.
  • In some cases (when a project is located under a solution folder) you may see an error when saving the project. The project would get saved but you would see an error about unable to cast a COM object. This issue is now fixed so the error is no longer displayed.

Developer Community

17.8.1 Visual Studio 2022 version 17.8.1

released Nov 21st, 2023

Summary of What's New in this Release of Visual Studio 2022 version 17.8.1

  • The updated version of IncrediBuild fixes an issue where building CMake projects using the standard build menu commands would incorrectly redirect the build to use IncrediBuild by default.

Developer Community

17.8.1 Visual Studio 2022 version 17.8.1

released Nov 21st, 2023

Summary of What's New in this Release of Visual Studio 2022 version 17.8.1

  • The updated version of IncrediBuild fixes an issue where building CMake projects using the standard build menu commands would incorrectly redirect the build to use IncrediBuild by default.

Developer Community

17.8.0 Visual Studio 2022 version 17.8.0

released Nov 14th, 2023

Summary of What's New in this Release of Visual Studio 2022 version 17.8

Productivity Features

Features Community Suggestions
GitHub Copilot
Case Preserving Find and Replace 🙏– 76 votes
Create a Pull Request 🙏– 293 votes
Summary Diff 🙏– 7 votes
Mulit-Repo Limit Increase 🙏– 8 votes
GitHub Avatars added to Git Repository Window
Remote Linux Unit Test Support
Make Global Function Static
Sort #include Directives
Code Search and Navigation
Teams Toolkit
Visual Studio Update Notification

C++ and Game Development

Features Community Suggestions
Unreal Engine Snippets
Unreal Engine Test Adapter
Build Insights Functions View 🙏– 141 votes
Make member function const hints
Size and Alignment Hints

F# Improvements

Features Community Suggestions

Debugging and Diagnostics

Features Community Suggestions
Cross platform Enc/Hot Reload debugging support
Debug Linux App Services via Attach to Process
BenchmarkDotNet IDiagnosers
Enhanced Theme Support for Breakpoint Settings Window
.NET Counter Support for New Instruments via Meters API
Test Profiling with VS Profiler
.NET Counters Tool in Debugging Scenario

Razor Tooling

Features Community Suggestions
Code Action for Event Handler Method Generation
Background Color for C# Code

JavaScript and TypeScript Development

Features Community Suggestions
New React TypeScript and ASP.NET Combined Templates
launch.json Support for Open Folder


Features Community Suggestions
Upgraded Microsoft.Data.SQLClient (MDS) from version 3.0 to version 5.0 in SQL Server Data Tools


Features Community Suggestions
New IntelliTest now in Preview

Performance Enhancements

Features Community Suggestions
Improved Razor/Blazor Responsiveness
Enhanced F5 Speed
Optimized IntelliSense for C++ Unreal Engine
Build Acceleration for Non-SDK style .NET Projects

Enterprise Management

Features Community Suggestions
Streamlined client initialization steps for IT administrators

Other Developer Community Suggestions: You asked, we listened!

Productivity Features

GitHub Copilot

Supercharging your productivity with Visual Studio gets a lot easier in the newest release of Visual Studio. GitHub Copilot autocomplete is now available as an optional component, making it far easier to install along with a new Visual Studio install or for an administrator to package with an update. A subscription is required to activate features; free trial is available.

Component details here: Visual Studio Enterprise workload and component IDs | Microsoft Learn.

Case Preserving Find and Replace

When you do a Replace, you can now preserve the original casing of each match in your code. Note that to get Pascal case and Camel case, your Replace string must be in Pascal case or Camel case.

Case Preserve Find and Replace

Toggle case preservation in the Replace window with Alt+V or by clicking on the Preserve case option.

Quick Replace (Ctrl+H):

Case Preserve Quick Replace

Replace in Files (Ctrl+Shift+H):

Case Preserve Replace in Files

Share your thoughts on the case preserving replace experience on this Developer Community ticket: Case-Preserving Search & Replace Across Multiple Files.

Create a Pull Request in Visual Studio

Instead of using the browser, you can create your pull request in Visual Studio. Use the Markdown editor with your pull request descriptions to render headers, bulleted lists, and other Markdown syntax by clicking on the "Preview" button. Enable this via Preview Features > Pull Request.

Use Markdown and add reviewers to pull request

We've iterated in preview versions to deliver better error handling and an improved the reviewer experience. Let us know what you think of Pull Request experience here.

Add Reviewers to your Pull Request

You can now add your reviewers to your pull requests in Visual Studio for both Azure DevOps and GitHub.

Add reviewers to pull request

Try this out by clicking on the "Create a Pull Request" link that appears on push, or by selecting Git > GitHub or Azure DevOps > New Pull Request from the top level menu. Then, navigate to the Reviewers section and search for the reviewers you'd like to add. We plan to continue making updates to improve this Pull Request experience, so please share your feedback about this feature here and engage with us on the suggestion ticket in Developer Community.

We've also added better error handling and improved the reviewer search. Let us know what you think of Pull Request experience here.

Summary Diff

As a continuation of our efforts to improve the diffing experience in Visual Studio, we've implemented the Summary view in the diff and compare views. This new option allows you to see only the changes in the file with a few lines of context, making reviewing your changes in a commit or the comparison between two files much more efficient.

Summary Diff

Let us know what you think of this feature by sharing your feedback here and engage with us on the suggestion ticket in Developer Community.

Multi-Repo Activation Setting and Limit Increase

In some workflows, it was important to control whether multi-repo was activated automatically. With a new setting, you can keep your focus on an individual repository without seeing the multi-repository UI. Additionally, we've increased the number of repositories you can work with at once to 25.

Multi-repo Setting

GitHub Avatars added to Git Repository Window

See your GitHub avatars in the multi-branch graph in the Git Repository Window.

GitHub Avatars

GitHub Actions Tooling

We addressed the unexpected behavior of the new GitHub Actions node in Solution Explorer appearing for repos not hosted on GitHub.com. The new node should now only appear for repos hosted on GitHub.com. Next, we are working on the ability to turn off the new node via Tools > Options.

Code Search and Navigation

As we’ve been working on performance and reliability improvements in All-In-One Search experience, we’ve also added a status bar that displays the count of each type of result that’s been returned.

All-In-One Search

Microsoft Teams Toolkit

In the latest Visual Studio 2022 version 17.8 we introduce more project templates to fit in more business scenario and to make getting start simpler. New templates are:

- an Echo Bot template which echoes user inputs. - a Link Unfurling template which is a type of Message Extensions app that can render URL links to adaptive cards. - a Custom Search Result template which is a Search type of Message Extensions apps that can allow users directly search and show results from chat area or search bar. - a Collect From Input and Process Data template which is an Action type of Message Extensions app that get users input, perform some logic and then send results back to users.

We also redesign our UI for you to easier select among templates, we add filters and tags for different type of templates.

Teams Toolkit Templates UI

Visual Studio Update Notification

Noticed something new? For Visual Studio 2022, we added an overlay to the VS task bar icon to help you know when VS will update.
When there is an update available and you have enabled the "Update on Close" option, the icon will appear. Once you close VS, an update will immediately start and as a result the icon will also disappear. For more information on Update on Close, please visit VS Update on Close.


Additionally We addressed an issue where Git SCC provider binds to non-Git folders in Open Folder mode and prevents other providers such as VisualSVN from working.

C++ and Game Development

  • We have added support for users to run their remote Linux unit tests from the Test Explorer in Visual Studio to any remote Linux machines they are connected to through the Connection Manager

  • Added Problem Details window for navigation of structured diagnostics. Open it using the Details icon on an entry in the Error List.

Structured Diagnostics

  • We have now implemented support for the optional C11 threads library. This includes threads, mutexes, condition variables, and thread-local storage.
  • CMake version 3.27 now ships with Visual Studio in the Desktop Development with C++ workload.
  • You can now navigate to the CMake Targets View by right-clicking anywhere in your Solution Explorer and selecting Switch to CMake Targets View.

Switch to CMake Targets View button

  • You can now also access the CMake Targets View by selecting it from the View dropdown.

CMake Targets View dropdown

  • The CMake Targets View has been simplified so that users don't have to click through folders without buildable executables to get to their desired target.
  • You can now view and edit files on your remote machine in Visual Studio through the Remote File Explorer window.

Remote File Explorer

  • You can now easily make global functions 'static'.
  • When you have a free function that's not in an anonymous namespace and is missing a forward declaration in a header file, you'll receive a suggestion to mark it as static.

Make global function static Example

  • You can adjust this feature's settings by going to Tools > Options > Text Editor > C/C++ > IntelliSense.

Setting For Make global function static

  • Added new snippets for Unreal Engine. Start typing in the editor window and UE snippets will start showing as a member list item in your UE projects. Press tab or enter to create the snippet. Supported snippets include (UClass, UClassExported, UENUM, UFUNCTION, UINTERFACE, UINTERFACEExported, UPROPERTY, USTRUCT, USTRUCTExported, UELOG, SWidget, TActorRange, TObjectRange, WITH_EDITOR)

Unreal Engine snippets

  • You can now create, manage, and run your Unreal Engine tests from within Visual Studio. To ensure Unreal Engine Test Adapter is enabled properly, double check that "Unreal Engine Test Adapter" is selected in the Visual Studio Installer under the "Game development with C++" workload. After installing the UE Test Adapter, your Unreal Engine tests will automatically show up in the Test Explorer when you open Visual Studio. The latest version of our Unreal Engine plugin from the UE marketplace or GitHub is required.

Tafue example

  • We added a "Functions View" to Build Insights integration inside Visual Studio. Build Insights' generated diagnostic report will now show you function generation time as well as ForceInlines.

Build Insights Functions View

  • Added automatic suggestions for making member functions const if they logically should not modify the object's state. By hovering over a member function and clicking the light bulb icon, you can quickly access suggestions to mark the function as const.

Member function const hints lightbulb suggestions

  • You can now hover over a class, struct, union, base type or enum to see the size and alignment.

Size and alignment

  • Now, you have the capability to sort your #include directives. This feature is accessible through the "#include Directives" dropdown inside context menu. You can also access it by adding "Sort #include directives (C++)" in the Code Cleanup configuration settings.

Sort Includes Entry

  • You can adjust the sorting order to align with your preferences by navigating to Tools > Options > Text Editor > C/C++ > Code Cleanup.

Sort Includes Setting

  • /FU is no longer supported for C compilations as there is no /clr support for C.
  • /FU:asFriend has been added to provide parity with in-source #using <assembly> as_friend.


  • Conducted an overhaul of code fixes, resolving numerous bugs (details here).
  • Introduced a new code fix that changes equals (=) to a colon (:) in record field definitions: New F# code fix
  • Implemented an option to activate diagnostics for unopened files. This is turned off by default for performance considerations (details here).
  • Enhanced autocompletion in various scenarios including:
    • Anonymous record fields: Improved autocomplete in anonymous record fields
    • Union case fields: Improved autocomplete in union case fields
    • Discriminated union case fields: Improved autocomplete in discriminated union case fields
    • Enum case value expressions: Improved autocomplete in enum case value expressions
  • Addressed issues related to anonymous record handling in FSI (#15519).
  • Rectified misleading line numbers in FSI (#15384).
  • Unified tooltips for auto-properties: Unified tooltips for auto-properties
  • Bettered parameter name hints by hiding them for argument names that match with discriminated union fields: Improved parameter name hints
  • Resolved issues with navigation to the definitions of external enums and discriminated unions (#15270).
  • Fixed finding references for operators starting with '>' (#15386).

Debugging and Diagnostics

.NET Counters Tool in Debugging Scenario

You now have convenient access to the .NET Counter through the diagnostics window by choosing the ".NET Counters" selection from the "Select Tool" dropdown menu. Even while conducting debugging sessions, you can utilize the capabilities of .NET Counters to oversee and assess crucial performance metrics.

.NET Counters

Cross platform Enc/Hot Reload debugging support

We have added support for Edit and Continue for F5 (with debugger) and Ctrl-F5 (no debugger) scenarios when diagnosing and debugging apps hosted on Linux containers or in Windows Subsystem for Linux (WSL). Please note the F5 debugging scenario relies on .NET 8 RC1 and above.

Debug Linux App Services via Attach to Process

We are excited to unveil a powerful new feature that enables debugging of .NET processes in Linux App Services - via "Attach to Process".
This feature empowers developers to effortlessly debug and diagnose issues within their running Linux Azure App Services instances.

To attach to a process:

1.Select Debug > Attach to Process (or press Ctrl+Alt+P) to open the Attach to Process dialog box.

2.Check the Connection type. It should be "Microsoft Azure app Service"

3.Set the Connection target to your Linux machine name.

4.Select the correct available process and click "Attach"


BenchmarkDotNet IDiagnosers

The Visual Studio Profiler now support BenchmarkDotNet IDiagnosers. These IDiagnosers play a crucial role in the aggregation of diagsessions originating within BenchmarkDotNet scenarios.
The Benchmark tab offers a visualization of the executed benchmarks. It also provides the ability to precisely choose a benchmark from the swimlane by a double-clicking on a specific row.


Alternatively, you have the option to navigate to the source file through the right-click context menu. The statistical data is sourced directly from BenchmarkDotNet and is presented in a structured grid format.


Enhanced Theme Support for Breakpoint Settings Window

We have added a theming support to the Breakpoint Setting window, ensuring seamless consistency across Visual Studio's Light, Dark, and Blue themes.


.Net Counter Support for New Instruments via Meters API

The .NET Counters tool now introduces integration of the .NET Meters API, encompassing new instrument options including "Counter" and "ObservableCounter"

The "Counter" keeps track of a value changing over time, with the caller reporting updates using "Counter.Add." In contrast, the "ObservableCounter" is like the Counter but the caller takes care of keeping track of the total value. Currently .NET Counters tool reports the rate of change in the total.

You can find these metrics in the list of the .NET counter metrics roster, offering enhanced visibility into system performance and resource utilization.Furthermore, we're actively planning to introduce additional instrument options in the future to enhance this capability even further.


Test Profiling with Diagnostics Hub

We are thrilled to introduce an updated Test Profiling capabillity. When you right click on your test in Test Explorer and select "Profile," you can now select between a set of available tools including:

  • CPU Usage
  • GPU Usage
  • File IO
  • .NET Async
  • Events Viewer

Select which tools you want to use and click "Start" and a report will be provided.

Test Profiling

Razor Tooling

Code Action for Event Handler Method Generation

If you’re using an event like @onclick or @onactivate to reference a C# method that hasn’t been defined yet, you can use a new Razor code action to automatically generate that event handler method. This code action also supports custom event arguments.

Code Action for Event Handler Method Generation

Background Color for C# Code

You now have the option to add a background color for C# code located within Razor files. Turned off by default, enable this option by going to Tools > Options > Text Editor > Razor > Advanced and setting Background for C# Code to True.

Background Color for C# Code

JavaScript and TypeScript Development

New React TypeScript and ASP.NET Combined Templates

When we initially released the JavaScript/TypeScript with ASP.NET Combined Templates in this blog post, we got feedback that users deserve a better React TypeScript project creation experience. This new React TypeScript with ASP.NET combined template gets the tsconfig and SpaProxy set up out of the box.

React TypeScript and ASP.NET Combined Templates

launch.json Support for Open Folder

When you choose to open folder on your workspace with launch.json in the .vscode directory to store your launch and debug settings, it will be recoginzed by Visual Studio and included in the dropdown menu for the Debug targets right next to the green button.

launch.json Support for Open Folder


  • Upgraded Microsoft.Data.SQLClient (MDS) from version 3.0 to version 5.0 in SQL Server Data Tools (SSDT) Read more
  • Two new fields are added to Connect dialogue box Connect Dialogue Box
  • The Encrypt property now defaults to true (enabled) when connecting. If a server does not have a trusted certificate configured, the use of Trust Server Certificate set to true may be appropriate. For more details, please refer to the documentation


New IntelliTest now in Preview

IntelliTest explores your .NET code to generate test suites with high code coverage, powered by the latest version of the Z3 problem solver. When you Generate Tests, you have the ability to select which tests you’d like to preserve into a test project that can serve as your regression suite. As your code is updated, you can rerun IntelliTest to keep the generated tests in sync with your code.

Previous implementations of this Enterprise Edition feature only supported code targeting .NET Framework and did not support x64 configuration. This updated version includes the following:

Ennable this feature through Tools > Manage Preview Features and selecting IntelliTest support for NetFx and Net6 using Z3 v4 (requires restart).

Enable Intellitest

Then in your code, right click within a method and select IntelliTest (Preview) and either Create Project to create a project where your tests can be saved or Generate Tests to generate a set of tests to review and decide which ones to keep.

Activate Intellitest in Code


Performance Enhancements

Improved Razor/Blazor Responsiveness

Solutions using Razor and Blazor will experience better responsiveness. We achieved this by significantly reducing memory allocations during cross-process communications between Visual Studio and Roslyn. We tested the OrchardCore solution, and the results are impressive. To open the solution and get Razor intellisense ready, we allocate about 1.4GB less memory. Fewer heap allocations mean less work for the garbage collector, which results in improved responsiveness.

Enhanced F5 Speed

We’ve substantially enhanced F5 performance for native projects by optimizing how breakpoints get set up. The improvements seen by any given project depends on the number of files with breakpoints, the number of DLLs with symbols, etc. Additionally, we’ve optimized the PDB loading process for Windows applications, reducing the time required to load a PDB once it’s located. In our testing, these optimizations delivered a remarkable 20% speed improvement for Unreal Editor projects.

Enhanced F5 Speed

Optimized IntelliSense for C++ Unreal Engine

We’ve made improvements to the speed with which IntelliSense and colorization become available after opening a previously opened C++ file. We have always cached IntelliSense state for an opened file. In 17.8, we’ve restructured the reading from cache, such that the most critical information, including colorization and the highlighting of selected references, are computed first. This optimization helps you get productive sooner.


Build Acceleration for Non-SDK style .NET Projects

Visual Studio 17.8 extends Build Acceleration to managed applications targeting the non-SDK style projects (e.g. projects targeting .NET Framework 4.8 or lower) providing a substantial impact on build times. To enable, set an msbuild project property as follows:


This builds on the success introduced in 17.5 for SDK-style projects, reducing incremental build times significantly.

In our internal testing with in-house solutions, we noticed up to a 50% improvement in incremental build times. However, the actual improvement depends on the state of projects when the build begins. Specifically, the fewer the projects that have been modified in comparison to the total projects in the solution, the greater the improvement. The actual extent of improvement you experience will depend on the specific characteristics of your project and its modifications.

Enterprise Management

Administrators can now easily initialize client machines before delegating standard users control of updating or modifying their installation of Visual Studio. Now, you can programmatically install just the installer by executing "vs_enterprise.exe install --installerOnly".

Administrators that take advantage of our administrator update solution to deliver monthly security updates across their organization can now prompt users to close Visual Studio, which is a common situation that blocks administrator updates from applying. To enable the prompt, configure the new "AdministratorUpdatesNotifications" global policy, which is available in both Intune settings catalog and our ADMX Templates. Thank you to the administrator community who suggested this feature.

Feedback and suggestions

We would love to hear from you! You can Report a Problem or Suggest a Feature Feedback Icon by using the Send Feedback icon in the upper right-hand corner of either the installer or the Visual Studio IDE, or from Help > Send Feedback. You can track your issues by using Visual Studio Developer Community, where you add comments or find solutions. You can also get free installation help through our Live Chat support.


Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.

Top of Page