March 14th, 2023

Visual Studio 2022 v17.6 Preview 2 is now available

Marian Luparu
Group Product Mgr

Preview 2 for Visual Studio 17.6 is now available! If you are a game developer, a mobile developer, or are interested in learning new tricks to better debug your code, check out this latest release. It’s as easy as upgrading your Preview channel in the Visual Studio installer.

And if you haven’t activated your Preview channel for Visual Studio yet, click the button below to install Preview 2 now. You can also check out for the complete list of new experiences coming online for 17.6. Oh, and rest assured that Previews always install side-by-side with the officially supported Visual Studio releases, so you can always switch between them as you please.

In this blog post, we’ve summarized the most significant changes in the latest release of Visual Studio 2022. If you’re interested in a complete list of improvements, we recommend checking out the Visual Studio 2022 17.6 Preview 2 Release Notes. We encourage you to try out all the new features and capabilities we’re actively working on for the upcoming 17.6 release. By providing your suggestions and reporting any problems you encounter, you can influence the development of these features and help us make them even better.

Level Up Your Productivity

With Visual Studio 2022, our goal is to help you get more done in less time throughout all your development tasks inside the IDE. In this Preview, we’re introducing enhancements to make your Git, debugging/diagnostics and C++ editing workflows more efficient.

Git Stage and Commit During Build

We responded to customer feedback, and you can now stage your changes and commit your staged items during a build. Committing directly is a risky operation since your files may change, but now you can stage them, verify your files are correct, and commit them – all while a build is running.

Improved Merge Dialog

Updates to our Merge Dialog make it easier to understand how many files are being affected by the merge operation and warn you if there might be conflicts. You also have more control over when you’d like automatically commit your changes after the merge.

Merge dialog showing 2 potential conflicts during merging 2 branches

Breakpoint groups

The breakpoint groups feature allows users to simplify the debugging process by organizing breakpoints into specific groups and managing them as a single entity, making debugging, testing, and troubleshooting more efficient.

Navigate to the “New” dropdown in breakpoints window and select “Breakpoint Group” to create a new group for your breakpoints.

To add a breakpoint to an existing group, right-click the breakpoint and choose “Add to Breakpoint Group”. You can also drag and drop the breakpoint into the desired group. These breakpoint groups can be enabled, disabled, and deleted. The breakpoints can be toggled individually or in combination as needed.

Instrumentation Profiling for C++

The Visual Studio Instrumentation tool now supports C++ code, providing improved performance analysis. To access the instrumentation tool, go to Debug > Performance Profiler and select “Instrumentation” from the Profiler window that appears.

The Instrumentation Data View presents a list of functions ordered by longest-running, making it easier to identify potential bottlenecks. Additionally, the Hot Path section displays the call stack for the functions that are consuming the most CPU, providing further insight into performance issues.

Diagnostics Hub in Visual Studio showing the top functions and hotpath in a C++ application being profiled with instrumentation

To learn more about Instrumentation, check out Instrumentation in Visual Studio on Microsoft Learn.

Profiler Live Graph for .NET on WSL

The Visual Studio profiling tools now also support live graphs while collecting from dotnet-monitor for WSL. The WSL live metrics are available for .NET object allocation, CPU usage, and the .NET counter tool.

While the tool is initially collecting data from dotnet-monitor for WSL you can see the real-time graphing for live counter information, then you can stop collecting and see detailed breakdown views of memory allocation, call trees, functions, collections, and other related data.

Diagnostics Hub in Visual Studio showing a .NET application running under WSL being profiled

Microsoft Learn has more information about Analyzing memory usage for .NET objects.

Create C++ Member Function

Create Member Function is a feature that can help you to quickly add C++ constructors and equality operators. When you have a class with fields, three dots will appear under the class name, and hovering over them will display a screwdriver icon. The drop-down from the screwdriver icon will display the new member function suggestions. Thus, you can add a default constructor, constructor with all fields, equality operator, and equality operator with all fields.

The example below shows how a constructor with all fields and equality operator with all fields can be added. The operator’s Go to def is also displayed.

Streamline Game Development

We’ve also been working tirelessly to ensure that Visual Studio is a great tool for building games, whether you are a single-developer indie game creator or working on a AAA title. 17.6 Preview 2 includes more improvements that help you build better games faster.

Unreal Engine Code Analysis

You can now see warnings and errors from the Unreal Header Tool directly in Visual Studio. Available as a preview feature, the Unreal Header Tool emits warnings and errors while parsing Unreal related C++ headers. You can find these warnings in the Error List as well as see them visually denoted by purple squiggles in your editor. For more information about these warnings and errors, please visit the Unreal Header Tool Documentation page.

Visual Studio editor showing C++ code with additional squiggles coming from the Unreal Header Tool

To try this feature, make sure the “IDE support for Unreal Engine” is selected in the “Game development with C++” workload in the Visual Studio Installer.

Visual Studio Installer with Game development workload with C++ selected and the option "IDE support for Unreal Engine" checked

