2022Logo Visual Studio 2022 version 17.4 Release Notes


Tip

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.


Support Timeframe

Visual Studio 2022 version 17.4 will be the next long term servicing channel once it's released. Enterprise and Professional users who are configured to receive updates on the 17.4 LTSC channel are supported and will receive fixes to security vulnerabilities through July 2024. For more information about Visual Studio supported baselines, please review the Support Policy for Visual Studio 2022.

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:

We’ve addressed a number of your top-reported bugs in this release and added new features based on your suggestions in Developer Community. Thank you for your continued feedback. Here’s a list of your suggestion we are shipping as part of this preview.


Visual Studio 2022 version 17.4 Releases


17.4.2 Visual Studio 2022 version 17.4.2

released November 29 , 2022

Issues Addressed in this release of 17.4.2

  • Fixed an issue causing C++ compiler crashes with /analyze.
  • Fixed a compiler bug where we were incorrectly eliding a zero-extension
  • Fixed an issue where some C++ formatting options were not persisted correctly between Visual Studio sessions.
  • Fixed an issue with hang on paste
  • This version of Visual Studio includes Win App SDK 1.2.221109.1 see Windows App SDK release channels - Windows apps | Microsoft Docs for more details.

From Developer Community


17.4.1 Visual Studio 2022 version 17.4.1

released November 15 , 2022

Issues Addressed in this release of 17.4.1

  • A search for arm64ec or ec in the vs installer now brings up the relevant arm64 components containing arm64ec support.
  • In Visual Studio 2022 version 17.3 and later, ML.NET Model Builder would hang when training Image Classification models with the GPU. This deadlock has been resolved and Image Classification can be trained using CPU or GPU successfully.
  • Using screen readers with the integrated terminal now correctly provides information on the commands that were run and their output.
  • Visual Studio doesn't crash when opening a .NET 7 Linux core dump.

From Developer Community


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

Arm64
This preview continues to build out our native Arm64 support on Windows 11. In addition to supporting .NET desktop development (WinForms and WPF), Desktop development with C++ (for MSBuild-based projects) and ASP.NET and Web development, we have now enabled the Universal Windows Platform development workload. Read our blog post to learn more.

C++

  • Improved compiler error messages to provide more correct and useful information, especially for concepts.
  • Added experimental MSVC flag /experimental:log<directory> to output SARIF build logs to the specified directory.
  • Added support for C23 attributes to IntelliSense and continued progress in C++20 modules support.
  • Improved indexing performance when opening a new solution. Large projects could see a 20-35% improvement from 17.3.
  • Improved Named Return Value Optimisation (NRVO) by:
    • Enabling NRVO for cases which involve exception handling or loops.
    • Enabling NRVO even under /Od if the user passes the /Zc:nrvo flag or /std:c++20 or later or /permissive-.
    • Allowing users to disable NRVO with the /Zc:nrvo- flag.
  • Upgraded the version of LLVM shipped with Visual Studio to 15.0.1. See the LLVM and Clang release notes for what is available.
  • Added support to Visual Studio for vcpkg artifacts with CMake projects. For projects that include a vcpkg manifest the environment will be activated automatically on project open. You can learn more about this in the vcpkg environment activation in Visual Studio blog post.
  • You can now use Dev Containers for your C++ projects. You can learn more about this feature in our Dev Containers for C++ blog post.
  • Made IntelliSense respect the order of preincluded headers when one is a PCH. Previously, when a PCH was used via /Yu and force-included via /FI, IntelliSense would always process it first, before any other headers included via /FI. This did not match the build behavior, so with this change /FI headers are processed in the order they are specified.
  • Removed internal prefixes from CTest names in Test Explorer.
  • Updated the version of CMake shipped with Visual Studio to version 3.24.1. See the CMake release notes for what is available.
  • Android SDK update
    • Ant scripts have been removed, so users will no longer see Ant-based templates in the New Project dialog. For help migrating from Ant templates to Gradle templates, please see: Migrating Builds From Apache Ant (gradle.org)
    • Added support for building with NDK 23 and 24
    • Updated NDK component to the LTS version 23
  • Added vectorized implementations of ranges::min_element(), ranges::max_element(), and ranges::minmax_element()
  • We continue to track the latest developments in C++ standardization, support for the following C++ 23 features is available by including /std:c++latest in your compiler options
    • P2302 ranges::contains, ranges::contains_subrange
    • P2499 string_view Range Constructor Should Be explicit
    • P0849R8 auto(x): decay-copy In The Language
    • The compiler part is not yet implemented; the library part was implemented in C++20 mode when Ranges were initially implemented.
    • P0881R7 <stacktrace>
    • P2301R1 Add A pmr Alias For std::stacktrace
    • P1328R1 constexpr type_info::operator==()
    • P2440R1 ranges::iota, ranges::shift_left, ranges::shift_right
    • P2441R2 views::join_with
  • Added an option "Navigation after Create Declaration/Definition" to allow you to choose the navigation behaviour of the Create Declaration/Definition feature. You can select between peeking (the default) or opening the document, or no navigation.
  • Arm64 builds of Visual Studio now bundle Arm64 versions of CMake and Ninja.
  • Added support for CMake Presets version 4. See the CMake release notes for details of what is available.
  • Connecting to remote systems with the Connection Manager now supports SSH ProxyJump, which is used to access a SSH host via another SSH host (for example, to access a host behind a firewall).

