December 13th, 2022

Try out Visual Studio 2022 version 17.5 Preview 2

Anthony Cangialosi
Group Product Manager, DevDiv

I’m excited to share today we released Visual Studio 2022 17.5 Preview 2! Your feedback goes directly to the product team working to deliver you the best developer IDE. We welcome your feedback on Developer Community where we are always eager to hear your suggestions for new or existing features and learn about any bugs or issues via report a problem.

This release is packed with new capabilities across the IDE, .NET, C++ and Setup. There is something in this release for everyone. Many of these tackle top asks you’ve voted for on Developer Community. Use the list below to jump straight to what matters most for you:

IDE

.NET

C++

Setup and Updates

Revised: We got a bit ahead of ourselves by including the new spell-checking feature we’re working on but didn’t quite make our Preview 2 release. We’re still working on the spell checker and look forward to hearing your feedback when we release the spell checker in an upcoming preview release.

IDE

All-In-One Search

The new search experience makes it easy for you to quickly find a Visual Studio menu feature files, types, and members in your code all from one place.

We have made significant improvements to the ordering and relevancy of results in our code search. We also removed the limit to the number of results provided in the results list without compromising speed.

Code search now has a Preview Panel that supports code results for both C# and C++! By default, the preview will automatically show when you perform a search so you can immediately see the context of the selected result.

Enable All-In-One Search by going to Tools > Manage Preview Features > “New Visual Studio Search experience (restart required)”.

Image 17 5p2 all in one search

Edit Sticky Scroll

Sticky Scroll helps you orient where you are in the file and understand the context of the code you’re looking at. As you scroll through your code, the class and method signatures will stick to the top of the editor window. Single clicking on one of the lines in the header will quickly navigate you to that line of code.

Try this feature out by going to the Options > Text Editor > General > Sticky Scroll and toggling the checkbox for “Show the nested current scopes during the scroll at the top of the editor”.

Image sticky scroll c scroll and click

Debugger Text Visualizers

The new and improved text visualizer is now more powerful with additional tooling and string manipulation options. You can now do URL Encode and Decode, Base64 Encode and Decode JWT easily. The new window also provides full theming support for dark, blue, and light VS themes.

Quick Add Item

The new Quick Add feature allows you to add new items to your solutions without navigating through the New Item Dialog. Add a new item as you normally would either by selecting a folder or project where you’d like a new file and selecting Add > New Item… from the context menu or by using the Ctrl+Shift+A keyboard shortcut. Add new files, such as “NewClass.cs” without browsing the template list. Quickly create nested folders, by just specifying a path. Or add multiple files or folders at once by using a “,” as a delimiter between items to scaffold out a new project. If you want to go back to the switch back to the full dialog just click “Show All Templates.”

Image Picture4

Better Support for Accounts with Multiple Tenants

Improvements to the re-authentication workflow not only provide context into why you need to re-authenticate your account, but also allow you to filter out any problematic directories for which you can’t satisfy conditional access policies (e.g., MFA, IP restrictions, etc.), or that might not be relevant to your current development activities.

Image filter 100 extended fixed

.NET

Publish to Azure Container Apps

Right-click > Publish in Visual Studio for ASP.NET projects now support publishing to Azure Container Apps. It allows for both publishing on demand and setting up CICD via GitHub Actions.

Image Picture5

Image Picture6

Application Logs in VS Terminal

You can now view the application output for ASP.NET Core projects in the Integrated Terminal Tool Window instead of an external console window. If you launch multiple ASP.NET Core projects, each will show its output in a different Integrated Terminal Tool Window.

You can configure this setting in Tools -> Options -> Projects and Solutions -> ASP.NET Core, use the Run web server in option.

Image aspnet int terminal optimized

Filtering in Code Coverage Window

Filter code coverage reports so you can find relevant information quickly and avoid navigating through the whole coverage report. Several filter types are supported including:

  • Search by name (Show only those which matches search string in the window).
  • Filter by type
    • Show all
    • Show 100% fully covered
    • Show (>0% && < 100%) partially covered
    • Show 0% covered

