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.

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:

  1. Enable and enroll the cloud connected AAD joined device into Windows Update for Business. In particular, the AllowMUUpdateService policy must be turned on.
  2. Enable the Visual Studio policy AdministratorUpdatesEnabled on the client machine.
  3. 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.

Screenshot of Windows Update with Visual Studio updates

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.

Arm64

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!

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.

screenshot of Push dialog with multiple repos

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.

Screenshot of git changes dialog with issue number selection

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.

Animation of before and after performance improvements of git branch switching in Visual Studio

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.

Dialog for creating a new Teams application

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!

To learn more and to start writing your VisualStudio.Extensibility extensions, check out this blog post and go to our VSExtensibility GitHub repo!

VisualStudio.Extensibility Tool Window Example

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.

Markdown support

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.

Visual Studio showing a markdown file being edited. The editor is divided in half with the raw markdown code on the left and the processed HTML being displayed on the right.

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.

The bottom right corner of the Visual Studio editor when editing a markdown document. The Preview button is marked with a yellow rectangle.

If you have feedback that you’d like to share, please head to this developer community ticket and join the conversation.

DataTable Visualizer

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.

Animation showing data table visualizer in Visual Studio

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.

Exception stack view in Visual Studio

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.

Sequence of images showing context menus for Test Explorer in Visual Studio

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).

Test Explorer menu highlighting options that show results are filtered

.NET

Inline Rename

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.

Inline rename feature being used in Visual Studio

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.

Animation showing tools options menu for disabling source link in Visual Studio

C++

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.

Image image027

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.

Background notification that vcpkg environment has been activated

IntelliSense improvements

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.

C++ Standardization

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

CMake improvements

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.

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.

You May Also Like

About the Author: AKDSEO