Visual Studio 2022 17.5 Preview 3 is here!

Anthony Cangialosi

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

.NET

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.

The Live Visual Tree in Visual Studio with the "Scan for Accessibility Issues" button circled.

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.

The Accessibility Checker panel in Visual Studio showing a variety of accessibility issues that were detected during a scan of an application.

 

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.

The Visual Studio Editor showing the spell checker experience. On the editor, a string identifier is named "DetailChekkForIssues". A context menu indicates that 'Chekk' is misspelled and offers to either rename it to "DetailCheckForIssues", ignore the error or disable the spell checker.

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.

Decompilation Performance Comparision

 

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.

The markdown experience in Visual Studio, with the raw markdown displayed on the left and a preview of the rendered HTML displayed on the right.

 

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! Image shows an inline suggestion in the editor with [Tab] to accept. On the left side the text that will be changed, and on the right side the text that will be inserted.

 

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

A GIF demonstrating new code actions for HTML code

 

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.

C++ code with three pairs of curly brackets. Each matching pair of opening and closing bracket has a different color (blue, pink and yellow).

 

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”.

Solution explorer with context menu open on devcontainer.json file under .devcontainer folder. New option focused in context menu, 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.

Visual Studio Termina Tool Window showing docker command opening 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

Discussion is closed. Login to edit/delete existing comments.

  • Jason Baginski 2

    ..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.

    • Miguel Gomez 2

      Still waiting!

  • Mat B 1

    When can we expect 17.6 Preview 1/Preview 2 with the C++ modules compiler fixes?

    • David Hunter 0

      Modules pah, us real dorks are waiting to be able to use C++ 20 features in C++/CLI 🙂

    • Cameron DaCamaraMicrosoft employee 0

      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.

  • ziqian qin 0

    what?

  • Mat B 0

    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.

    • Etienne BaudouxMicrosoft employee 0

      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.

  • David Hunter 0

    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?

    • Etienne BaudouxMicrosoft employee 0

      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.

      • Boyd Patterson 0

        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.

  • ChM-TM 0

    How did you achieve the speed up for external source debugging?

  • Paulo Pinto 0

    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.

  • Johan Visser 3

    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

  • Ahmed Mohamed Abdel-Razek 0

    brace pair colorization for c# in the work, ah finally

  • Mike-E 1

    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

    • Leslie RichardsonMicrosoft employee 0

      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.

      • Mike-E 0

        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

  • Jonathan Laurin 0

    Any plans to have the Accessibility Checker for HTML / Razor as well?

    • anonymous 0

      this comment has been deleted.

  • Ishan Mehta 0

    Is Endpoint Explorer part of this release?

Feedback usabilla icon