Developer Community Highlights

Debugging & Diagnostics

  • DataTable visualizer is now upgraded with new improvements like filtering, sorting, exporting, and theming.
  • To export the data export in CSV/Excel format use the dropdown on the top right corner.
  • The Visualizer will also allow you to filter data based desired filter string. It 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.
  • The visualizer window will be themed as per your selected Visual Studio theme.

Editor Features

  • Audio Cues are now available in Visual Studio. To enable audio cues, go to Tools > Options, then head to Text Editor > General. In the Settings section, check the "Enable audio cues" option to enable audio cues. With this option checked, Visual Studio will play an audio cue when the caret in the editor arrives on a line with an error, breakpoint or warning. It will also play a cue when the line arrives on a line that has been added or removed when viewing a file in the diff view. These cues can be individual enabled or modified in the Settings Control Panel in Windows.
  • Holding down the shift key while rotating the mouse wheel over the editor will now cause the editor to scroll horizontally. The amount that the editor scrolls can be configured in Tools > Options under Text Editor > Advanced.
  • The current line number in the editor is is highlighted for higher visibility.
  • The Output pane now has a button that will prepend each line with a timestamp to allow developers an easier way to see how much time transpired between steps in longer running processes.
  • We fixed an issue that prevented printer settings from being saved correctly in some cases.
  • When selecting text in the editor, Visual Studio will now automatically highlight matching strings. To enable this feature, go to Tools > Options, then head to Text Editor > General. In the Display section, check the "Show selection matches" option. With this option checked, any time a single line of text of 100 characters or less is selected, any matches will immediately be highlighted.

F#

Tooltips for local function arguments

Git Tooling

Developer Community Highlights

Other features

  • Multi-repository support means you can have up to 10 active Git repositories at once, allowing you to work with a solution that spans more than one repository and perform git operations like committing, pulling, and pushing across several repositories at the same time. Start using multi-repo support by opening a solution or folder with projects across several repositories. Read our blog post to learn more and share your feedback.
  • Untrack and ignore tracked Git files
  • In line with a recent Git security update, we have enhanced the user experience of trusting single and multiple Git repositories by improving repository status and utilizing a new trust dialog.

Installation and Updates

Rollback

Visual Studio now supports the ability to return to your previously installed version. For more information, please visit the Rollback blogpost.

Remove out-of-support components

The Visual Studio 2022 version 17.4 installer contains a new feature that enables you to easily bulk remove all components that Visual Studio installed that have transitioned to an out-of-support state. This will help you maintain a secure and compliant environment. Developers can initiate this action on updates or modifications, and IT Admins can enforce it by policy. For those enterprises that use layouts, it’s possible to configure the layout once, and then future administrator update will respect this setting. This functionality also works for Visual Studio 2017 and 2019 if those client machines have been updated to use the latest Visual Studio installer. For additional details on how this functionality works, please refer to the Visual Studio Administrators guide or refer to the blog post.

Configure Policies via Administrator Templates (ADMX)

Today we released the Visual Studio Administrative Template files (ADMX/ADML), which makes it easy for IT admins to easily discover, manage and control Visual Studio behaviors that are available to be governed by policy. ADMX files are also easy to integrate with common management and deployment tools such as Group Policy Editor or Microsoft Endpoint Manager. Please find additional information here.

Visual Studio security updates now available through the Microsoft Update channel of Windows Update for Business

All Visual Studio security updates for all supported versions of Visual Studio are now available to modern cloud connected Azure Active Directory (Azure AD) joined devices that use Windows Update for Business and are managed by mobile device management solutions such as Microsoft Endpoint Manager (formerly known as Intune). You can enable this functionality on your client devices by setting the AdministratorUpdatesEnabled policy to 2. Refer to the blog post and the Visual Studio Administrators Guide for additional details.

IntelliCode

When IntelliCode has a suggestion to offer that modify or deletes part of a single line of code, the suggestion is now shown as a "diff view" on the editor surface for C# users. By using the TAB key, users can accept the prediction.

Microsoft Teams Development Tools (Teams Toolkit)

  • With this new version of Teams Toolkit, updates are required to the Azure Active Directory template file, projectSettings.json, and the app manifest file. These updates are done automatically after performing a Teams Toolkit menu command, and don't change your project source code. The output window will shows the status of the update.
  • The Tab application type in the Microsoft Teams App project template wizard includes the option to configure single sign-on or not. Add it later using Project > Teams Toolkit > Add Authentiation Code. Learn more about Teams Toolkit in the docs: https://aka.ms/teams-toolkit-vs-docs

