Visual Studio 2022 – 17.5 Released
We’re excited to announce that Visual Studio 17.5 is now generally available. This release is full of updates that take friction out of your daily workflows making it easier for you stay in the zone while you code. Features like all-in-one search and intent-based suggestions help you move faster, while improved build and debug speeds ensure your IDE won’t slow you down.
For .NET and cloud developers, we’ve focused on improving the inner-loop dev experience. New .http/.rest files make it easier to test and iterate on your APIs directly in Visual Studio, while improved Dev Tunnels help streamline the configuration and management of your webhooks. We’ve also made it easier than ever to deploy your ASP.NET apps to containers.
Game developers can now view properties from base classes modified in an Unreal Blueprint asset without leaving the IDE. Visual Studio has improved the cross-platform development experience with a new remote file explorer, Linux Console output to the Integrated Terminal window, dev container improvements, and more.
Beyond individuals, Visual Studio also has new features to better support dev teams at scale, with exportable configuration files and a persistent update toggle helping ensure everyone on your team is working from the latest version of the tool.
This blog covers several of the top new features in Visual Studio 17.5—to see some in action, watch the Visual Studio 17.5 release video. As always lot of these features come straight from your feedback and suggestions. Your feedback is critical to help us make Visual Studio the best tool it can be!
- All-in-one search
- Intent-based suggestions
- Debugger text visualization
- Faster .NET builds and debugger features
- Improved Razor and C# Experience
.NET and Cloud development
- API development inner-loop
- Improved Dev Tunnels configuration and management
- Containers and Azure
- Accessibility Checker
Modern C++ and game development
- Unreal Engine Blueprint References and Asset Inspector
- Macro Expansion Improvements
- C11 Atomics
- Native Arm64 Clang toolset
C++ Cross-platform and embedded development
- Layout configuration management
- Winget integration
- Always update upon close
- Accessibility Feature – Adding Sounds in the Installer!
Read on to learn more about these new features.
Visual Studio’s new All-in-One Search, Intent-Based Suggestions, and Debug Visualizers are designed to boost your code navigation and understanding. With the emphasis on productivity, this release not only offers new functionalities but also reduces build and debug times, making your workflow faster and more efficient.
All-in-one-search provides users with a quick and easy way to find Visual Studio files, types, and members in your code. We’ve made significant improvements to the ordering and relevancy of results in our code search while removing the results limit without compromising on speed.
Code search now has a Preview Panel that supports code results for both C# and C++! The preview will automatically show when you perform a search so you can see the context of the selected result. You can change the panel orientation or toggle it on/off by selecting the panel icons at the top right of the window.
Enable All-In-One Search by going to Tools > Manage Preview Features > “New Visual Studio Search experience (restart required)”.
Intent-Based Suggestions is a new feature that provides in-line suggestions in your editor based on your recent changes. The feature uses Machine Learning algorithms to understand the structure of repeated edits you’re trying to make to your code and suggest the change right in your flow, helping you code faster and more accurately. Try it out and experience the power of intent-based suggestions in your development workflow today!
We’ve improved the text visualizer with additional tooling and string manipulation options. You can now do URL Encode and Decode and Base64 Encode and Decode JWT more easily, while full theming means the text visualizer window will fit the look and feel of the rest of your IDE.
We have drastically improved incremental build performance by only building projects that had modifications while skipping projects that were unchanged. With Build Acceleration you can reduce incremental build times for SDK-style .NET projects by up to 80%.
We’ve also made significant performance improvements in the debugger by improving the response times of the threads window. This window is critical in debugging today’s multi-threaded applications. In this release, the thread window automatically scales with the number of threads, helping contribute to 2X faster response times compared to Visual Studio 17.4. We’ve also improved external source de-compilation speeds by up to 10X, making .NET module troubleshooting much more efficient.
To address the feedback about productivity and performance surrounding Razor and C#, we’ve focused on improving the Razor and C# experience, with support for code actions in Razor files, including some helpful shortcuts like “Remove Tag,” “Encode image in Base64,” and “Insert Image height/width.”
A lot of the feedback we received around Razor and C# editing focused on the Roslyn experience. We’ve prioritized improving performance in project configuration switching, speeding up code analysis recognition, and improving the typing experience to reduce UI delays.
Back-end APIs and microservices play a critical part in powering modern web apps, yet for many, API development remains a pain point. Efficient development with APIs requires agility and the ability to iterate quickly. We’re on a mission to make it easier to work with APIs throughout the inner-loop lifecycle—from coding and building to debugging and testing your apps.
Our first step towards better, faster API development is the addition of .http/.rest files in ASP.NET Core Projects, along with an integrated HTTP client. These files act as terse definitions for your API endpoints, enabling you to “run” your APIs and manipulate various REST calls to iterate within parameters and see the outputs in a structured way—all from Visual Studio.
These .http/.rest files aren’t meant to replace integration and unit testing. Instead, they provide a new way to rapidly iterate on API development, as well as a common place to monitor the APIs your app may be using and investigate required inputs/outputs during development.
This is just our first step towards improving the quality-of-life for developers working with microservices in Visual Studio—stay tuned for future features in upcoming previews!
Of course, APIs are just one way modern apps interact with each other—webhooks are also crucial for enabling information to automatically pass back and forth between different applications. Dev Tunnels play a crucial part in configuring webhooks during inner-loop processes, as they provide a way for public services to be pointed towards code that’s hosted locally on your machine. We’ve made it easier to set up Visual Studio dev tunnels by giving you more control over their configuration and creation.
This release makes it easier to manage and switch between your Dev Tunnels and specify which you want to use in any given debug session. Both features provide powerful inner-loop productivity gains for API developers in .NET, and we look forward to your feedback on them.
For .NET developers working on web apps and APIs, fast, simple container management is crucial to enabling productivity and efficiency. Visual Studio already has excellent support for deploying to services like Azure App Service and Azure Functions, but we want to extend that simplicity to container-based services like Azure Container Apps.
This release takes a significant step forward by enabling you to deploy your ASP.NET Core app to Azure Container Apps in just a few steps. Instead of relying on additional files to define your container content and build steps, you can now directly target Azure Container Apps through the Publish window and either use a pre-provisioned resource or have VS help you create one:
After creating your resource, you can leverage new .NET 7 SDK capabilities to build the container image directly using the SDK with no additional knowledge or files. This is a fast, easy way to get your code to cloud using existing, familiar tools and workflows.
Of course, with our Azure Publish capabilities, you can also choose how to deploy by selecting on-demand or have VS create a starter GitHub Actions workflow if your app is in a GitHub repository.
Visual Studio now has an integrated Accessibility Checker that detects many common accessibility issues for XAML based desktop applications. The Accessibility Checker uses the same axe-windows engine as Accessibility Insights, which is the same accessibility testing tool the Visual Studio team uses for our own accessibility testing. The Accessibility Checker supports WPF, UWP, WinUI and MAUI (through WinUI). To access the Accessibility Checker, make sure XAML Hot Reload is enabled in the option page, then press the “Scan for Accessibility Issues” button in the XAML Live Visual Tree toolbar.
When the Accessibility Issues button is clicked, the axe-windows engine will scan the running application for accessibility issues and present them in the Accessibility Checker window. The window will list the Automation ID, Rule, Description, and a brief explanation of how to fix the issue for each item the axe-windows engine detects.
We’ve included several new productivity enhancements for C++ developers, whether you’re working on games, cross-platform, or embedded applications—including a UE Asset Inspector in Visual Studio, Hot Reload support for CMake projects, IntelliSense improvements for macro expansions, and much more. For a more in-depth overview, checkout the Visual Studio 2022 version 17.5 for C++ Developers blog post.
For Unreal Engine game developers, you can now view Blueprint references and associated assets directly in Visual Studio. To see Blueprint references, click on the CodeLens hints now appearing on top of C++ functions, classes, and properties. From there, you can click on the Blueprint CodeLens hint and select a reference to open the Asset Inspector. Learn more by reading our Unreal Engine Announcement Blogpost.
We’ve also added several improvements to IntelliSense macro expansion designed to provide more effective, appealing and easier to read macro expansions inside Quick Info. Not only have we added recursive expansion in more contexts, but you can also now copy the expansion to the clipboard or expand the macro inline through options in the IntelliSense pop-up window. In addition, Macro expansion inside quick info will now have a formatted display and monospaced font.
Users will be pleased to learn we’ve expanded our standard library features to include C11 atomics in MSVC. Initial support is only for lock-free atomics and can be found under the /experimental:c11atomics flag, in /std:c11 mode or later.
While Visual Studio 17.4 introduced Arm64 support, we’ve expanded Arm64 capabilities with native Arm64 Clang toolset in our LLVM workload, enabling native compilation on Arm64 machines.
For cross-platform and embedded developers, we’ve added several new features that help streamline your workflows beyond Windows.
We have moved the Linux Console into the Integrated Terminal to make it easier to interact with the remote Linux Machine. The integrated console window allows you to provide input as well as seeing console output.
When you’re using a Dev Container for application development, you can now run them on remote machines. We have also added the ability to open an interactive shell in the running container in the Integrated Terminal.
With this version of Visual Studio, we’ve also added several new CMake capabilities to speed up compiling workflows. You can now build and test multiple CMake targets at once from the CMake Targets View in Solution Explorer. We’ve also enabled hot reload for CMake projects and added support for the latest CMakePresets.json files, making it easy to share settings across your development and CI environments while ensuring consistency.
Embedded developers who have more than one serial device, or TCP connection with SWO traces, will be happy to find they can now open more than one serial port monitor at a time.
Deploying any application across a large enterprise brings unique challenges. Visual Studio has improved the experience for creating and managing offline layouts for deploying Visual Studio. We’ve also made it easier for developers to decide and control when updates are applied on their local machine.
It is now possible to use an exported configuration file to configure the contents of an offline layout. This capability was one of our top-voted Developer Community suggestions, and it requires the latest Visual Studio installer that ships with Visual Studio 17.5. To use this capability, first export a Visual Studio configuration file that you want to replicate in your layout, and run the following command:
vs_enterprise.exe --layout c:\layout --config c:\my.vsconfig --useLatestInstaller
This functionality extends all the way back to Visual Studio 2017 assuming you pass in the required
--useLatestInstaller parameter. It’s also possible to add components to an existing layout. If you’ve already created a layout containing one workload, you can add configuration for additional components and workloads to that layout by using the exact same syntax above.
Visual Studio 2022 and 2019 are now supported and available on Winget, the Windows Package Manager tool. Going forward, all Visual Studio updates will now automatically be available on Winget as part of our release process.
By default, winget only installs the core Visual studio workload. However, you can take advantage of winget’s
--override switch along our new
--config switch and use winget to do a customized installation. For example:
winget install --id Microsoft.VisualStudio.2022.Community --override "--passive --config c:\my.vsconfig"
Please note that during the winget repo ownership transition, we’ve updated the existing directory structure to better reflect how we ship and maintain Visual Studio. This does mean that if you have existing scripts or commands that depend on the prior Winget directory structure or package identification, you may need to make a one-time fix to align with our changes.
It’s now possible to configure Visual Studio to automatically apply 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 > Product Updates dialog. Read more about how to get the most out of updates for Visual Studio on Microsoft Learn.
We are continuously improving the Visual Studio customization experience to help you be more productive. Many of you are probably using the recently added audio cues in the Visual Studio editor and now we have added audio cues to the Installer! The audio cue alerts the user that the operation was finished on the installer or that there was an error by playing a sound. This includes install, update, modify, and many other operations done by installer or any error dialogs while trying requested operation. This feature is on by default, but you can turn it off by following the instruction outlined here: Disable sounds in the installer – Visual Studio Feedback.
Share Your Feedback and Stay Connected!
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.