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.
Performance Improvements
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.
Editor Enhancements
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.
Brace Pair colorization helps visually distinguish each set of opening and closing braces for your code making it easier to see your code’s scope or find any missing braces. Brace pair colorization is supported for C#, C++, TypeScript, JavaScript, Visual Basic, and Razor. You can enable or disable colorization by going to Tools > Options > Text Editor and checking “Enable brace pair colorization”.
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 🙏):
CodeLens in JS/TS editors enables you to quickly discover references to JavaScript and TypeScript symbols and quickly navigate between them.
JS/TS Syntax Highlighting elevates code readability in Visual Studio, streamlining your JavaScript and TypeScript development process. Learn about the benefits of JS/TS Syntax Highlighting.
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.
Enterprise Management
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.
Your Suggestions
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 wish they'd fix the issue with the Ctrl-F find window (not Ctrl-Shift-F - Find In Files), where you do find across the "Current Project" or "Entire Solution", it is unable to find anything when the solution is in a folder that starts with a "." (e.g. ".Net").
I have been told that it is not a bug, but it worked in Visual Studio 2019, and I can find no way to turn it off.
Also, I don't think that changing our processes to use the "Ctrl-Shift-F" find where I can temporarily remove the filter is a good long term...
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.
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”
Exactly the error we are facing, still present in 17.6.3.
The breakpoint appear to be hit in the logs: “Resolved pending breakpoint at …. ”
but VS stays in the “Break Mode” screen with the “No compatible code running on the thread” error.
When investiging the Threads window you can observe the yellow indicator in break mode. Hovering the current thread results in an Error dialog from Visual Studio: “The call stack cannot be displayed. Operation not supported. Unknown Error: 0x80004005.”
Same error, cannot debug. Also these:
Error processing ‘variables’ request. Unknown Error: 0x80131622
Error processing ‘stackTrace’ request. Unknown Error: 0x80131c35
Can confirm, I’m facing the exact same issue.
Hey everyone, thanks for reaching out. What are you debugging in this scenario? We are aware of a similar-sounding issue with debugging MAUI apps on Android. Are you using that?
Relevant feedback ticket: https://developercommunity.visualstudio.com/t/no-compatible-code-running-on-the-thread/10376723
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:
CS0029
CS0103
CS0128
CS0136
CS0266
CS0305
CS0400
CS0407
CS1061
CS1503
CS1593
CS1660
CS1662
CS8917
RZ9985
RZ9989
RZ9991
RZ9996
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.
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.
Got f*cked also.
I don’t think they have even tested this version.
regards,
A blazor server developer.
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
Maybe this
https://github.com/dotnet/razor/issues/8718
and the fix:
https://stackoverflow.com/questions/76270044/update-msbuild-to-17-6-that-comes-with-the-may-2023-update-of-net-7-0-302-sdk-b
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?
First Ticket
2nd Ticket
3rd Ticket
4th Ticket
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.
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
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 ;-))
Guillermo
Unfortunately, 17.6 has completely broken JavaScript editing in cshtml files:
CSHTML JavaScript keystokes doubling – Developer Community
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.