Visual Studio 2022 v17.0 Preview Release Notes
Developer Community | Visual Studio 2022 Roadmap | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Latest Release Known Issues | Whats New in Visual Studio Docs
Important
This release is not "go-live" and not intended for use on production computers or for creating production code. For instructions on installing and updating Visual Studio 2022, see this documentation on updating Visual Studio 2022 to the most recent release.
What's New in Visual Studio 2022 v17.0 Preview
Visual Studio 2022 v17.0 Preview Releases
- July 22, 2021 — Visual Studio 2022 version 17.0 Preview 2.1
- July 14, 2021 — Visual Studio 2022 version 17.0 Preview 2
- June 24, 2021 — Visual Studio 2022 version 17.0 Preview 1.1
- June 17, 2021 — Visual Studio 2022 version 17.0 Preview 1
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:
Visual Studio 2022 version 17.0 Preview 2.1 
released July 22, 2021
Summary of What's New in this Release of Visual Studio 2022 version 17.0 Preview 2.1
- Fixed a crash that may occur when launching or shutting down the Performance Profiler or Diagnostic Tools, or opening or closing Project Overview pages.
- Fix a crash in Licensing when the English Language Pack is uninstalled.
- Fixed an issue where document tabs get stuck in a layout loop.
Visual Studio 2022 version 17.0 Preview 2
released July 14, 2021
Summary of What's New in this Release of Visual Studio 2022 version 17.0 Preview 2
C++
- You can now build and debug natively on WSL2 without establishing a SSH connection. Both cross-platform CMake projects and MSBuild-based Linux projects are supported.
- The v143 build tools are now available through the Visual Studio installer as well as the standalone build tools.
- Visual Studio now supports the
buildPresets.targetsoption in CMakePresets.json. This allows you to build a subset of targets in your CMake project. - The Project menu in CMake projects has been streamlined and exposes options to "Delete Cache and Reconfigure" and "View Cache".
- Code analysis now enforces that return values of functions annotated with
_Check_return_or_Must_inspect_result_must be checked. - LLVM tools shipped with Visual Studio have been upgraded to LLVM 12. See the LLVM release notes for details.
- Clang-cl support was updated to LLVM 12.
- C++ AMP headers are now deprecated. Including <amp.h> in a C++ project will generate build errors. To silence the errors, define
_SILENCE_AMP_DEPRECATION_WARNINGS. Please see https://aka.ms/amp_deprecate for more details. - The new Hot Reload experience is now available to native C++ applications when running under the debugger. For more information see our Hot Reload section below.
- Attach to process dialog improvements
- Exception helper improvements
- Force Run to Click
- Memory Dump Diagnostic Analysis
- Introduce parameter refactoring can move a new parameter from the method implementation to its callers.
- Track Value Source for data flow analysis
- Option to underline variables that are re-assigned
- Added search option in Generate Overrides dialog
- Quick info for XML <code> tags now preserve whitespace and CDATA blocks
- Find All References window will now group multi-target projects
- Refactoring to remove repetitive types in Visual Basic
- Go to Implementation will no longer navigate to members with abstract declarations that are also overridden.
- Hot Reload support in Razor files
- Performance improvements
- Formatting and indentation enhancements
- New Razor editor colors
- TagHelpers are now colorized and have quick info classification support and completion tooltips
- Angle brace highlighting and navigation for Razor constructs
- Comments now have auto-completion, smart indentation, auto-inclusion of commenting continuations, and block comment navigation
- Hot Reload (for both .NET and C++ code) makes it possible to make many types of code edits to your running app and apply them without needing to pause the apps execution with something like a breakpoint. In this release we continue to improve this feature, highlights include: Support for C++, .NET Hot Reload when running without debugger (CTRL-F5), support for more types of edits and more.
- We have revamped the “Trust Settings” functionality and can now show a warning whenever untrusted code (e.g. files, projects or folders) is about to be opened inside the IDE.
- XAML Live Preview is now available for WPF developers as a first preview of this new experience. With Live Preview we enable the ability to capture a desktop apps UI and bring it into a docked window within Visual Studio, making it easier to use XAML Hot Reload to change the app and easily see the changes as you make them. This feature improves the XAML Hot Reload experience on a single screen device, while also making it possible to polish the apps UI with tools such as deep zooming, rulers, element selection and info tips.
- Very early experimental preview of enabling running tests on remote environments such as linux containers, WSL, and over SSH connections.
- The default icons have been updated and refreshed.
Azure Cloud Services
- Azure Cloud Service (classic) and Azure Cloud Service (extended support) projects are now supported.
JavaScript/TypeScript
- We have released a new JavaScript/TypeScript project type that builds standalone JavaScript/TypeScript projects with additional tooling. You will be able to create Angular and React projects in Visual Studio using the framework version installed on your computer.
- JavaScript and TypeScript testing is now available in the Visual Studio Test Explorer
Help Menu
During 17.0 we have remodeled the Help Menu! The updated menu highlights Get Started material and helpful Tips/Tricks. It also provides more collaboration with our development team by adding things such as access to Developer Community, Release Notes, the Visual Studio product Roadmap, and our Social Media pages. We want developers to make the most out of their subscriptions so check out your subscription benefits and other details via the new My Subscription menu item!
Issues Addressed in this Release
- Fixed an issue where a website failed to load when running ReactRedux with IIS Express.
- Fixed an issue causing error message: "Uncaught ReferenceError: notifyHotReloadApplied is not defined".
- Fixed a failure to connect to the server for 6.0 signalR projects when using Ctrl+F5.
- Corrected an issue where the include search order may be incorrect when prepended to "Include Directories".
- Fixed Database Project: Dragging a file from solution explorer into an opened one is deleting the file from the file system!
Top Voted Issues From Developer Community
- Not able to install any previous version of VS. Download fails because on invalid signature
- Code analysis/PREfast warnings C26404, C26406, C26407 performance regression in CppCoreCheck::PointerSafetyXtension::SearchSmartPtrsAndReferences
- Internal compiler error with std::to_array when the variable is global and of type char const*
- Compile errors for external headers
- C3493 with /std:c++latest using structured binding in lambda
- Send Feedback button does not work in VS 2022 when Python tools installed
- Aspx files broken after 16.10 update
- C++ compiler generates invalid code for constexpr method
- No warning for unused variable when declared const
- C++ modules name collision
- GC collects during method call on c++/cli ref class
- Publishing Python Django with WebDeploy project fails since Visual Studio update to 16.9
- ICE: ARM64 optimizing for /std:c++latest
- VS 16.3.0 .NET Core 3.0 Blazor Server App source code grey-out and lose IntelliSense after deployment
- iOS code signing key 'iPhone Distribution: Microframe Corp (xxxxx)' not found in keychain
Details of What's New in Visual Studio 2022 Preview 2
Debugging & Diagnostics
- Attach to process dialog improvements
- New parent / child process list view via toggle at the bottom of the window
- Selection of view should be persisted.
- Left keypress in keyboard navigates to parent process in parent/child view.
- All columns should be sortable like the original view.
- The New Command Line column is available in both views.
- App pool name is shown in the "Title column" for w3wp processes

