We’re delighted to announce the General Availability (GA) of Visual Studio 2022 version 17.7 today. This release is a testament to our continued commitment to creating an enriched developer experience powered by community feedback and driven by the needs of the diverse developer landscape. From novice coders to experienced developers, this update packs a variety of productivity enhancements, performance improvements, and new features to streamline your coding journey.
Download Visual Studio 2022
We encourage you to download Visual Studio 2022 17.7 GA and explore these new features and enhancements for yourself. As always, your feedback is crucial to us.
Share your thoughts on this blog post and help us continue to refine and perfect the Visual Studio experience. For a complete list of enhancements, check out the
Release Notes. Now, let’s delve into some of the significant enhancements and features this GA release has to offer:
Productivity Features
Comparing Files
You no longer need to leave Visual Studio and rely on other tools to compare files. Now you can easily compare any file in Solution Explorer with other files by either:
- Right-clicking on a single file, and selecting “Compare With…” from the context menu which will bring up File Explorer. Navigating to any file on disk and selecting it for comparison.
- Multi-selecting two files by holding down the Ctrl button, then right-clicking and selecting “Compare Selected” from the context menu.
Comparing Files in Solution Explorer
Please share your feedback
here. We’d love to hear your thoughts on this new experience.
Copy and Trim Indentation
If you have ever copied code from Visual Studio to another application (Outlook, Teams, Slack, etc.) and found that your code indentation has not been copied correctly, you will find that this new capability fixes that for you. Visual Studio now automatically fixes indentation for you when you copy code from Visual Studio and paste it into another application.
Copy and Trim Indentation
Multi-branch Git Graph
Collaborating across different git branches gets tricky without the ability to understand the relationship between these branches. Visualizing multiple branches doesn’t only make it easy to compare between branches, but it also empowers you to perform cross-branch operations like cherry-picking a commit, for example. Now you can quickly spot any missing commits you would like to cherry-pick without having to navigate away from your current branch. Click
here to learn more about this feature and use this
link to share your feedback.
Multi-branch Git Graph
Create New GitHub Actions
You can now create new
GitHub Actions workflows from Solution Explorer. Azure Container Apps and Azure Kubernetes Service destinations are supported, and now you can deploy multiple projects with a single workflow. When your project is under source control on GitHub.com, a new node appears in Solution Explorer, representing GitHub Actions. Right-click and select “Create new” to try out the new experience. Continue to share your feedback on this feature
here.
Create new GitHub Actions
Parallel Stack Filtering
You can use the updated Parallel Stack filtering options that let you selectively display or hide specific threads or frames. This means you can easily concentrate on the frames and threads that are important to you, giving you a clearer picture. Additionally, you can now Drag Select frames from the parallel stack window, allowing you to perform operations like copy/paste, flag/unflag, or freeze/thaw for all the selected frames at once.
Parallel Stack Filtering
Performance Improvements
F5 Speed
We recognize that the performance of Visual Studio is critical to you. With this in mind, we have optimized Program Database (PDB) files, resulting in improving debugging sessions and decreasing the project selection screen loading time for Unreal projects, for example, by 21% (~4 sec gain). Additionally, the F5 path is optimized, leading to a 5-10% improvement in the debugger’s startup time and process launch.
All-in-One Search Responsiveness
Several accuracy and performance enhancements are coming to All-in-One Search. For example, exact matches now show higher in the results list, and results update more accurately in real-time as you type your query.
All-in-One Search Responsiveness
Try out the All-In-One Search experience by making sure it is enabled in
Tools > Manage Preview Features > “New Visual Studio Search experience (restart required)” and using the
Ctrl + T or the
Ctrl + Q keyboard shortcut to launch it. If you have feedback to share with us about this feature, let us know
here.
Find in Files Search Time
Find in Files search time has been significantly improved with various optimizations, resulting in a remarkable ~50% reduction in search time!
Find in Files Search Time
C# Spell Checker Memory Consumption
The LSP (Language Server Protocol) for the C# Spell Checker underwent significant improvements. By implementing a more efficient data structure and enabling streaming support, we achieved a remarkable
90% reduction in the memory footprint of the JSON transferred between the LSP Server and LSP Client. This enhancement leads to faster performance, increased efficiency, and scalability for the spell-checking functionality.
C# Spell Checker Memory Consumption
C++ Unreal Engine Time to IntelliSense
In Unreal Engine projects, time to IntelliSense and colorization in newly opened C++ files have been significantly reduced. The generation of IntelliSense cache (IPCH) is now 30% faster in Unreal Engine 5.1 and 5.2 projects and 15% faster in Unreal Engine 4.27 projects.
C++ Unreal Engine Time to IntelliSense
.NET Development
Auto-decompilation for External .NET Code
Visual Studio’s External Source Debugging is now more powerful and effortless, with auto-decompilation for external .NET code. When you step into external code, the debugger will now display the point of execution. This feature is particularly useful when analyzing call stacks, as you can double-click any stack frame, and the debugger will navigate directly to the code. You can debug the decompiled code and set breakpoints easily.
All the decompiled code is also shown under the External Sources node in Solution Explorer when in debug session, making it easy to browse through the external files if needed. If you wish to disable the automatic decompilation of external code, simply clear the “Automatically decompile to source when needed (managed only)” option under
Tools > Options > Debugging.
Auto-decompilation for External .NET Code
New Auto Insights for the CPU Usage Tool
The CPU usage tool now provides more detailed information and insights for certain methods and properties, including Enum.HasFlag, Enum.ToString, String.StartsWith, String(char[]), ConcurrentDictionary.Count, ConcurrentDictionary.Keys/Values, and DateTime.Now. This means that you can get a better understanding of how these methods and properties are affecting your CPU usage, which can help you optimize your code and improve performance.
In addition, there’s a new preview capability that demonstrates GitHub Copilot chat integration with the CPU usage tool. This feature can be triggered when you encounter an issue, and it will provide you with an explanation of why the issue occurred and suggest a fix for it. This can be a helpful tool for you when you are looking to improve your code.
Auto Insights for the CPU usage tool
C++ and Game Development
Unreal Engine Macros Formatting for C++
We have added an option to use special indentation rules for Unreal Engine macros. Visual Studio will detect and use indentation and formatting rules for your Unreal Engine reflection macros.
Unreal Engine Macros Formatting for C++
To turn ON Unreal Engine-specific formatting, search “Unreal Engine” in Options or go to Tools -> Options -> Text Editor -> C/C++ -> Code Style -> Formatting -> Unreal Engine and check “Apply special formatting for Slate declarative syntax and Unreal Engine reflection macros.”
C++ Build Insights
Thanks to your
feedback, we are happy to announce that
Build Insights is now integrated with Visual Studio 2022! Build Insights provides you with valuable information needed when optimizing your C++ build times. Start your Build Insights .etl trace capture with a click of a button for your solution or projects. In Visual Studio 17.7, you can now see Included Files and Include Tree view. For advanced profiling, click the “Open in WPA” button to see the trace in Windows Performance Analyzer.
C++ Build Insights
After compilation, Build Insights will create a diagnostic report that allows you to see expensive includes and navigate directly to header files. We are committed to continually improving Build Insights. Which additional workflows would you like to see in Build Insights? Let us know in this Developer Community
Ticket. Click
here to learn more about this feature.
Unreal Engine Naming Convention Checker for C++
Visual Studio will now give you hints when your symbols are not conformant to the Unreal Engine coding style. After adding
an .editorconfig file to your Unreal Engine project, Visual Studio will display naming convention warnings in the Error List and provide a Quick Fix option upon right-clicking.
Unreal Engine Naming Convention Checker for C++
To change whether Visual Studio should treat the checks as Warnings or Suggestions, go to Tools -> Options -> Text Editor -> C/C++ -> Code Style -> Linter and change “Naming Convention (experimental)”.
Improved Doxygen Overload Resolution
Support for Doxygen comments has been enhanced, allowing the display of shared Doxygen comments in overloads that are not directly positioned beneath the comments. Furthermore, to enhance clarity and organization, any parameters that are unused will be conveniently grouped under the heading “Unused Parameter.” Click
here to learn more about this feature.
Improved Doxygen overload resolution
Visualize Macro Expansion for C++
Visual Studio now enables you to observe the step-by-step expansion of macros. When hovering over a macro, a tooltip with a new “Visualize Macro” option shows up. Clicking on “Visualize Macro” opens a new window displaying the initial expansion of the macro. With the help of arrows, you can navigate through each expansion step. Clicking the window tool button will display the steps of the expansion in a different window. Click
here to learn more about this feature.
Visualize Macro Expansion for C++
Unreal Engine Blueprint Find All References
In this release, you will be able to search for references of UFUNCTIONs in Blueprints with the new Blueprint Find All References. The latest version of our Unreal Engine plugin
“Visual Studio Integration Tool” is required.
Unreal Engine Blueprint Find All References
Linux and Embedded Development with C++
WSL Automatic Acquisition
With the Linux and Embedded Workload, Visual Studio now makes it easier than ever to get to that one-click download of WSL. When you open a CMake project that can target Linux, a gold bar will open for users to click and open a WSL installation process. By default, it will install an Ubuntu machine. Additionally, you can open the dialog by navigating to
Project > Install WSL For Me.
WSL Automatic Acquisition
Remote File Explorer Updates
We have added a search capability to the Remote File Explorer. You are now able to search for files based on where you are in your remote machine along the top bar and then right-click to go to any found file’s location. To open the Remote File Explorer, navigate to
View > Remote File Explorer after downloading it with the Linux and Embedded Workflow in Visual Studio.
Web Development
npm Dependency Management in ASP.NET Projects
In your ASP.NET projects that leverage npm packages, Visual Studio will now show those packages from your package.json in the Dependencies node in Solution Explorer. This enables you to get a clear view of all your solution dependencies in one place for .NET with references, NuGet packages, and now npm packages. You can add new packages or restore (npm install) all packages by right-clicking on the npm node. You can search and select which package you would like to add using the UI. You can update or uninstall a specific package by right-clicking on it.
npm Dependency Management in ASP.NET projects
Supporting Vite for React and Vue New Project Creation
When we
announced the JavaScript/TypeScript and .NET combined project templates in Visual Studio, we received community feedback that both create-react-app and the vue cli are no longer the preferred way of creating new applications. We now utilize
Vite for both React and Vue new project creation for our JavaScript and TypeScript project templates in Visual Studio. Project build and run will also benefit from Vite, such as faster server start and updates.
Supporting Vite for React and Vue new project creation
Enterprise Management and Acquisition
Ability for Standard Users to Update and Modify Visual Studio
Many enterprises spend a great deal of time and effort keeping their organization secure. They follow best practices by configuring users and machines to have a minimum level of access permissions, and they invest a lot of energy in keeping their organization’s software updated.
When organizations do restrict user permissions, it compromises their ability to keep Visual Studio updated and secure. The Visual Studio installer requires administrator permissions to use, but when users don’t have this level of access, they are prevented from updating Visual Studio and acquiring the latest security fixes and features. This problem was one of our
top developer community reported issues.
We’re happy to announce that starting with the 17.7 installer, standard users with minimized permissions can now update and modify Visual Studio! The initial bootstrapping and policy configuration to enable this must still be done by an administrator, but after that, any installer functionality can be initiated and executed by a non-administrator user.
This feature will offer organizations more flexibility and make it easier for you to configure and maintain a secure and productive environment.
Rollback Now Preserves all User Settings
We continue to make improvements to our recently shipped feature that gives you the option to “rollback an update”. If you now roll back to version 17.7 or higher, all your local customizations, such as user settings, will be preserved. For more information, please visit the
Rollback blog post.