Since this is a preview feature, we would greatly appreciate it if you leave feedback by commenting in Code Analysis Feedback ticket. We plan on adding additional Unreal Engine specific code analysis in the upcoming previews, stay tuned!

HLSL Tools Extension by Tim Jones

HLSL (High Level Shading Language) is a DirectX-specific programming language used to create shaders in game development and rendering applications. The popular HLSL Tools extension by Tim Jones is now available as part of Visual Studio. Power up your HLSL development productivity with syntax highlighting, statement completion, go to definition, and more!

Visual Studio editor showing a HLSL file with syntax highlighting

To use HLSL Tools, please enable the component in the “Game development with C++” or “Game development with Unity” workload in the Visual Studio Installer.

Visual Studio installer with the "Game development with C++" workload selected and the "HLSL Tools" optional component selected

.NET Mobile Development

Android Manifest Editor

You can now use a visual editor for modifying Android manifest files. Double-click on your AndroidManifest.xml file from the Solution Explorer and easily set available properties and request device specific permissions.

Android manifest editor in Visual Studio showing application details including application name, package name, version number

To learn more, check out Working with the Android Manifest on Microsoft Learn.

Enterprise Management

Administrators want to properly enable, configure, and deploy Visual Studio within their organization. In this release, we’re continuing to make improvements with two new features described below. Watch this space for more to come.

Host and Deploy Visual Studio layouts from your intranet

Many companies that want to tightly control the Visual Studio version their organizations use, or whose client machines don’t have access to the internet, currently have the option to download and store Visual Studio in a “layout” that is made available via a file network share for their developers to install and update from. Starting with Visual Studio 2022 version 17.6 Preview 2, organizations will now be able to host and deploy layouts on an intranet website in addition to a file share. Using an intranet location can simplify layout maintenance and improve installation performance, particularly for those organizations that currently use multiple global network file shares. The scenario is currently targeted for IT Administrators to remotely deploy from. Please visit the feedback site to view guidance for how to enable this experience and let us know if there’s any functionality missing that you would need.

Limit exposure to available products in the Installer

We’ve updated the logic that controls what products are offered as available when you view the Visual Studio Installer’s “Available” tab. You should now have easy access to current Previews, as well as the ability to restrict exposure to certain products by disabling channels or using the new “HideAvailableTab” policy to disable the available tab altogether.

Your Feedback

In addition to all the product enhancements above, also check out the recently completed suggestions that you previously shared with us:

Help us build a better Visual Studio

As you use Visual Studio, let us know 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.

Stay connected with the Visual Studio team by following us on YouTubeTwitterLinkedInTwitch and on Microsoft Learn.

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.

Happy Pi Day!

Author

Marian Luparu
Group Product Mgr

Working on C++ experience for @visualstudio, @code, @visualc compiler & libs, #vcpkg

9 comments

Discussion is closed. Login to edit/delete existing comments.

  • 东 李

    C++ function list is on the top of code edit view, Is there any play to support displaying funcltion list in standalone?

  • He Ku

    I’d like to point out one feature didn’t mention here, I found the new document style Start Window is changed in 17.6 preview 2, the document style Start Window is great, much better than the modal style one, but I think the current layout is not good as the previous one (the one exists before in 17.6 preview 1), it waste lots of space. Hope you can bring back the previous layout finally.

    • Dominic NahousMicrosoft employee

      Thanks so much for pointing this out! We actually just made a new post earlier today describing what’s going on there. When you have a moment, please take a few moments to read through this welcome experience blog post. We’d certainly appreciate your detailed feedback on the experience.

      • Adam Jensen

        The previous (17.4) Start Window is the best. It’s simple and lets me do exactly what I need when opening Visual Studio. New version loads Visual Studio first (with plugins) and only then allows you to open a solution.
        IMHO, “tip of the day” window would be much more relevant.

  • Michael Taylor

    I’m confused about what this release note actually means:

    >> Removal of integrated Edge Developer Tools for ASP.NET web workload

    The highlights section has a link that says `Edge Developer Tools no longer included in Visual Studio` but that link goes nowhere.

    Are the Edge developer tools no longer supported when working with ASP.NET apps? Does it work for ASP.NET MVC apps? What about Chrome?

    • Tim HeuerMicrosoft employee

      Hi @Michael and @Eli -- thanks for the report on the bad link...this is fixed.

      @Michael to answer your question -- we had introduced a version of Edge developer tools *integrated* within a Visual Studio tool window. That is what this refers to. Edge Developer Tools in general (provided via Edge browser in the browser experience) still work with any content rendered in the browser and this statement is no change to the functionality...

      Read more
  • Alex Ivanoff

    About “Create C++ Member Function”:

    – Shouldn’t generated constructors use universal initialization?
    – Shouldn’t generated comparison operators be friend?

    • Mryam GirmayMicrosoft employee · Edited

      Hi Alex, thank you for your feedback. We will consider your input in the further improvements of the feature.

      I have created a DevCom ticket for this: Improve “Create C++ Member Function”. Please upvote and the team will have a look.