- Added an Exception Helper in catch block. This will displays the exception helper with the relevant exception info when a managed step causes an exception to be thrown, and the step completes in a catch block.
- A new 'continue' button: showing the exception helper on 'caught' exceptions.

- We added an option to Force run to click that will run the debugger until the selected cursor position is reached while ignoring all the breakpoints in between.
- You can execute this by clicking "Force Run to Click" from right-click menu on the desired line of code.

- When the application is in debugging mode, you can also execute the "Force Run to Click" by clicking the green glyph that appears next to a line of code when the mouse has hovered while holding the SHIFT key.

- Memory Dump Diagnostic Analysis
- We have improved the analyzer engine to find more sync-over-async issues in ASP.NET Core memory dumps.
- Find what parts of your code are consuming the most CPU resources by reviewing the top 5 threads by CPU time.
- Review the entire managed heap for signs of memory pressure in Generation 0, 1, 2 and the Large Object Heap.
- If you have a crash dump you can quckly find the second chance exception and thread that caused your application to crash.
- Struggling to form a diagnostics hypothesis? When the exact cause of a crash or hang is not well known you can use Exception analyzer to quickly find and review all exceptions on the heap.
- For those moments when memory analysis is important we have improved the heuristics of Finalizer queue analyzer. We now focus on your code and exclude objects managed by the .NET framework.
.NET Productivity
- There is now a refactoring that introduces a parameter which will move an expression from a method implementation to its callers by adding a new parameter. Place your cursor on the line containing the expression or highlight the expression. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Introduce parameter for {0} or Introduce parameter for all occurrences of {0}. Both options will have three flyout options to either (1) insert the updated expression at all the call sites, (2) extract and create a new method that returns the expression and adds an argument at the call sites, or (3) create an overload of the method that contains the expression and calls upon the original method.

