Visual Studio 2022 version 17.3 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.
Visit the Visual Studio site to download other Visual Studio 2022 products.
Preview Channel is not "go-live" and not intended for use on production computers or for creating production code. For more information, see Visual Studio Product Lifecycle and Servicing.
What's New in Visual Studio 2022 version 17.3
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:
Developer Community Suggestions: You asked, we listened!
- Add "Update All" button to Visual Studio Installer page
- Reopen closed tab
- Maintain solution list in Solution Explorer after closing a solution but Git repo is still open
Take a look at the list below of Developer Community issues that were addressed in Visual Studio 2022 version 17.3
Visual Studio 2022 version 17.3 Releases
- Sep 13, 2022 — Visual Studio 2022 version 17.3.4
- Aug 30, 2022 — Visual Studio 2022 version 17.3.3
- Aug 23, 2022 — Visual Studio 2022 version 17.3.2
- Aug 16, 2022 — Visual Studio 2022 version 17.3.1
released September 13 , 2022
Issues Addressed in this release of 17.3.4
- Stop issuing false positives for warning C4191.
- This release fixes the following warning, "The value of the 'PublicKey' attribute in 'Microsoft .NET Framework 4.7.2 (x86 and x64)' does not match that of file 'C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX472\NDP472-KB4054530-x86-x64-AllOS-ENU.exe'. ", after publishing ClickOnce project in Visual Studio 17.3
CVE-2022-38013 .NET Denial of Service Vulnerability A denial of service vulnerability exists in ASP.NET Core 3.1 and .NET 6.0 where a malicious client could cause a stack overflow which may result in a denial of service attack when an attacker sends a customized payload that is parsed during model binding.
released August 30, 2022
Issues Addressed in this release of 17.3.3
- Fixed an issue which would cause VS to hang when using rename in C# or VB.NET projects.
From Developer Community
released August 23, 2022
Issues Addressed in this release of 17.3.2
- Fixes the Toolbox -> Choose Items command when a non-English language is selected in Visual Studio.
- The installer has been updated to handle internal dependencies that may be missing.
From Developer Community
- feature unavailable due to an internal error
- Live Unit Testing - Link to code in the body when test is a failure links to the file in the lut instead of the original file
- VsixSignTool fails in pipeline with error code 80070020.
- Error when publishing function app
released August 16, 2022
Issues Addressed in this release of 17.3.1
- Includes servicing update 10.0.22000.832 for Windows SDK for Windows 11.
From Developer Community
- Unexpected error of task "Xamarin Telemetry"
- Fixes a scenario where interacting with the Query Builder in a Web Forms application may cause the Query Builder to close
released August 9, 2022
Summary of What's New in this Release of Visual Studio 2022 version 17.3
- MAUI workload GA Build
- MAUI/Blazor CSS Hot Reload support
- You'll now be able to try out a selection of new features in Visual Studio with each update, using our What's New feature.
- Select each feature to learn more about the particular feature.
Apple Developer Accounts
This preview includes initial support for Individual AppStoreConnect accounts which are needed for non-Enterprise Apple Developers.
- To add an Individual account, open Tools\Options and then select the "Apple Accounts" item located in the Xamarin section. In the "Apple Accounts", click the "Add Account..." button and select "Add Individual Account" and enter the AppStoreConnect API Key information.
- Once the account is created, certificates and provisioning profiles can be accessed via the "View Details" button.
- Known Issues:
- Automatic Provisioning may not work correctly for Individual accounts in some cases. To work around this, follow the instructions for manual provisioning.
Audio Cues in the Editor
- We've introduced new audio cues in the Visual Studio editor. When enabled, Visual Studio will play sounds when the editing caret arrives on a line with a breakpoint, an error or a warning. By default, Visual Studio uses the same sounds as Visual Studio Code, but these sounds can be configured to the user's preference.
- To enable audio cues, head to Tools\Options and look for "Preview Features" under Environment. In the Preview Features, the new option is "Enable Audio Cues for the editor". If it's checked, the next time Visual Studio is started, the sounds will play.
- To configure individual audio cues, tap the Windows key in either Windows 10 or Windows 11 and search for "Change system sounds". Under the Program Events, look for the "Microsoft Visual Studio" node in the Program Events tree. The new events are "Line has Breakpoint", "Line has Error" and "Line has Warning". This can be used to customize or disable individual sounds.
Line-staging support, a.k.a interactive staging with the ability to stage specific lines and/or chunks of code right from the editor and the diff view. To get started, stage one of your recent changes by selecting the corresponding color margin and utilizing the Peek Difference UI to stage your change.
- The Arm64EC toolchain is no longer marked as experimental and is ready for production use.
- The Visual Studio Terminal can now be used as an SSH client with your stored SSH connections. With the C++ for Linux Tools installed, open the Terminal tool window and the Terminal dropdown will be populated with your stored connections. If selected, they will open a new Terminal window inside Visual Studio and a pseudoterminal on your remote system. Control characters, colors, and cursor positional awareness are all supported.
- Visual Studio can now add Unreal Engine class templates for your UE projects. To try this feature, ensure "IDE support for Unreal Engine" is selected in the "Game development with C++" workload within the VS installer. When working on a UE project, right click in the project or a folder/filter and select Add > UE Class.
- Go to Definition will now remember the prior signature and navigate accordingly when a better match is not available (e.g. after you manually changed the signature of one of the pair).
- Improved responsiveness of Go To All. Previously, results appeared after you stopped typing. In the new experience, results will show as you type.
- In contexts requiring enum type completion (e.g. assignments to enum variables,
caselabels, returning enum type, etc.) the autocompletion list will now be filtered to just the matching enumerators and related constructs.
- Added NuGet PackageReference support for C++/CLI MSBuild projects targeting .NET Core. This change was made to unblock mixed codebases from being able to adopt .NET Core. This does not work for other C++ project types or any C++ project types targeting .NET Framework. There are no plans to extend PackageReference support to additional C++ scenarios as the team is working on separate experiences involving vcpkg which will work for non-MSBuild scenarios and add additional functionality.
- Added a Serial Monitor window for embedded development, available through Debug > Windows > Serial Monitor.
- Improved C++ indexing by ~66% compared to 17.2.
- Updated the version of CMake shipped with Visual Studio to version 3.23. See the CMake 3.23 release notes for details of what is available.
- Upgraded the versions of LLVM tools shipped with Visual Studio to v14. See the LLVM and Clang release notes for details of what is available.
- Updated the side by side Dev 16.11 C++ Toolset to version 14.29.30145.00. The latest version of the Dev 16.11 C++ Toolset contains important bug fixes, including fixing all remaining C++20 defect reports. For information about bug fixes, including C++20 defect reports in Dev 16.11, please see Visual Studio 2019 version 16.11.14 release notes
- We have made various improvements to the in-editor experience of C++ modules. "we're continuously working on improving the quality of the experience but encourage you to try in 17.3 and report remaining issues through Developer Community.
Debugging & Diagnostics
- Diagnostics Analysis tools now include an analyzer that lists the unique call stacks in a memory dump along with the threads executing them.
- IEnumerable visualizers now support data export in CSV format. Just use the dropdown on the top right corner and select CSV.The Visualizer will also allow you to filter data based desired filter string. The Visualizer will return all the rows that contain a value that matches the filter string. You can also export the filtered and sorted results in CSV/Excel format.
- We also added the themeing support for IEnumerable and DataTable/DataSet visualizer, so both of these visualizer window are themed for Visual Studio’s dark, light and blue theme.
- Starting 17.3 preview 3 debugger will automatically reload pervious decompiled artifacts like symbols and PDB files. If you choose to decompile at any previous session the artifacts will automatically be reloaded for all the next sessions and will get you to the decompiled sources faster in External Sources node. This will still honor your JMC settings.
- Debugger now provides a new option to disable the load of NGEN or ready to load (RDR) images for managed code. You can change the settings under Tools > Options> Debugging > General > Prevent using precompiled images on module load or you can also easily search the settings using any of the keyword in the Visual Studio search bar.
- You will now see the Exception stack frames inside the Call Stack window, so for all async exceptions, you can quickly load symbols or locate sources and go directly to the site of the exception. Exception stack frames inside the Call Stack window will provide functionalities of the actual call stack.Features like automatic navigation, quickly switching back and forth between frames, and symbol load / decompile options to get back to the source code where the exception was thrown.
- GitHub accounts now roam across machines when signing in on a new machine with the same personalization account (account shown in the top left of the account settings dialog).
- You can now update all side-by-side versions of Visual Studio with an “Update all” button on the installer.
Microsoft Teams Development Tools (Teams Toolkit)
- The Microsoft Teams App project template has been improved and now creates various types of Teams app, including notification bot, command bot, tab app and message extensions. You can now create and debug various Microsoft Teams App using Teams Toolkit for Visual Studio.
- We recommend creating a new project using the updated template for any existing Teams Apps you've created with previous versions of the Teams Toolkit.
- You can now choose when to sign-in with your M365 identity and register Teams app resources using the Project > Teams Toolkit > Prepare Teams App Dependencies menu option.
- Prepare Teams App Dependencies will register the Teams app and Bot for your Teams project.
- Updates to the manifest.template.json files can be synchronized with Teams Developer Portal for local debug by selecting "Prepare Teams App Dependencies" menu option again at any time.
- Updates to the manifest.template.json files can be synchronized with Teams Developer Portal for remote preview by selecting Project > Teams Toolkit > Update Manifest in Teams Developer Portal menu option.
- You can preview manifest file before synchronization by right click manifest.template.json file and use Preview Manifest File menu option.
- Use the Project > Teams Toolkit > Provision in the Cloud menu to create resources in an Azure subscription.
- Use the Project > Teams Toolkit > Deploy to the Cloud menu to publish code to those resources.
- You can open Teams app remotely in a browser that are created from the Provision menu using the Preview Teams app menu.
- You can zip the Teams app and generate app package by select Project > Teams Toolkit > Zip App Package menu option for sharing and uploading purpose.
- You can find all Teams Toolkit menu options by right click on the Teams app project, they are the same as the Project > Teams Toolkit menu.
- Learn more about Teams Toolkit at https://aka.ms/teams-toolkit-vs-docs
In C# 10 we introduced Global Usings. Global Usings adds usings to the top of a file invisibly and automatically. We now surface an icon at the top of your file to let you know if Global Usings are active in your file and if you click on the icon, it will show you what those Global Usings are.
Peek Definition now supports source link, embedded source, and decompiled sources.
We added the following three options for collapsing and outlining views on file open:
- Collapse #regions on file open
- Collapse usings on file open
- Collapse implementations from metadata on file open
You can now apply Fix All to both the
Use expression body or block bodyand
Convert to raw string literalrefactoring.
We now have a code fix that fixes invalid constraints. Place your cursor on the diagnostic squiggle in the editor. Press Ctrl+. to trigger the Quick Actions and Refactorings menu. Select Fix constraint.
We now have a refactoring that allows you to switch between top-level statements and the Program.Main style. Place your cursor on a top-level statement. Press Ctrl+. to trigger the Quick Actions and Refactorings menu. Select Convert to ‘Program.Main’ style program.
We added additional scopes to the Fix All operation. In addition to applying the Fix All operation to a Document, Project, and Solution, you can apply Fix All to a Containing Member and Containing Type.
We now automatically convert single line comments to doc comments when you add an additional forward slash to a single line comment.
We now have a code style option that allows you to warn on possible exceptions in a foreach loop. Foreach loops implicitly casts to derived types by design. This was necessary before generics existed but can lead to runtime exceptions in some cases.
- Document management capabilities have been updated. Read our blog post to learn more.
These features include:
- Tabs arranged in multiple rows.
- Restore recent document.
- Modified dirty indicator.
- Dropdown shows names of invisible docs in italics.
Razor (ASP.NET Core) Editor
- The new Razor editor now has full completion support inside of an
- The new Razor editor now correctly handles completion for HTML attributes when typing = “ ”.
Parallel Discovery is now enabled by default when running tests from the Test Explorer. This enables Visual Studio to use available cores to discover tests in parallel and reduce the time to see tests in the Test Explorer.
The Live Unit Testing window now has a status bar, similar to the Test Explorer. This should give you better insight on the operations ongoing in Live Unit Testing as well as visibly surface errors.
vstest.console now supports running assemblies of different target platforms and target frameworks in one request.
Code Coverage now has a cache for static instrumentation for better performance.
Microsoft.CodeCoverage.Console is now added to the command line tools.
The default architecture for AnyCPU .NET Framework test projects changed from x86 to x64. This change unifies how the default architecture is determined across all types of test projects to be always based on the architecture of Visual Studio. Meaning that in x64 version of VisualStudio, x64 will be used, and in future ARM64 VisualStudio, ARM64 will be used. The same rule also applies to
dotnet test, and
vstest.console. To revert to using x86, navigate to Test > Processor Architecture for AnyCPU projects > x86
Remote Testing now supports test runs against remote arm64 windows environments.
The new build experience for [Live Unit Testing] is now enabled by default. Read our blog post to learn more.
You can now choose to see code coverage information on the editor margin by selecting "Margin Glyphs" in the Code Coverage Results window.
Live Unit Testing now provides a button to reset all state. By going to Test > Live Unit Testing > Reset Live Unit Testing state for solution.
Live Unit Testing now supports Razor files.
The TypeScript 4.7 language service and compiler are included in Visual Studio. See the TypeScript 4.7 announcement blog post for more.
Fixed an issue where Automatic Type Acquisition (ATA) did not work when the default TypeScript language server is selected.
Fixed an issue where the dependencies node in Node.js (.njsproj) projects showed indirect dependencies when packages are restored using npm 7 or greater.
- CVE-2022-34716 .NET Spoofing Vulnerability External Entity Injection during XML signature verification
- CVE-2022-31012 Remote Code Execution Git for Windows' installer can be tricked into executing an untrusted binary
- CVE-2022-29187 Elevation of Privilege Malicious users can create a .git directory in a folder that is owned by a super-user
- CVE-2022-35777 Remote Code Execution Visual Studio 2022 Preview Fbx File parser Heap overflow Vulnerability
- CVE-2022-35825 Remote Code Execution Visual Studio 2022 Preview Fbx File parser OOBW Vulnerability
- CVE-2022-35826 Remote Code Execution Visual Studio 2022 Preview Fbx File parser Heap overflow Vulnerability
- CVE-2022-35827 Remote Code Execution Visual Studio 2022 Preview Fbx File parser Heap OOBW Vulnerability
From Developer Community
- search in cmake view doesnt filter files
- "Go To Document" (F12) for C++ #include statements fails when using /external:I
- Error: Value cannot be null. Parameter name: path1
- devenv crashes while debugging
- Adding strings to resx file pops a modal error dialog
- Add include quick-action adds header along INCLUDES <> path rather than relative header via ""
- Outlining collapses code AFTER user navigates to it via search results item or go-to-definition, etc.
- Tried to Hot Reload a .NET MAUI Blazor app and got an exception
- Pasted Comments Indentation Issue
- VS2019 standard exception headers: warning C5240: 'nodiscard': attribute is ignored in this syntactic position
- C6389 false positive on main etc
- XAML design mode in Blend 2019 (previously reported and closed)
- Visual Studio 2022 : Double Clicking on solution file in the Source Control Explorer opens the sln file as plain text
- Light Bulb Suggestion "Encode image in base64" Missing in Visual Studio 2022 CSHTML editor
- CSS editor says ::deep is not a valid pseudo-element
- After an install of 17.1.0 Preview 1.1, the IDE fails to launch with the following dialogs. Uninstalling and reinstalling fail to resolve.
- The “CompareBuildTaskVersion” task could not be loaded from the assembly
- MsBuild doesn't give /delayload flags to linker when using LLVM toolchain
- env in launch.vs.json doesn't work for native
- Support ::deep in .razor.css CSS isolation files to avoid validation warnings in the log
- Blend 2022 'visual studio xml editor package' package did not load correctly'.
- Code coverage not generating results with visualstudio2022testagent
- The selected certificate is not valid for code signing
- Project options parameter values are retained in the same instance rather than resetting after the project creation
- .Net Async profiler tool doesn't show anything
- spacing fix-up A && B -> A&& B
- Git no longer supports 'preserve-merges', stop offering that option
- After fresh install of Visual Studio 2022 Version 17.1 "devenv.exe" does not start.
- PreFAST: integer status code works, class-holding-integer status code does not
- Unable to add Windows Application Packaging Project to Xamarin Forms Solution in Visual Studio Community 2022
- PreFAST: Incorrect Build break - error C2036: 'intarr (*)': unknown size
- JSON Visualizer confused by array containing numbers with decimal point
- Inline hints experience is very poor.
- RequestExecutionQueue fails to dispose of a linked CancellationTokenSource
- create app packages crashes visual studio with no info as to why
- HTTP Configuration loaded as HTTPS configuration in Blazor Server Project
- Visual Studio hangs when trying to do a renaming of classes
- Syntax highlighting for variables/functions with keyword as name
- IDE freezes when building a .NET 6 project
- 'git' is not recognized as an internal or external command, operable program or batch file.
- DkmCustomUIVisualizerInfo and random order in context menu
- Can't run .NET MAUI project after adding it to a solution and setting it as the startup project
- Visual studio 2022 hangs when pasting in files or adding new files
- Autocompletion does not work with macro. (Visual Studio 2022 17.1)
- Continuous high CPU usage by Microsoft.ServiceHub.Controller.exe
- Crash of process devenv.exe System.NullReferenceException
- VS 2022 crash on file rename in Solution Explorer
- Format Document doesn't work on fxh
- Breakpoints are not being hit when debugging Xamarin application in Visual Studio 2022
- Generating a CMake cache using CMakePresets.json deletes folder content
- Go To Files doesn't show files inside folders when using "Show all files"
- Visual Studio should update Entitlements.plist when checking Health Kit option
- What is new is causing a goldbar on startup for performance
- MSIX Signing Extension Requires Basic Constraint extension but signtool.exe does not
- CSS validation warnings displayed for scrollbar-width and scrollbar-color
- Visual Studio 2022 crashes when selection "Select from Store" button
- Hot Reload not working on real iOS device
- Incorrect inheritance processing in CMakePreset.json
- Installer UI inaccurately shows "All installations are up to date"
- After using "Update All" button, all three instances show as up-to-date, but gray bar at the top still shows "Updating..."
- .NET Maui C# hot reload not working (Windows + Android apps)
- During debugging "Diagnostic Tools" setting failed with message: "Scratch directory does not exist!"
- New project dialog crashes VS
- Android SDK Manager and Device Manager not working
- Create a pull request from Git Changes Tab
- Property Window for XAML file for Xamarin Project is showing blank
- (CMake): Consecutive configures will sometimes delete the cache beforehand
- After recent VS 2022 preview 5.0 and as well as v6.0, I no longer can open the Web browser to create PR from the Git changes window
- Live Unit Testing fails to start due to modified collection in HostedLiveUnitTestingCommands.GetOrchestratorActivityStateWhenRunningAsync
- 1634213 - Pair To Mac fails with net6 when using external authenticated NuGet package sources
- 10020587 - Pair to mac fails with MAUI RC1 since it requires .NET SDK 6.0.3
- Can't Sign In When Reporting a Problem from Visual Studio Installer
- After upgrading to VS2022, ARM64 crashing on item enumeration
- Incorrect intellisense diagnostic for class template argument deduction involving variadic templates
- Handle errors when opening SSRS projects under TFS
- Compile Errors Appearing with the New Version
- Xaml Designer System.NullReferenceException
- EnvDTE.Solution.TemplatePath returns the wrong value in Visual Studio 17.3
- A valid provisioning profile for this executable was not found
- Xaml Designer System.NullReferenceException
- Restoring a nuget package from a private devops feed fails with 401 in Visual Studio 2022 (17.2.4).
- Publish can never confirm if the application started
- Access Violation in KernelBase.dll!WriteFile while loading symbols
- Visual distinction between downloaded/not downloaded items is awful in Source Control Explorer
- WPF: Create Data Binding dialog freezes when adding value converter
- Unable to create controller and view
See all open issues and available workarounds in Visual Studio 2022 by following the below links.
Feedback and suggestions
We would love to hear from you! You can Report a Problem or Suggest a Feature 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.