.NET Productivity

  • There is a new Inline Rename UI that allows you to rename a type. Press Ctrl+R,R to bring up the new Inline Rename experience. Notice that the new UI will now show up under the type with an option to rename comments, strings, and symbol files.

Inline Rename

  • There is now an option to disable Source Link and Embedded source. You can disable this in Tools > Options > Text Editor > C# > Advanced and deselect Enable navigation to Source Link and Embedded sources.

Disable Source Link and Embedded sources

DataTable visualizer

  • You can now easily view a file’s structure at a glance in the Document Outline window. The Document Outline window displays the symbol tree of the file in the editor helping you quickly navigate and edit project files. You can open Document Outline by going to View > Other Windows > Document Outline or by using the shortcut Ctrl+Alt+T.

Document Outline

Test tools

  • 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 Reset State
  • Live Unit Testing now supports Razor files.
  • Run Tests until failure helps you find flaky tests and will run your unit test until they reach a failure or until they reach the threshold set in Options.
  • View code coverage report scoped down to only the files/lines you have changed with the new Code Coverage Changeset report.

Performance improvements

We have made performance improvement in the following areas of Visual Studio in this release :

  • Find & Replace in Files
  • Git branch switching
  • Unit Test Performance
  • Language service configuration switch optimization
  • Responsive File Save
  • C++ Indexing

Learn more about all of the performance enhancements in this release.


Visual Studio on Dev Box

  • As a Dev Box is not on your local network, you'll need to use a public IP to connect via internet to any Macs on your local network.
  • If the Android emulator won't load, ensure Hyper-V is enabled via {insert instructions here}. If the Hyper-V option was not checked off, enable it, then restart the Dev Box before trying to use the emulator.

From Developer Community


Known Issues

.NETSDK: .NET SDK None of my projects are loading after upgrading to 17.4 [7.0] Projects using certain workloads don't load, build, and or run if .NET 7 Preview SDK workloads are installed: If a preview .NET 7 SDK is installed, projects with workload dependencies such as microsoft.net.workload.mono.toolchain may fail to build, load, and or run. An example of this issue is described here.

Resolution:The best method to resolve the issue is to uninstall any .NET 7 preview SDKs. For detailed instructions, see dotnet uninstall instructions. For example, on Windows, dotnet preview SDKs can be uninstalled with add/remove programs. Another option is to try deleting the folder C:\Program Files\dotnet\sdk-manifests\microsoft.net.workload.mono.toolchain, but this will only work for file-based installs. Dotnet-core-uninstall is another option for uninstalling the .NET 7 preview SDKs.

Python and native mixed-mode debugging: Python and native mixed-mode debugging has a known bug when working with virtual environments. Due to the fact that Python for Windows uses a stub python.exe for venvs, Visual Studio finds and loads python.exe as a subprocess. For Python 3.8 onward - when starting a debug session, since mixed-mode doesn't support multi-process debugging, it ends up debugging just that stub process, instead of the actual app. For attach scenarios, the workaround is to attach to the correct python.exe. For launch/F5, there's no workaround, and unfortunately - you'll have to avoid venvs. For Python versions prior to 3.8, mixed mode debugging should work as expected with venvs. Running in a global environment will not cause these issues for any version of Python. See Not possible to debug both Python and Native for more information.

Discovering/Running Nunit tests: Discovering/Running Nunit tests from the Test Explorer fails on 17.4 with an "Unknown framework version 7.0" exception in the Output pane

Resolution: If you have a reference to Nunit3TestAdapter, please ensure that is update to 4.3.1 or higher.

NuGet Package Visual Studio 17.4 does not produce a NuGet package while publishing a class library project.

Resolution This is an intentional change in 17.4 to make the publish behavior in Visual Studio consistent across all .NET project types. To generate a NuGet package for class library projects, the recommended way is to either:

  1. Set the project property to generate the NuGet package on build as documented here: https://learn.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli#configure-package-properties or
  2. Run the pack command available on right click -> pack as documented here: https://learn.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli#run-the-pack-command With this new change, the publish command will generate the publish output for class libraries similar to how it behaves for all other .NET project types. Please refer to this documentation page for details: https://learn.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli. You can also make use of the various pack msbuild properties to change the pack behavior as documented here: https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#pack-target

See all open issues and available workarounds in Visual Studio 2022 by following the below links.

##.NET 7 is available today .NET 7 brings your apps increased performance and new features for C# 11/F# 7, .NET MAUI, ASP.NET Core/Blazor, Web APIs, WinForms, WPF and more. With .NET 7, you can also easily containerize your .NET 7 projects, set up CI/CD workflows in GitHub actions, and achieve cloud-native observability.


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.


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.


Top of Page