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
- All-In-One Search
- Editor Sticky Scroll
- Debugger text visualizers
- Quick add Item
- Re-authentication workflow
.NET
C++
- C11 Atomics
- Go to Definition Improvements
- Macro Expansion Improvements
- Unreal Engine Asset Inspector
- Inlining of std::move & std::forward in Debug Mode
- High-confidence Lifetime Checks
- CMake Presets Version 5
- Hot Reload in CMake Project Template
- Build Multiple CMake Targets
- Remote File Explorer
- Linux Console Integrated Terminal Support
- Dev Container Improvements
- Serial Monitor Concurrent Monitoring
- ARM64: LLVM Support
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)”.
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”.
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.”
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.
.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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Using this preview I get plenty of “Spelling Errors” from the Spell-Checker. How can I disable the Spell Checker?
Please, I am German and I now have 500 warnings…
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"
The link to Gabor Horvath’s blog post about High-confidence Lifetime Checks is dead.
The blog got a new link:
https://devblogs.microsoft.com/cppblog/high-confidence-lifetime-checks-in-visual-studio-version-17-5-preview-2/
Wow! All in one search and quick new item are just a few of the things that I really wanted in VS. Thanks!
Looks to be a nice release, but I would like to see Visual Studio available for Linux.
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.
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.
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...
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.
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.
The link in “Read more about this in Charlie Barto’s blog post” (https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual-studio-2022-17-5-preview-2) is broken.
Thanks for spotting that. I’ve updated the link in the blog.
https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual-studio-2022-version-17-5-preview-2/
I want the text visualizers to support byte[] and Span visualization with utf-8 decoding, stringify as hex sequence, decimal sequence and base64 encoding.