Visual Studio 2022 – 17.6 Now Available
In the sprint to the BUILD 2023 conference, we’re thrilled to announce the general availability of Visual Studio version 17.6 today. This latest release delivers a range of powerful tools and features designed to empower you in crafting cutting-edge applications and experiences. The user-friendly environment, along with essential features like code completion, debugging, refactoring, and version control, caters to both experienced and novice developers striving to achieve their software development objectives, solidifying its position as the go-to IDE for millions of developers worldwide.
We’ve committed to you to enhance Visual Studio across a set of familiar themes that are enduring throughout each of our Visual Studio releases. Visual Studio 2022 version 17.6 represents the culmination to date for these big rocks:
- Level Up Your Productivity
- Build Modern .NET Apps
- Streamline Game Development
- Bring Your C++ Cross-platform Codebases
- Enterprise Management
You’ve also given us feedback and we listened. Many new features come straight from your feedback and suggestions, with this release completing 22 suggestions. Here are some of your most up-voted suggestions:
- Arm64 support for .NET MAUI
- .natstepfilter and .natjmc to be included as part of a project (vcxproj)
- “Sync with active document” now works in CMake Target View
- Creation of breakpoint groups
In this release, we’ve introduced significant performance enhancements to streamline your development experience. You’ll find improved performance for Git File History, faster opening and closing times for large solutions like Chromium, as well as large speed-ups in Performance Profiler ‘s stop collection operation.
We’ve made updates to the All-In-One Search UI, allowing you to search code and Visual Studio features in one spot. Additionally, both Brace Pair Colorization and Sticky Scroll are now available in the editor to help increase code readability, and our newly enhanced Spell Checker now supports C#, C++, and Markdown files, ensuring that your spelling is accurate throughout your project.
This GA release is all about productivity as it also brings language-specific productivity improvements, such as the C++ Member Function feature that enables you to quickly create C++ constructors and equality operations, and the C# IntelliCode API Usage Examples that help you find relevant, practical examples of API usage.
If you’re still chasing down a few bugs in your code, Visual Studio version 17.6 answers the call with new debugger & diagnostics capabilities. The Visualizer Support for .NET Unix remote debugging, Live Graph in the WSL Profiler, breakpoint groups, and the newly enhanced Call Stack Window, now with search and highlighting complement a seamless debugging experience across all supported platforms.
We’re constantly improving the git integration and, in this release, you can stage changes while building, unstage at line level, and the merging UI brings more control over your merges, increasing agility and collaboration with your dev team.
Beyond individuals, Visual Studio continues to offer features that better support dev teams at scaleLastly, this release also has the distinction of being a long-term servicing release (LTS). To learn more about LTS releases, check out Visual Studio Product Lifecycle and Servicing | Microsoft Learn.
And if you are a .NET or cloud-native developer, writing C++ cross-platform code, or you are a game developer, you can also dive deeper by reading the .NET Blog post on What’s New in .NET 8 Preview 4 or the C++ Blog post on Visual Studio 2022 version 17.6 for C++ Developers.
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, and in this release, we have improved the performance in several core experiences based on your feedback.
We made significant improvements to the Solution – Open scenario and in Solution Filters for Chromium developers. Cached project load of the full Chromium solution (11K projects) is 8x faster, which translates to saving 3.5 minutes of Solution Load. With these improvements the generated Chromium solution loads cached in about 30 seconds. With Solution filters loading Chromium with 63 projects, this improvement translates into 3x, saving about 20 seconds of cached or uncached load time. As with large-scale performance improvements in general, for smaller projects, the wins will be much smaller.
We made improvements to the Solution – Close scenario, which makes closing a solution containing C++ projects faster. The overall perf improvements can make closing a solution in some cases from 20% faster for small codebases, to 50% faster in some cases for large solutions (1000+ projects). We expect the wins to be more noticeable in large projects. For Chromium, the improvements are typically 50%, saving 20 seconds of time.
The Git History feature now loads files and folders faster for repositories with long history and less frequent commits. For example loading files have improved the performance by 42% in the Git public repository.
We have made significant improvements in the performance of the Performance Profiler’s stop collection feature. The stop collection now runs approximately 3.5 times faster when generating and almost 15 times faster when using cached values (which are always used if they are available). We’ve tested this using a 10-second trace in Visual Studio and as seen in example version 17.6 is significantly faster than previous versions.
New features are available in this release to help you enhance your productivity across different aspects of the development process. Let’s dive into these features.
Sticky Scroll keeps relevant headers in view, making it easier to navigate and understand your codebase. Now you can maintain context in your code while working with long classes and methods. Learn more about Sticky Scroll.
All-in-one search makes it easy for you to quickly find a Visual Studio menu feature (Ctrl+Q) or files, types, and members in your code (Ctrl+T). With this release you will see each result on 2 lines of space, default preview is at the bottom and the window size and location is persisted between sessions. These improvements are based on your suggestions (1, 2) 🙏 so please keep the feedback coming. Learn more about All-in-one search.
Spell Checker will check your C#, C++, and Markdown files for incorrectly spelled words. It can be enabled with the Edit > Advanced > Toggle Text Spell Checker menu command, or with the Toggle Text Spell Checker button on the main toolbar. By default, the spell checker will look for misspelled words in comments, identifiers and strings in the open document, and mark any unknown words as messages. Learn more about Spell Checker and how to configure it.
This release also brings language-specific productivity improvements, such as C++ Member Function enables you to quickly create C++ constructors and equality operations, and the C# IntelliCode API Usage Examples help you find relevant, practical C# examples of API usage for 100k common APIs right within Visual Studio.
Debugging & Diagnostics Capabilities
There is no better feeling that being able to catch and fix an elusive bug, and to be as effective as possible in doing so, this Visual Studio release brings you new enhancements to the best-in-class tools for the job.
Breakpoints Groups allows you to quickly and easily manage breakpoints in organized groups making debugging, testing and troubleshooting more efficient. This feature, built based on your suggestion 🙏, enables you to create, switch between, and manipulate groups of breakpoints, improving your debugging workflow.
There are more suggestions in the debugging space that we have addressed this release, as Visual Studio now supports .natstepfilter and .natjmc as part of the C++ project (suggestion 🙏), and searching and highlighting in Call Stack window (suggestion 🙏).
.NET Remote Debugging now supports visualizers for IEnumerable and DataSet to inspect your variables/objects when debugging .NET on Unix via SSH, Docker, or WSL.
Visual Studio Profiler shows live graphs now when collecting in WSL from dotnet-monitor. The WSL live metrics are available for .NET object allocation, CPU usage, and the .NET counter tool. Learn more about the .NET memory usage analysis.
Instrumentation in Visual Studio Profiler has been significantly improved, now using less resources, you can use the flame graph to identify you Hot Path in your program, and provides better error handling and scoping. Learn more about the latest improvements in the Visual Studio Instrumentation Profiling.
Git Collaboration Tools
To make the best of your collaboration with your dev team, you will want to get familiar with the latest enhancements provided by Visual Studio’s git integration:
Improve Merge Dialog provides more information and control over your merges, helping you avoid merging from incorrect branches and reducing the risk of conflicts
Git Line Unstaging allows you to unstage changes line by line, offering more granular control over your staged changes.
Based on a suggestion 🙏, now you can also stage your changes and commit while building rather than having to wait for the build to finish.
Link to GitHub Issues gives you easy access to GitHub issues that you can reference directly from within Visual Studio, streamlining your issue tracking and collaboration efforts.
Build Modern .NET and Cloud Native Apps
Elevate your .NET development experience with powerful new tools and enhancements designed to streamline the creation of modern applications for a diverse range of platforms and devices.
Android Manifest Editor streamlines your Android development process by making it easier to set available APK properties and request device-specific permissions.
There are more suggestions coming from you that we have addressed in this release: you can now build on and target Windows ARM64 devices when developing your .NET MAUI application (suggestion 🙏). The JS/TS editing experience also benefits from your suggestions, with two suggestions completed (suggestion 1, suggestion 2 🙏):
Web API development with ASP.NET Core is getting easier than ever with a number of updates for developing APIs, including Endpoint Explorer and .http file support to test APIs. This enhances your overall API development workflow when combined with API scaffolding, Entity Framework tooling, and developer tunnels. Read more in our latest blogpost about Web API development in Visual Studio 2022. If you want to see all this in action, checkout this short video:
Streamline Game Development
Visual Studio 2022 version 17.6 is a must-have whether you are an indie game developer or an AAA game developer. The enhanced capabilities of Visual Studio in every aspect of the developer inner loop will make game development faster, more productive, and more enjoyable. In this release, you can now stream Unreal Engine logs directly in Visual Studio, and benefit from an improved HLSL editing experience.
Unreal Engine Log Viewer enables you to view Unreal Engine logs without leaving Visual Studio. To open the log window, click View > Other Windows > Unreal Engine Log. You can also filter your logs based on “Categories” or “Verbosity”. After opening the UE log window, logs will automatically streamed when you start the Unreal Editor with F5. You can also press the red Record button if attaching the debugger to your UE process is not feasible.
HLSL Tools Extension by Tim Jones, now available as part of Visual Studio, boosts your HLSL (High Level Shading Language) development productivity. Enjoy features like syntax highlighting, statement completion, and go-to definition for an improved shader development experience.
Learn more from our latest blogpost about game development integrations in Visual Studio 2022. To see these features in action, check out this Visual Studio Toolbox episode:
Bring Your C++ Cross-platform Codebases
Visual Studio provides industry-leading development tools for C++ for any platform you’re targeting, integrating with a variety of tools from different vendors. You can rest assured that you will not trade-in flexibility in how you’re developing your C++ projects once you start using Visual Studio. In this release, Visual Studio adds new workflows for CMake, SSH, STM32CubeIDE and vcpkg:
CMake Debugger allows you to debug your CMakeLists.txt files within Visual Studio for any CMake project. Set breakpoints, step into, over, or out of them, and even pause or continue the currently executing scope. With an intuitive call stack display and variable watch functionality, the CMake Debugger streamlines the process of troubleshooting and refining your CMake projects. Learn more about the CMake Debugger.
Remote File Explorer for Unix enables you to browse, upload, and download files to your remote Unix-based machines listed in the Connection Manager. Following up on a suggestion 🙏, the Remote File Explorer can now be installed through the Linux and Embedded Development workload and offers a seamless and efficient way to manage files and directories on remote systems. Discover more about the Remote File Explorer.
If you use STM32CubeIDE projects, you can import them directly in Visual Studio by selecting File > Open > Import STM32CubeIDE project, when you have the Linux and Embedded Development workload installed. Learn more about how to work with STM32CubeIDE projects.
Vcpkg, the C++ package manager, now ships with Visual Studio and its commands can be run from a Developer Command Prompt or Visual Studio’s Integrated Terminal. More details are available in the vcpkg April update.
We’re introducing features that make it easier to scale your enterprise development environment and simplify the deployment and management of Visual Studio for IT administrators and developers.
Organizations can now host and deploy Visual Studio layouts on an intranet website in addition to a file share. This simplifies layout maintenance and improves installation performance, particularly for organizations using multiple global network file shares. Refer to the online documentation about http layouts for more information.
We’ve updated the logic on the installer’s “Available” tab to better reflect what products customers are most likely to want to install. You will now always have access to the latest Previews, as well as the latest major versions of SKUs you may already have installed. It’s also possible for enterprises to disable the Available Tab altogether across their organization as requested by your suggestion🙏. Keep watching this space for additional improvements in the future.
The Visual Studio installer is independent from the Visual Studio product, and it governs multiple versions of Visual Studio all the way back to Visual Studio 2017. Starting now, every future release of Visual Studio 2017, Visual Studio 2019, and Visual Studio 2022 will ship the latest installer. This means that all of these products will automatically be able to take advantage of the bug fixes and new features we add to the installer without needing to do anything special other than having the latest version of the product on the client machine.
Per your suggestion 🙏, we’ve also enabled the ability for clients to rollback an update if the product was sourced from a layout. IT administrators are expected to keep the older versions of the product packages available in the layout to facilitate the client’s ability to facilitate this.
Multiple .vsconfig files at any location in your repository are now supported, with the aid of an open-source tool called the Visual Studio Configuration Finder that can help you consolidate them when needed. Visual Studio’s VSConfig is a useful configuration tool that gives you the ability to export and import workload and component selection to a Visual Studio installation configuration file. For more information regarding VSConfig, please visit Import or export installation configurations | Microsoft Learn.
As you use Visual Studio, continue to let us know what you love, what you live, and where you’d like us to improve the product next. You can share your feedback with us via Developer Community by reporting any problems or sharing your suggestions for new features or improvements to existing ones. Your feedback is critical to help us make Visual Studio the best tool it can be!
Stay connected with the Visual Studio team by following us on YouTube, Twitter, LinkedIn, Twitch and on Microsoft Learn.
On behalf of the whole Visual Studio team, Happy Coding!
i hope to see 1 notepad++ feature makes its way into visual studio and that is “start selection – end selection from the context menu” to quickly select a lot of lines of code at once
this comment has been deleted.
I created a feature request ticket for it, so please vote for it if you wish to see this happen.
Any chance triple quotes will finally work in Razor file?
Does 17.6 include the MAUI net7 SR6 ? (https://github.com/dotnet/maui/releases/tag/7.0.86).
Normally this is mentioned in the VS2022 release notes – but there’s no mention of it at all this time.
It does! Will work on the release notes to ensure it is noted.
Thanks James… I really hope SR6 is not the same complete trainwreck SR4 was – as I’m sure most MAUI devs had done, I had rolled back VS22 to 17.5.3 because of it. I also hope there’s also some strategy in place soon to completely decouple MAUI from VS versions/workloads into Nuget packages – this would certainly solve a lot of these ongoing issues.
Microsoft is already using Rust as part of development. When will VS2022 support it？
Hello – After executing the update to 17.6.2, F7 / Shift+F7 is not working for switching between designer and code in MAUI – Is there any way to fix it?
Please provide the ability to deploy and debug .NET projects to ARM Linux (i.e. industrial and embedded system use cases). Visual Studio has this capability for C++ projects, and Visual Studio Code has this capability, but Visual Studio doesn’t. Why? See https://developercommunity.visualstudio.com/t/Convenient-way-to-add-a-remote-debug-con/917516
There seems to be some typos in the Lightbulb Performance Improvements section within the release notes:
Just upgraded to 17.6 and couldnt find the sticky scroll option in preview settings? Where can I enable it?
Tools | Options | Text Editor | General -> Under “Sticky scroll” section you can enable it.
It doesn’t seem to be mentioned anywhere (at least, not in this post or the linked post where the feature was announced in the 17.5 preview), but I just installed 17.6 and the Sticky Scroll feature only works if you also have the Block Structure Guides feature enabled in your language. It seems that at a minimum you need to enable guides for declaration level constructs. Sticky Scroll will then start working for namespace, class, and method declarations. If you also enable guides for code level constructs, Sticky Scroll will include the if/else, for loop blocks, etc.
Thank you for sharing this important detail, Kevin! It appears that we’ve overlooked this requirement, so we appreciate you bringing this up. I’ve just added this to our newest blog post on the Sticky Scroll experience and will make sure it’s in the documentation.
It seems that something was changed in regards to how blazor/razor handles @ref, either as an intended change or a bug.
In the previous version if Visual Studio, there was no problem having a component reference another component using @ref, however after updating to the latest version these references result in errors: @ref Cannot implicitly convert type ‘Microsoft.AspNetCore.Components.ElementReference’ to “SomeCompoent”
If this the intended change, perhaps noting it in the blog? 🙂
We believe this is a regression tracked by https://github.com/dotnet/razor/issues/8718 that we are working to get addressed as soon as possible..
got curious about the performance increase in opening Chromium and wanted to test it on my machine.
went ahead and downloaded the main.zip from https://github.com/chromium/chromium but couldn’t find the mentioned Chromium all.sln – where would I find this, to test the open/close of solutions?
“This GA release is all about productivity…”
Can’t talk about productivity until restoring the old “New Project” tree-based dialog and the “Start Page” instead of the “Start Modal Window”. The actual “New Project” dialog and “Start Modal Window” are unuseable and that make us waste a lot of time. We have been complaining and waiting for a solution to this problem for 5 years now. But it seems that Microsoft is not able, does not have the ability to fix it.
regarding the “Link to GitHub Issues” feature: are there any limitations on that? Like it’s only for VS Enterprise? Or only for public GitHub repos?
It’s not working for me. I’ve enabled it in Visual Studio’s settings, VS has my GitHub login, and the project I’ve opened has open issues assigned to me, but nothing happens when I type a ‘#’ in the commit message box. Is there something else I’m missing?
After I installed this update I was unable to open one of our solution files. I narrowed it down to one of the web projects, but not sure what it is about it. Essentially VS starts loading the solution and then hangs if that project is present.
I rolled back to 17.5.2 and it was fine
And “safe mode” doesn’t work – opening a project results in a load of “The ‘CSharpPackage’ package did not load correctly” and “The ‘HtmlPackage’ package did not load correctly” errors, followed by a screen telling me that “there is no editor available” for cshtml files.
I’ve tried repairing the installation, and it’s made no difference.
No puedo enviar un reporte de error desde esta “nueva” versión de Visual Studio.
El reporte era que las pestañas fijas, al pulsar en una de ellas, se abre en una nueva ventana y la única forma de acceder a ellas es ¡que no estén fijas! por tanto… la pregunta es ¿para qué me sirven las pestañas fijadas?
Estoy haciendo rollback a la versión anterior… VS2022 v17.5.5 (espero que funcione ;-))
The new compiler gives me lots of false warnings:
warning C5082: second argument to ‘va_start’ is not the last named parameter
The Update adds the compiler option ‘Build ISO C++ 23 Standard Library Modules’ with the default value ‘yes’, which breaks existing projects.
However, the compiler is quit fast! That’s nice.
We have a ticket tracking this issue https://developercommunity.visualstudio.com/t/Building-fails-after-updating-Visual-Stu/10366321
Note the workaround. You can also follow the ticket to get further updates on our investigation
Would it be possible to clarify in these announcement that this is for Visual Studio for Windows (not Mac)? I keep seeing announcements like this and think, “Yay, a new version is out!” but then after reading some details realize this is the Windows version only so not applicable to me.
Sorry about the confusion, but I believe it’s the other way around. Visual Studio for Mac always has the “for Mac” designation, whereas Visual Studio (without any designation) always means that we’re referring to the Windows-based product. If we’re inconsistent, please do let us know to make sure we add the needed clarity.
I’m seeing a fair few issues that we are encountering with regards to edmx models, I have linked 4 I have found so far, there are probably more! Is anyone taking a look at this?
Allow installing previous versions because your releases lately are sub par to say the least.
Yet again you screwed up Blazor developers with hasty release. Now I am stuck with The attribute names could not be inferred from bind attribute ‘bind-value’. Bind attributes should be of the form ‘bind’ or ‘bind-value’ along with their corresponding optional parameters like ‘bind-value:event’, ‘bind:format’ etc.
And no option to remove 17.6 and go to 17.5 until you fix this.
Do you have a Developer Community ticket you can share? Happy to help get this on the right team’s radar if it’s not there already
and the fix:
Got f*cked also.
I don’t think they have even tested this version.
A blazor server developer.
Updated to 17.6.2
Blazor Server solution now has 304 errors.
I ran the solution flawlessly before the VS update. My colleague still uses the older VS 2022 version, everything works.
Now EVERYTHING is broken.
All I see is ERRORS with, which worked fine before the update:
Is this version even tested????? Oh god, if any one reads this:
DO NOT UPDATE.
Cheers, somebody who will spend a few days on trying to get it fixed again. Wasting time, really wasting time. AGAIN.
I upgraded to version 17.6.2 and facing the below issue , when i try to debug. Any lead on this?
“No compatible code running on the thread.
The selected debug engine does not support any code executing on the current thread”
did I miss a breaking change with this version? Up to now, I have been using TextTransform.exe in a pre-build scenario that with this version exits with an error of 1 which I traced back to a missing parameter. In previous versions the call made was…
“$(DevEnvDir)TextTransform.exe” -a !!$(ConfigurationName)!1 “$(ProjectDir)Properties\AssemblyInfo.tt”
To get a successful build, I had to change the script to
“$(DevEnvDir)TextTransform.exe” “$(ProjectDir)Properties\AssemblyInfo.tt” -a !!$(ConfigurationName)!1
looks like are positional.