We released Visual Studio 2022 17.4 Preview 1 last week alongside the 17.3 generally available release. In this post we’ll share details about some of the new capabilities in this preview and the focus of this release. Feedback from developers like you during our preview cycle is so important for us to deliver a final product that meets your high expectations. We welcome your feedback in the threads to this post or through Developer Community. Please continue to share your suggestions for new features or improvements to existing ones and any bugs or issues via report a problem.
17.4 Preview 1 also adds new features as based on your suggestions in Developer Community. Here’s a list of the items that we are shipping as part of this preview.
We continue to invest in Visual Studio to provide capabilities that enable your development needs, your team, and those of your organization. Version 17.4 will be the third long term servicing channel (LTSC) for Visual Studio 2022. Servicing channels provide large organizations with increased flexibility over when they choose to adopt new features released with minor version updates to Visual Studio editions. The 17.2 LTSC release will be supported until January 9, 2024.
During the Microsoft Build 2022 conference the Windows team announced a new development kit with AI Capabilities, Project Volterra, and the development of comprehensive Arm-native developer toolchain. We are excited to bring Visual Studio to our developer community using Windows 11 on Arm64 devices. Version 17.4 will be the first version of Visual Studio generally available as a native Arm64 application. Our first Arm64 preview of Visual Studio launched with three Workloads available. Preview 1 adds the availability of the UWP workload. For C++ we now bundle Arm64 native versions of CMake and Ninja with Arm64 releases. We will continue adding more workloads in previews (based on your feedback) until we GA later this year. You can vote here to help in prioritizing additional workloads, components, and experiences.
Configure Visual Studio using Visual Studio Administrative Templates (ADMX/ADML files)
We heard from many of you in large organizations that use Visual Studio you often want to control certain aspects of VS behavior to achieve consistency, compliance, or compatibility across your organization. One problem that currently exists is that there is no easy way for an admin to even discover what all global polices exist for Visual Studio. Because there’s no centralized repository that captures the Visual Studio policy options, there’s also no consistent method for all users to deploy the settings using standard management and deployment tools such as Group Policy Editor and Microsoft Endpoint Manager, which results in a lot of duplicated, inefficient, and sometimes incorrect effort.
To address this, we are pleased to announce the availability of the new Visual Studio Administrative Templates (ADMX/ADML) files which are in Preview right now. The Visual Studio group policy settings contained in the ADMX file are machine wide for all users, which means that they intend to cover all applicable installed instances and SKUs of Visual Studio. IT Admins should be familiar with the ADMX approach as it’s analogous to what Office and Windows does. Please review the content of these and provide feedback on the Preview Visual Studio ADMX Templates here.
Removing out-of-support components
Visual Studio is a rich IDE that provides an abundant collection of tools and functionality for you to use in every stage of software development. As we all know, technologies change over time, some faster than others; consequently certain components that are initially included with Visual Studio may go out of support faster than the IDE itself. When a component transitions to “out of support”, it will not receive any future updates, which essentially means that it becomes insecure.
We’re happy to announce that now, using the latest Visual Studio 2022 installer, it will be possible to automatically remove all independent components from your installation that have transitioned to an “out of support.” state. You will be able to do this manually through the UI, programmatically, or by machine wide policy, and you’ll be able to manage both your client machines and your layouts. This functionality can also be extended to your Visual Studio 2019 and 2017 installations. By using this new feature when you perform updates, you will be better able to keep your machine secure.
Details about how to use this functionality are described here. We encourage you to try it out and look forward to hearing your feedback on this Preview!
Visual Studio enables collaboration for developers whether that is between individuals, part of contributing or using open source projects, and enabling your team to accomplish more.
You can now untrack and ignore tracked Git files from both Solution Explorer and Git Changes tool windows.
We have enhanced the user experience of trusting single and multiple Git repositories by improving repository status and utilizing a new trust dialog. This enhancement addresses a recent Git security update that requires users to trust repositories owned by different users.
We have also made performance enhancements when switching git branches. For more information read our Git Branch Switching Blog.
This release introduces performance, reliability, and UI enhancements to the All-In-One Search experience (Ctrl + Q). Now you can preview code and images before opening a result by selecting the window icons at the top right of the window. As we continue to work on performance and reliability, results that can be previewed will be temporarily limited to only files (not types, members).
You can enable All-In-One Search: Tools > Manage Preview Features > “New Visual Studio Search experience (restart required)”.
Selection Match Highlighting
The selection match highlighting is a new feature to help you quickly find additional occurrences of a string in the document you’re editing. In Tools\Options, check Text Editor > General for the new “Show selection matches” option. When it’s checked, any time you select something in your editor, anywhere else that exact string occurs will be subtly highlighted both in the editor and in the scrollbar. Currently, it only works for strings less than 200 characters in length and all on a single line, but our goal is to make it easier to notice when and where a string is in use.
We intentionally chose subtle colors since we found brighter colors to be distracting, but if you want to change the colors, you can find “Selection Match Editor Highlight” and “Selection Match on Scrollbar” in the Fonts and Colors page of Tools\Options. Both of these are “Text Editor” settings.
Visual Studio has always been about developer productivity. We are constantly adding new language features to help you do more in your core edit-debug loop.
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.
Based on your feedback there is a new option “Navigation after Create Declaration/Definition” to allow you to choose the navigation behavior of the Create Declaration/Definition feature. You can select between peeking (the default) or opening the document, or no navigation.
In addition to ARM64 VS bundling ARM64 versions of CMake and Ninja we have added support for CMake Presets in version 4. See the CMake release notes for details of what is available.
For cross platform C++ development connecting to remote systems with the Connection Manager now supports SSH Proxy Jump. This is used to access a SSH host via another SSH host (for example, to access a host behind a firewall).
We continue to track the latest developments in C++ standardization. In 17.4 Preview 1 we have added support for the following C++ 23 features. You can enable these by including /std:c++latest in your compiler options.
- 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
Tooltips for local functions now show argument names.
As you use Visual Studio, let us know what you love, what you like, and where you’d like us to improve. You can share feedback with us via Developer Community: report any bugs or issues via report a problem and share your suggestions for new features or improvements to existing ones.
As always, we appreciate the time you’ve spent reporting issues and hope you continue to give us feedback on how we’re doing and what we can improve.