Visual Studio 2022 17.5 Preview 3 is here!
Visual Studio 2022 17.5 Preview 3 is out and ready to install! This release continues to bring new productivity improvements for all developers and enhances many of the capabilities that shipped in 17.5 Preview 2.
Several of these changes in this preview came from asks in the community and are highlighted below. These and many other threads on Developer community are full of discussions, design ideas. We’d love to hear your suggestions and learn about any bugs or issues using report a problem.
General IDE Shell, Git, Editor, Debugger, and Diagnostics
- Accessibility Checker
- Spell checking (🙏 Community Suggestion)
- External Source Debugging improvements
- Markdown now available as the default editor (🙏 Community Suggestion)
- VS Intent based Suggestions
- Connect to SQL Server using Microsoft.Data.SQL.Client data provider
.NET
- Support for HTML Code Actions in Razor Files
- Razor and Roslyn Performance Improvements
- Build Acceleration for faster incremental builds
C++
Setup
IDE
Accessibility Checker
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 particular issue for each item the axe-windows engine detects.
Spell checking
Developers take pride in their code, and a misspelled word can be embarrassing. 17.5 Preview 3 has the first preview version of our spell checker for code documents which will help folks identify misspelled words in comments, strings and identifiers for C#, C++ and Markdown files. The feature is on by default, but can be disabled by unchecking the “Text spell checker” under “Manage Preview Features”. There is also a “Toggle Text Spell Checker” button on the main toolbar, as well as a “Toggle Text Spell Checker” in the main menu under Edit\Advanced.
When an error is found in a comment or a string, the spell checker offers to correct the given instance, but when the error is in an identifier, the correction will be refactored, ensuring that the resulting code gets the code correction across the solution. The spell checker will use the EN-US dictionary as well as the dictionary that matches the display language of Windows that you’re using.
Learn more about how to configure spell checker using .editorconfig.
External Source Debugging improvements
We have been doing a lot of updates to improve the performance of the decompilation scenarios. As a result, decompilation is significantly faster in 17.5.
Consider an example where we hit an exception in a WPF application, and we would like to decompile a few framework methods on the stack for debugging. The example shows a comparison of the same decompilation in 17.4 and 17.5. As you can see, we were able to decompile multiple modules on the stack in 17.5 in less time than it took single module decompilation in 17.4.
Markdown now available as the default editor
The Markdown editor that we made available in 17.5 preview 2 is now available for all users and is now enabled by default.
VS Intent based Suggestions
Introducing VS Intent based Suggestions – a new feature in Visual Studio that provides inline suggestions in the editor based on recent changes. This feature uses Machine Learning algorithms to understand the context of your code and suggests relevant changes based on the changes you are making. It helps coding more efficiently and accurately. Try it out and experience the power of intent-based suggestions in your development workflow today!
Connect to SQL Server using Microsoft.Data.SQL.Client data provider
With Visual Studio 2022 17.5 preview 3 you can now connect to SQL Server databases in Server Explorer and the Data Source Configuration Wizard using the Microsoft.Data.SqlClient Data Provider. When adding a connection, you can use the new provider by selecting Microsoft SQL Server from the list of available Data Sources and Microsoft SqlClient Data Provider for SQL Server from the list of Data providers on the Choose Data Source dialog.
.NET
Support for HTML Code Actions in Razor Files
You can now view HTML, CSS, and JavaScript-related code actions in your code files, including your Razor files! New code actions include the following:
- Remove tag (and leave contents)
- Encode image in Base64
- Insert image height and width
Razor and Roslyn Performance Improvements
We’ve heard a lot of feedback from you about performance issues, and we’ve taken steps to address several performance-based concerns in the Razor and Roslyn spaces to make you more productive. Alongside some minor Razor performance improvements, some of the Roslyn improvements include the following:
- ProjectConfiguration switching
- Faster code analysis
- Typing perf improvements to reduce UI delays in Visual Studio
Build Acceleration for faster incremental builds
Build Acceleration helps complete incremental builds more quickly, making it faster to build your projects, while also speeding up other actions that depend upon builds such as debugging, running unit tests, and publishing applications.
The feature works by identifying situations where Visual Studio can copy files on disk rather than scheduling a build. For solutions with many project references, we’ve seen build times cut by as much as 80%.
Build Acceleration is currently opt-in, and it can be enabled by setting the AccelerateBuildsInVisualStudio
property to true in your projects. It works best when enabled for all projects in your solution, which can be done by setting the property in a Directory.Build.props
file.
C++
Brace pair colorization for C++
You can now visually distinguish each set of opening and closing braces for your C++ code making it easier to see your code’s scope or find any missing braces. This is currently only available for C++. We are also working on brace pair colorization for C#. Stay tuned for that in an upcoming release.
Open Container in terminal
We have added the capability to open your Dev Container in Visual Studio’s integrated terminal. With your project open in a Dev Container, right click the devcontainer.json file and select “Open Container in terminal”.
This will open the integrated terminal and run the docker exec command to open an interactive shell in your Dev Container.
Setup
To help make the latest versions of Visual Studio available to users that deploy the IDE using winget, Microsoft is taking ownership and will officially support the Visual Studio packages that are available through the Windows Package Manager tool. The existing structure will be modified to better reflect how we ship and maintain the product, and the new packages will be automatically updated as part of our release process. If you have existing scripts or commands that depend on the existing directory structure or package identification, there may be a onetime fix to support our new publishing process. We are very grateful to the community members, especially jedieaston, for their maintenance work in the repository to date.
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.
Stay connected with the Visual Studio team by following us on YouTube, Twitter, LinkedIn, Twitch and on Microsoft Learn.
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.
25 comments
..so close.. I’ve been eagerly awaiting 17.5 that’s FINALLY supposed to fix the find and replace “current document” issue that I talked to the VS team about back in April that was found to be a race condition back in November. It catches me several times a day and it’s my biggest source of hate for VS.
Still waiting!
When can we expect 17.6 Preview 1/Preview 2 with the C++ modules compiler fixes?
Modules pah, us real dorks are waiting to be able to use C++ 20 features in C++/CLI 🙂
You can expect modules fixes to roll out with every release :). The best thing to do is test with each new Preview to observe if the situation improves. Unless you are filing bugs that are tracked and updated it is difficult to know what specific issues you’re running into.
17.6 can generally be Previewed once the previous version is released. Since 17.5 is still in Preview, we’re still in a holding pattern.
what?
Contrary to what the blog says, when upgrading from 17.5 Preview 1 to Preview 3, the spell checker was not enabled by default. And it seems little actual effort has been put into that feature as it is doing spell checks for URLs and it doesn’t recognize language keywords as nullptr, wchar_t etc.
Maybe the focus should be in actually fixing the numerous compiler, linker, codgen bugs which have been reported at DevCom.
Thanks for your feedback. We’re currently working at making sure that language-specific keywords like nullptr, guid, rect, wchar_t and more are ignored by default.
With the spell checker, you have the ability to ignore a word. I noticed that it ignores all instances.
Where is the ignored word list stored as I could not find it?
Also is this ignored word list per user, per machine, per solution?
If it’s not per solution, so you can check it in as part of the solution it’s not super helpful to be able to ignore words, at least as part of a team.
Also how do you un-ignore words?
Thank you for your feedback David.
When there’s no .editorconfig with `spelling_exclusion_path` set, ignored words won’t be persisted and will therefore be lost after restarting Visual Studio. The right thing to do is to set up a .editorconfig as documented here: https://devblogs.microsoft.com/visualstudio/visual-studio-spell-checker-preview-now-available/#customizing-the-spell-checker
`.editorconfig` file can be limited to a project, solution or repository based on where the file is located.
To un-ignore a word added to the exclusion dictionary associated to the `.editorconfig`, you will need to manually remove it from the exclusion dictionary file. Make sure that the exclusion dictionary file has the `.dic` extension and is saved as UTF16 with BOM encoding, otherwise it won’t work correctly.
Even with the exclusion file set in the `.editorconfig` I can’t get VS to persist my ignored words from one session to another. VS creates the `exclusion.dic` exactly where I tell it to and add each word I tell it to ignore, but I restart VS and the same words are shown as spelling errors again. If I ignore them again, they just appear as duplicate entries in the same `exclusion.doc` file. When I open the file that VS creates it shows UTF-16 LE BOM encoding.
I saw this issue with Preview 3 and just tested that Preview 4 is still showing the same behavior.
How did you achieve the speed up for external source debugging?
Instead of caring to improve C++/WinRT tooling to achieve feature parity with the VS tooling for C++/CX XAML and component authoring development, deprecated since 2015, we get colour braces.
And yes, I am aware of the half baked extensions that exist from community contributors.
What about a decent designer for .NET MAUI?
It is XAML, so why is there no designer?
And maybe a SVG editor.
For the rest, keep up the good work. You are making my work easier with every update
XAML designer for WinUI 3 and MAUI, when?
https://github.com/microsoft/microsoft-ui-xaml/issues/5917
brace pair colorization for c# in the work, ah finally
It would be super amazing and valuable to have more than “minor” performance improvements w/ Razor/Blazor. My solution has over 130k lines of C# and 35k lines of Razor. The struggle is real w/ trying to develop these days 😭
https://github.com/dotnet/razor/issues/8096
Thanks for the feedback Mike-E and I’m sorry that you’re experiencing those performance roadblocks. Perf is our top priority for Razor and we hope to have more performance-related updates in the upcoming VS version releases.
Thank you for your reply, Leslie. The last we spoke you also assured me that you were going to look into Collapse Projects, which still seem to be unfinished. I am reminded of your assurance every time I would like to collapse the projects in my solution which is comprised of over 150 projects now… and counting. 🙂 As you can probably imagine, this is quite often.
Any update would be appreciated:
https://developercommunity.visualstudio.com/t/Upgrade-Popular-MSFT-Extensions-to-VS202/1500844
Triple quotes don’t work for two month at least (https://developercommunity.visualstudio.com/t/Triple-quotes-string-does-not-work-in-Ra/10202001). And it seems no one is gonna fix it.
Any plans to have the Accessibility Checker for HTML / Razor as well?
When triple quotes will be fixed in Razor Editor??? https://developercommunity.visualstudio.com/t/Triple-quotes-string-does-not-work-in-Ra/10202001
Bugs, bugs, bugs…
Especially digging the “minor” Razor improvement in 17.5 Preview 3 that basically removes all color coding and renders all markup and code white. 🙄
https://developercommunity.visualstudio.com/t/Pure-White-Razor-Rendering/10257907
this comment has been deleted.
Is Endpoint Explorer part of this release?