Image Picture7

C++

C11 Atomics

We have added an experimental implementation of C11 atomics to MSVC! Atomics is one of the optional features of C11, and our initial support is for lock-free atomics only. This feature is available under the /experimental:c11atomics flag, in /std:c11 mode or later. Read more about this in Charlie Barto’s blog post.

Go to Definition Improvements

Go To Definition for C++ will now use a more subtle indicator when the operation is taking more time, replacing the modal dialog from previous versions.

Macro Expansion Improvements

There have been several improvements to IntelliSense macro expansion. Notably, we enabled recursive expansion in more contexts, and we added options to the pop up to copy the expansion to the clipboard or expand the macro inline.

Image Picture9

Unreal Engine Asset Inspector

You can now view properties from base classes modified in an Unreal Blueprint asset without leaving Visual Studio. Double-click in a Blueprint reference for a C++ class or property to open the UE Asset Inspector in Visual Studio.

Image Picture10

Inlining of std::move & std::forward in Debug Mode

We know that many of you care about performance in debug mode, particularly game developers. As such, named casts like std::move and std::forward will no longer produce function calls in generated code, even in debug mode /permissive- or a flag which implies it (e.g. /std:c++20 or std:c++latest` is required.

We have also added an [[msvc::intrinsic]] attribute to support this. This can be applied to non-recursive functions consisting of a single cast, which take only one parameter.

Find out all the details in Cameron DaCamara’s blog post.

High-confidence Lifetime Checks

We have added high-confidence versions of the existing lifetime checker warnings warnings. Users who want less noise can enable only the high-confidence warnings, while users who want more rigorous checks at the cost of noise can enable both the old and the new warnings. As of 17.5, the high-confidence warnings are still experimental, but depending on the feedback we might include them in some of the recommended profiles in future versions.

You can find out more in Gabor Horvath’s blog post.

CMake Presets version 5

CMakePresets.json version 5 is now supported. See the CMake documentation for information on the new features.

Hot Reload in CMake Project Template

Hot Reload is now supported in the CMake Project template allowing you to modify your CMake projects while they are running.

Build multiple CMake Targets

You can now select multiple targets to build in the CMake Targets view. You can also now use the Test Explorer to build and test multiple CMake targets in parallel.

Image Picture11

Remote File Explorer

The Remote File Explorer is now available in preview and allows users to view the file directory on any remote machine they have connected to via the Connection Manager within Visual Studio.  To enable this feature, go to Tools > Options > Preview Features and check “Enable the Remote File Explorer tool window”, then restart Visual Studio.

Once you have the preview feature enabled, just go to View->Remote File Explorer to open this view and use the dropdown menu within the Remote File Explorer to select your target machine.

Additionally, you can upload and download files to this remote machine and press the refresh button to sync changes to your remote machine that you may be working with in the Linux console, so that you can ensure you are working from the same directory. You also can cancel any ongoing file operations using the bottom pane.

Image Picture12

Linux Console Integrated Terminal Support

The Linux Console is now available in the Integrated Terminal which allows for input and output.

Dev Container Improvements

You can now run Dev Containers on remote Linux machines. You can select a remote connection to run your Dev Containers on from Tools, Options, Dev Containers.

Image Picture13

Alternatively, you can right click the devcontainer.json file in the Solution Explorer and select Start Container on then select your preferred connection in the options.

Image Picture14

You can also now open a Terminal window into the currently running Developer Container. Right click on the devcontainer.json file in the Solution Explorer and select Open container in terminal.

Image Picture15

Serial Monitor Concurrent Monitoring

Concurrent monitoring allows you to monitor multiple ports at the same time, side by side. Simply press the plus button to open another Serial Monitor and get started.

You can find the serial monitor in the debug menu under windows.

Image Picture16

ARM64: LLVM Support

We now ship a native Arm64 Clang toolset with our LLVM workload, allowing native compilation on Arm64 machines.

Setup and Updates

With Visual Studio 2022 version 17.5 Preview 2, we’ve introduced two new features that can help you configure a Visual Studio offline installation (layout) and stay updated easier.

Customizing a Layout Using a .config File

It’s now possible to export a configuration file to configure the contents of an offline installation layout. This feature is one of our top voted Developer Community suggestions.  This functionality is now available using the 17.5 Preview 2 installer.  To try this out, first export a Visual Studio 2022 configuration file you want to replicate in your layout, download the latest 17.5 Preview 2 bootstrapper (https://aka.ms/vs/17/pre/vs_enterprise.exe), and run the following command:

vs_enterprise.exe --layout c:\layout --config c:\myconfig.config

Additionally, it’s possible to *add* components to an existing layout.  So, if you’ve already created a preview layout containing one workload, you can add configuration for additional components/workloads to that layout by using the exact same syntax above.

Persistent Update on Close

It’s now possible to configure Visual Studio, to automatically apply previously identified available updates when it closes. This setting is configurable on a per instance basis of Visual Studio. You can, for example, set your Previews to check for updates when you close the Preview, but your regular production Visual Studio instance can continue to be updated on demand. You can find this option in the Tools Options Update Settings dialog.

Image Picture17

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.

Author

Anthony Cangialosi
Group Product Manager, DevDiv

Anthony is the program manager for Visual Studio’s core IDE. Anthony joined the Visual Studio team in 2001 and has contributed experiences across the IDE including VS’s identity infrastructure the Shell, the VS SDK, Ecosystem, VSIP, mobile device development and many others.

27 comments

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

  • Postlagerkarte !

    Using this preview I get plenty of “Spelling Errors” from the Spell-Checker. How can I disable the Spell Checker?

    • Thomas Hafner

      Please, I am German and I now have 500 warnings…

  • Niels Pardons

    Is a "Document Outline" feature that actually works for C# at least being worked on for 17.5?
    The feature was implemented for 17.4 but never actually properly worked and wrecked your performance.
    And now in 17.4.4 it was just disabled for C# rather than actually being fixed?

    https://developercommunity.visualstudio.com/t/document-outline-function-so-slow/10201114
    "A fix for this issue has been released!"
    What a joke.

    https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes
    "Document Outline feature has been disabled for C# source files"

    Read more
  • mathieu prevot

    The link to Gabor Horvath’s blog post about High-confidence Lifetime Checks is dead.

  • Anthony Francis Steiner Vazquez

    Wow! All in one search and quick new item are just a few of the things that I really wanted in VS. Thanks!

  • Anonymous

    Looks to be a nice release, but I would like to see Visual Studio available for Linux.

  • Stevie White · Edited

    Wow, great work MS! I’ll be excited to try out sticky scrolling and the new search when this gets introduced to general availability. 😎

    Something I noticed that you may want to fix – the link to Gabor Horvath’s article appears broken.

  • AlanW

    Thank you, you now allow us to decide how we want the Application Logs goes into the Integrated Terminal Tool Window or to external console window.

  • Robert van der Hulst · Edited

    Is there any documentation on how 3rd party languages can integrate in the All-In-One-Search.
    And more in general: please make sure that if you add new features, that the documentation of that is not only available to the C#, VB and F# teams but also to others!
    That would be VERY welcome!
    I have also tried the Preview Windows Forms designer for .Net Framework apps. This works for C# apps and VB apps. But for...

    Read more
    • Leah TranMicrosoft employee

      We also want to note that, for now, All-In-One Search currently does work with existing 3rd party GoTo providers (INavigateToItemProvider), but these do not support the Preview Panel.

    • Leah TranMicrosoft employee

      Thank you for your feedback! Regarding All-In-One Search, we haven’t finalized the extensibility API as of yet. As we continue to iterate on the experience and begin to roll it out more broadly, we will make sure to update the documentation and share more details.

  • Nobuyuki Iwanaga

    I want the text visualizers to support byte[] and Span visualization with utf-8 decoding, stringify as hex sequence, decimal sequence and base64 encoding.