Visual Studio 2022 17.4 Preview 2
We have released Visual Studio 2022 17.4 Preview 2. In this post we’ll share details about features added since Preview 1. 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.
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.
- Introduce the ability to roll back a Visual Studio Update
- Allow multiple Git repositories to be active at once
- Adding a button to Test Explorer to reset the tests to “Not Run”
- CMake weird test name prefix
- Moving/migrating from preview channel to release channel of Visual Studio 2019 installation
- Arm64 support for Node.js
- C++ Android development – gradle
- Arm64 support for Visual Studio SDK
- Feedback on the rollback feature introduced in VS 2022 version 17.4 P1
- Arm64 support for Game Development with C++
In April 2021, Visual Studio started making updates available for IT administrators to deploy throughout their networked organization using WSUS and SCCM. We’re happy to announce that Visual Studio security updates will soon become available to modern cloud connected Azure Active Directory (AAD joined) devices that use Windows Update for Business (WUfB) and are managed by mobile device management solutions such as Microsoft Endpoint Manager (formerly known as Intune). You can now “preview” this experience and receive our September 2022 security releases on AAD joined devices by doing the following:
- Enable and enroll the cloud connected AAD joined device into Windows Update for Business. In particular, the AllowMUUpdateService policy must be turned on.
- Enable the Visual Studio policy AdministratorUpdatesEnabled on the client machine.
- Create the temporary REG_DWORD key on the client: HKLM\SOFTWARE\Microsoft\VisualStudio\Setup\PreviewAutomaticUpdates = 1
If the WUfB client device is configured to receive Visual Studio updates as described above, then when the Windows check for updates event occurs, Visual Studio updates will be downloaded and installed.
There are a few important details about this new Visual Studio update experience for cloud connected WUfB devices that you should be mindful of. These updates are delivered through the Windows Update advanced option to “Receive updates for other Microsoft products”; hence the need to enable the AllowMUUpdateService policy. WUfB treats these updates from other Microsoft products as Quality updates, so they should respect all the other WUfB Quality update policy settings. If Visual Studio is in use, then the update will be blocked and will likely retry at a later point depending on your WUfB settings. And finally, at least for now, only security updates for all supported versions of Visual Studio will be delivered through this mechanism.
Delivering updates through this important channel takes us one significant step forward in our pursuit of enabling enterprises to easily stay secure. We welcome your feedback here.
We have made significant progress bringing additional components and workloads to the native Arm64 Visual Studio experience. This includes the highly anticipated native performance improvements for the Windows SDK (includes Win UI 2 and UWP) as well as support for Win App SDK (Win UI 3)!
Preview 2 also includes support for the following workloads:
- Visual Studio extension development
- Game development with C++
- js development
Please continue to vote here on the workloads, components, and experiences that are most valuable to you!
Collaboration and Teams
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.
Multi-Repo Network Operations
You can now Fetch, Pull, Push, and Sync more easily in your multi-repository scenarios with an improved UI. Filter to a single repo in the network operations dialog to get more control over the operation.
GitHub Issues and ADO Work Item Integration
Enhanced GitHub and ADO integration allows you to query and reference GitHub Issues and ADO Work Items from your commits within Visual Studio! Type a # to see suggested items.
Git branch switching performance enhancements
We have made improvements to:
- Utilized targeted in place solution updates and thus avoids solution reload for many scenarios.
- Improved Solution/Project reload time by reducing many blocking operations.
Learn more by viewing the following blog: VS2022 Performance Enhancements: Git Branch Switching.
Microsoft Teams Toolkit
Teams Toolkit for Visual Studio makes it simpler to create, run, and debug apps for Microsoft Teams using .NET. Using Teams Toolkit, you can create new apps using the Microsoft Teams App project template. Next, you can manage your Microsoft 365 account and automatically register and configure your app so that it’s ready to debug right from Visual Studio.
If you want to host your app projects in Azure, Teams Toolkit for Visual Studio includes features that provision and deploy using an infrastructure-as-code approach with Bicep.
VisualStudio.Extensibility is a new extensibility model that lets you create more reliable, easier-to-write extensions.
Phase 2 of this new model is here, now letting you write richer, non-language-based productivity extensions. VisualStudio.Extensibility also introduces new APIs where you can add custom tool windows, user notifications, and additional command types to your extensions!
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.
We are continuing to improve the performance, reliability, and accessibility of the All-In-One Search experience (Ctrl+Q for feature search, Ctrl+T for code search). In addition to files and images, previews now work for C++ types and members.
You can enable All-In-One Search: Tools > Manage Preview Features > “New Visual Studio Search experience (restart required)”.
Audio Cues for Line addition/deletion
Recently, we made the first round of audio cues available for Visual Studio. These included breakpoints, warnings and errors. The feedback has been positive, and in this preview, we’ve added two new sounds. When comparing two versions of a file, you’ll hear two new audio cues when the caret arrives on a line that has been added or deleted.
We chose these two audio cues based on customer feedback, so if you’ve got more audio cues that you want to hear, let us know. We’ve created a developer community ticket as a great place to start.
Visual Studio now has an early preview for editing and previewing markdown files. To enable markdown support, go to Tools > Manage Preview Features and check the “Markdown language service” option.
If you’ve enabled the Markdown language service option but don’t see the markdown editor, right click any .md file in the solution explorer and select “Open With…”. In the Open With dialog, select “Visual Studio Markdown Editor” and hit OK. The Set as Default button in the Open With dialog can also be used to ensure that all .md files will use the Visual Studio Markdown Editor in the future.
To enable the preview of the HTML, click the small Preview button at the bottom right corner of the document. We’ve got more improvements that we want to do, but we want to make this available for users today.
If you have feedback that you’d like to share, please head to this developer community ticket and join the conversation.
We are continuing to improve our debugger visualizer experiment by extending all the advanced features of IEnumerable visualizer such as filtering, sorting, theming, and exporting to the DataTable visualizer.
The DataTable Visualizer will now also allow you to filter data based on the desired filter string. It will return all the rows that contain a value that matches the filter string.
To export the data export in CSV/Excel format using the dropdown on the top right corner. You can also export the filtered and sorted results in CSV/Excel format. Finally, the visualizer window will be themed as per your selected Visual Studio theme.
Exception Stack frames in Call Stack Window
The new Exception stack frames inside the Call Stack window will provide all functionalities of the actual call stack.
It will provide 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.
Unit Testing Performance
Major performance improvements in test discovery and test run workflows.
Parallel Test discovery
In solutions with multiple test projects, the Test Explorer now discovers tests present in different test projects in parallel. This means tests are discovered and displayed in the Test Explorer much faster! In our tests, we’ve seen test discovery complete **twice as fast** on a large solution with greater than 150 projects and close to 300K tests (*on a machine with 10 CPU cores).
Efficient parallelization of test runs
Test assemblies are now optimally parallelized across Target Frameworks and Architectures resulting in test runs that are **three times faster** on a large solution with greater than 150 projects.
Optimized communication between VS and test runner processes
The test runner process connections are now established sooner. This means saving around **1 second** on average per test assembly included in the test run. This leads to significant speed up for test runs involving a small number of tests. The communication between test runners and VS has also been tuned to be less chatty and more efficient. This leads to noticeable improvement especially for test discovery (**up to 30% speed gain** in many cases).
Clear Test Results and Filters in Test Explorer
The Test Explorer now has a way to clear results for a test or list of tests. Whether you are switching branches or bringing focus to a set of test results that matter or want to declutter old test results, you can start from a clean slate. You can clear test results on a test or a list of tests in the Test Explorer. You can also clear test results from the top-level Test menu if all results need to be cleared.
You now have a clear indication that the Test Explorer is filtered and clear all test filters applied with a single-click. This clears filters on test results state (or) filters on columns in the test list (or) filters in the search box (if they are applied).
.NET 7.0 RC and MAUI
Visual Studio will now install .NET 7.0 RC1 as the default SDK and runtime. This release includes support for .NET 7.0 RC1 MAUI, Android, iOS and related workloads.
There is a new Inline Rename UI that allows you to easily 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.
Option to disable Source Link and Embedded source
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.
Dev Containers for C++ CMake projects
Visual Studio Code has had support for Dev Containers for some time now. Beginning in Visual Studio 2022 17.4 you can now use Dev Containers for your C++ projects as well. You can learn more about this feature in our Dev Containers for C++ blog post.
vcpkg environment activation
We have 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.
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.
We added vectorized implementations of ranges::min_element(), ranges::max_element(), and ranges::minmax_element().
We continue to track the latest developments in C++ standardization. In 17.4 Preview 2 we have added support for the following C++ 23 features. You can enable these by including /std:c++latest in your compiler options.
- P2302ranges::contains, ranges::contains_subrange
- P2499string_view Range Constructor Should Be explicit
We have updated the version of CMake shipped with Visual Studio to version 3.24.1. See the CMake release notes for what is available.
We have removed internal prefixes from CTest names in Test Explorer.
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 )
We have also updated the NDK component to the LTS version 23 and added support for building with NDK 23 and 24.
Share your feedback and help us build a better Visual Studio!
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.