- There is a new command called Track Value Source that allows you to perform data flow analysis to determine how certain values might have passed at a given point and where it might be passed. Right click on any given member and select Track Value Source from the right click menu.

The Value Tracking window will open allowing you analyze results:

- We added an option to underline variables that are reassigned. This is off by default so you will need to enable it in Tools > Options > Text Editor > C# or Basic > Advanced and select Underline reassigned variables.

- We added a search option in the Generates Overrides dialog, allowing you to quickly search and select members to override.

- Quick Info for XML <code> tags now preserve white space and CDATA blocks. Hover your cursor over the element. Quick Info will then display the supported styles from the XML comments above your code.

- The Find all References window will now group multi-target projects helping reduce visual noise.

- There is now a refactoring that removes repetitive types in Visual Basic.
- Go to Implementation will no longer navigate to members with abstract declarations that are also overridden.
Razor (ASP.NET Core) Editor
- There is now Hot Reload support in Razor files.

We made significant improvements to performance to the Razor Editor.
We enhanced formatting and indentation making it more reliable and significantly faster.
We added new Razor colors! You can customize these colors in Tools > Options > Environment > Fonts and Colors.
TagHelpers are now colorized and have classification support in Quick Info and IntelliSense completion tooltips.

We enhanced the angle branch highlighting and navigation for Razor constructs.
Comments now have auto-completion, smart indentation, auto-inclusion of commenting continuations, and block comment navigation.
Hot Reload
In this release we continue to improve the capabilities of the new Hot Reload experience and the underlying Edit and Continue mechanism and Debugger.
What's new:
Support for C++ apps while using the debugger: It is now possible to Hot Reload a native C++ applications when running under the debugger (F5) using the 'Apply Code Changes' button. This experience is powered by native Edit and Continue, for supported edits see our documentation.
Support for .NET Hot Reload when running without the debugger (CTRL-F5): In the first preview we've enabled .NET Hot Reload to be available when running your .NET 6 app under the debugger (F5). In this release we are now also starting to support launching your app without the debugger through the CTRL-F5 mechanism while still retaining support to apply changes as the app runs. This feature is now available for Windows Forms, WPF, Console, ASP.NET Core and Blazor Server apps. At this time other app types will not work or might not be stable and we'll continue to make more improvements to this experience in future releases.
Supported edits: In this release we are also adding support for additional types of edits to both the Hot Reload and edit and continue experiences. These improvements include:
- Limited support for editing Razor files (.Razor files only at this time)
- Adding, updating or deleting Custom Attributes
- Adding or updating Record structs
- Editing Switch expressions
- Editing files with #line directives, including changes to the directive itself
Hot Reload and Edit and Continue with multiple processes: It is now possible to reliably use both the Hot Reload and Edit and Continue experiences when attached to multiple processes. Previously this capability was not fully supported and did not always work properly, this has now been corrected.
Trusted Locations
- As part of the “Trust Settings” revamp, we removed the “Mark of the web” check and added a warning dialog that’s displayed when attempting to open code (e.g. files, projects or folders) that has not been previously trusted.
- Code can now be trusted at the folder or the repository level (while displayed as an option in the warning dialog, repository owner is not fully implemented yet)
- While this feature is currently turned off by default, it can be enabled via Options > Trust Settings > Enforce Trust policies.
XAML Live Preview
XAML Live Preview is now available for WPF developers as a first preview of this new experience. With Live Preview we enable the ability to capture a desktop apps UI and bring it into a docked window within Visual Studio, making it easier to use XAML Hot Reload to change the app and easily those changes in realtime as you make them.

To get started:
- Make sure Tools > Options > Preview Features > XAML Live Preview is enabled (default).
- Once enable you can now use the window by going through the menu Debug > Windows > XAML Live Preview (or you can use search and simply type in 'XAML Live Preview')
Next run your app and use the Live Preview UI to select which window to capture. This is only needed if you have more then one window, otherwise your main window will be automatically captured.
Once the experience is started the following features will be available:
- Scrolling and Zooming: You can pan and zoom the window that captures your apps UI, this enables you to make it fit your needs to show the full app or just the parts you are trying to edit. Panning and scrolling works with a touch pad (two finger scrolling), mouse scroll wheel or CTRL + Click to drag the content around.
- Rulers: You can add one or more horizontal/vertical rulers to overlay your running app. These lines can then be moved into position using the mouse or keyboard. When moving rulers with keyboard use arrow keys for precise positioning and Ctrl + arrow key for fast positioning. You can also delete rulers by selecting them (clicking on them) and pressing the delete key.
- Element Selection & info tips: With element selection you can select the XAML element you wish to edit using the same feature you might be used to from the Live Visual Tree or in-app toolbar. Once selected you can also enable the new 'info tips' feature to get additional information about the selected element such as fonts, colors, margin/padding info and more. When using Element Selection consider enabling Preview Selected Item - either via Live Visual Tree toolbar button or Debug > Options > Hot Reload settings - to go to source XAML.
- Windows Switching: You can control which of your app windows is captured.
While in this first preview this feature only works for WPF applications, we are working on expanding support for additional app types in the future.
Remote Testing Early Experimental Preview
We have a very early experimental preview of enabling running tests on remote environments such as linux containers, WSL, and over SSH connections! While this is a very valuable capability, we ask for your patience as this feature is still in a very early experimental state as we collect feedback. You may not experience the smoothness you normally get as you may imagine there are a lot of corner scenarios in how we can communicate and manage a connected environment from Visual Studio. Here are some requirements for using this experimental version of remote testing:
- You need to install the necessary dependencies in your target environment. This means if you want your tests targeting .NET 3.1 to run in a linux container, you need to make sure the container has .NET 3.1 installed via your Dockerfile. Someday we’d love to create an install experience that enables smooth acquisition of any of your test dependencies, but for now we are leaving the bulk of the provisioning of the environment up to the user’s specification.
- Plan to monitor your connection status to the remote environment via the Output->Tests pane. For example, if the container was stopped a message will appear in Output->Tests pane. We may not detect all scenarios so plan to check your output if it looks like the connection was lost. Especially if the Output pane is not set to "Test", you may not immediately see the message. We are still experimenting with the best notification model when connections are lost so feedback is very welcome! If it does appear the connection was lost, you can use the remote test environment drop down in the Test Explorer to set the connection back to your local environment and then select the remote environment again to reinitiate the connection.
- The experimental preview is scoped to only .NET tests for now. We are aware of the interest in supporting C++ remote test experiences and we hope to provide that as well eventually.
How can I try out remote testing?
- Official docs will arrive after the experimental period. For now, here is what you need to get started testing it out.
- Environments are specified using
testenvironments.jsonin the root of your solution. The json file structure follows the below schema:
{
"version": "1", // value must be 1
"environments": [
{ "name": "<unique name>", ... },
...
]
}
- Local container connections
- To connect to a container running locally, you must have Docker Desktop on your local machine. Optionally, enable WSL2 integration for better performance.
- For a Dockerfile, the environment can be specified in
testEnvironments.jsonin the root of your solution:
For example:{ "name": "<name>", "localRoot": "<path to local environment>", // optional "type": "docker", "dockerImage": "<docker image tag>", }{ "version": "1", "environments": [ { "name": "linux dotnet-core-sdk-3.1", "type": "docker", "dockerImage": "testenv" } ] } - Here is an example of a Dockerfile for running tests targeting .NET 3.1.
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 - Build your container using the following command (including the "." at the end):
docker build -t <docker image name> -f <path to Dockerfile> .
- Local WSL2 connections
- You must enable WSL2 integration on your local machine.
- The environment can be specified in
testEnvironments.jsonin the root of your solution following this schema:{ "version": "1", "environments": [ { "name": "WSL-Ubuntu", "type": "wsl", "wslDistribution": "Ubuntu" } ] }
- SSH connections
- Go to Tools > Options > Cross Platform > Connection Manager to add or remove SSH connections. Selecting "Add" will allow you to enter the host name, port, and any credentials you need.
- The environment can be specified in
testEnvironments.jsonin the root of your solution with the following:{ "version": "1", "environments": [ { "name": "ssh-remote", "type": "ssh", "remoteUri": "ssh://user@hostname:22" } ] }
- The active environment is selected via a drop down in the Test Explorer tool bar. Currently only one test environment can be active at a time.

- Once an environment is selected, tests are discovered in the new environment and test runs are executed in that remote environment.

- You can now run your tests inside the remote environment! (The ability to debug tests in remote environments is coming soon!)

- The Test Explorer may prompt you to install some missing environment prerequisites and attempt to install them, but ultimately, we are leaving the bulk of the provisioning of the remote environment up to the user’s specification.
Updated and refreshed iconography
- As part of our goal to refresh the user interface for Visual Studio 2022, you'll find newly refreshed and updated icons throughout the IDE based on consistency, legibility, and familiarity.
Visual Studio 2022 version 17.0 Preview 1.1
released June 24, 2021
Issues Addressed in this Release
- Fixed an issue causing Test Explorer to run very slow.
From Developer Community
- Failure installing Visual Studio 2022 Preview on Windows Server 2022.
- Visual Studio 2022 Preview 1 crashes the IDE when using Build All.
- Xamarin Android Debugging with Android Emulator crashes and restarts Visual Studio 2022.
Visual Studio 2022 version 17.0 Preview 1
released June 17, 2021
Summary of What's New in this Release of Visual Studio 2022 version 17.0 Preview 1
64-bit
- devenv.exe is now 64-bit only
IntelliCode
- Whole line auto completion
.NET 6 SDK
- The .NET 6 SDK (preview) is included in Visual Studio 2022
- This release has basic support for .NET MAUI projects. Temporarily you have to install the .NET MAUI workload separately from .NET 6. See our .NET MAUI installation documentation for more information
Git Tooling
- Removed the ability to revert back to the Team Explorer Git UI, making the new Git experience the only available built-in tooling.
- Removed the option to install the GitHub extension from the Visual Studio Installer.
Test tools support
- New versions of the test platform starting with 17.0 will not be able to run Generic tests and Ordered tests. These specific features only shipped as part of an early version of MSTestv1 and are not included in MSTestv2. We see very low usage of these features and ordered tests is now considered contrary to best testing practices.
- Some test experiences will not be available in 17.0 Preview 1 including creating new TestSettings files and the TestSettings editor. Test runs will still be able to use TestSettings files, however TestSettings was replaced with RunSettings and we encourage users to migrate improved performance and functionality. Read more.
- Coded UI Tests and [Web Load Tests](Cloud-based load testing service end of life | Azure DevOps Blog (microsoft.com)) support will not arrive in 17.0 preview 1 as we are still working on porting these experiences to Visual Studio 2022. We do plan to support them in subsequent previews, though we strongly encourage users to move off Coded UI Test and Web Load Test. These technologies were officially deprecated in 2019 and we do plan to remove them from the product when we can minimize the impact to users.
Web Tools
- The Publish summary page now has actions to start / stop remote debugging and profiling under the '...' menu on the top right corner of the 'Hosting' section
- The Connected Services page now has an action to launch Storage Explorer
- The "ASP.NET Core Empty" template that comes with .NET 6 is using the new 'minimal APIs' paradigm for which we have started to add support
Extensibility
- VS SDK contains several breaking changes and Visual Studio 2019 extensions will not work in 2022. See VSSDK documentation for more information.
- VS SDK Reference assemblies are no longer installed to the
VSSDK\VisualStudioIntegration\Common\Assembliesfolder. If your build was relying on these assemblies, please migrate your project to use NuGet packages instead. For offline scenarios:- Keep an in-org nuget feed from which to restore the nuget packages.
- Check in the binaries.
Hot Reload
.NET Hot Reload is now available in Visual Studio 2022 when running your app using the debugger (F5) through the new 'apply code changes' button. With Hot Reload you can edit your running applications code files and, in many cases, apply those code changes without having to first pause the apps execution (as was previously required by edit and continue capability). With Hot Reload our goal is to save you as many app restarts as possible between edits, making you more productive by reducing the time you spend building/restarting your application as you continue to build your app.
To learn more about Hot Reload works see our recent blog post on the .NET Blog.
New WPF XAML Designer for .NET Framework
The current WPF XAML Designer for .NET Framework is replaced with a new WPF XAML Designer for .NET Framework, based on the same architecture used for the WPF XAML Designer for .NET (.NET Core).
The Visual Studio experience will look the same, but third-party control vendors need to support the new extensibility model since the previous model based on .design.dll and Microsoft.Windows.Design.Extensibility is deprecated. If you already created a .designtools.dll extension for .NET (.NET Core), that same extension will work for the new WPF XAML Designer for .NET Framework.
Please refer to the migration document below for further information about how to migrate to the new extensibility model.
Features Not Yet Available
In the Preview 1 release of Visual Studio 2022 several features have yet to be migrated to 64-bit and are not yet in the preview. We plan to include these features in future updates and they are not being removed from Visual Studio.
- Web Live Preview
- Instrumentation profiler
- Azure Cloud Service project support
- T-SQL debugger
- Web Load Test and TestController/TestAgent
- Azure DataLake
- Coded UI Test
- DotFuscator
- Incredibuild IDE integration
- IntelliCode find and replace by example
Issues Addressed in this Release
From Developer Community
- The diagnostic Tools window loads up miniature, and wont resize properly.
- There is a compiler error 2694 trying to call make_shared on class with throwing destructor on MSVC 16.9 Preview 2.
- An error occurred while processing the snapshot failed to process managed heap.
- MSVC allows default-initialized const int in new-expression.
- Received a Warning C5219 in "complex" STL header.
- ToolTip is blocking search results.
- Visual Studio gave a strange exception.
- Intel C++ Compiler, ICL, has compilation failure because use of concepts in header file is not guarded with ifdef __cpp_lib_concepts.
- There is an internal compiler error when expanding __pragma(optimize) with /Zc:preprocessor.
- Incorrect type of "func" inside lambdas in unevaluated context.
- Visual Studio Installer crashes when providing vsconfig.
- Getting a build error default template MFC dll project after adding new dialog class by wizard.
- Visual Studio offline install for Native Desktop development C++ does not work corretly.
- Connecting to Azure VSTS project through Visual Studio causes the UI to stop responding.
- Text boxes within Options are unreadable if using a larger font.
- Visual Studio add new item in a folder stops responding.
- Constant Nullreference exceptions while editing js/cshtml files.
- There was an error activating the remote language server, C#/Visual Basic Language Server Client.
- There is an internal error when /E is used with /experimental:preprocessor and __pragma.
Known Issues
See all open issues and available workarounds in Visual Studio 2022 by following the below link.
Feedback and suggestions
We would love to hear from you! For issues, let us know through the Report a Problem option in the upper right-hand
corner of either the installer or the Visual Studio IDE itself. The
icon is located in the upper right-hand corner.
You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features.
You can also get free installation help through our Live Chat support.
Blogs
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.
Visual Studio 2022 Release Notes History
For more information relating to past versions of Visual Studio 2022, see the Visual Studio 2022 Release Notes History page.