Visual Studio 2022 17.8 Preview 1 has arrived!

Adrian Murphy

Jason Chlus

Hot on the heels of the General Availability of Visual Studio v17.7, (Visual Studio 2022 – 17.7 Now Available) we’re thrilled to introduce the next set of enhancements that aim to streamline your workflow and boost your productivity.

In this preview, we’re bringing you features that can significantly improve your day-to-day tasks. From creating a PR directly within Visual Studio to a case-preserving search & replace across multiple files, we’re making your tasks simpler and more efficient. We’ve also extended IntelliTest support for .NET 6+ and .NET Standard, making it easier to generate and manage unit tests

With something for every developer, browse this comprehensive list of enhancements and let us know which of these enhancements is your favorite:

Area Enhancements
Productivity Features
C++ and Game Development
Debugging and Diagnostics
Razor Tooling
JavaScript and TypeScript Development
Testing

You can delve into the complete list of enhancements by checking out the Visual Studio 2022 17.8 Preview 1 Release Notes, and we always love to know what you think with feedback through Developer Community: reports of any bugs or issues via report a problem and share your suggestions for new features or improvements to existing ones.

Productivity Features

Add Reviewers to your Pull Requests

We see lots of engagement on this Developer Community ticket. In response, we are improving on the pull request experience added in preview 17.7, and you can now add your reviewers to your pull requests in Visual Studio for both Azure DevOps and GitHub.

A screenshot of a computer program Description automatically generated

Try this out by clicking on the “Create a Pull Request” link that appears on push, or by selecting Git > GitHub or Azure DevOps > New Pull Request from the top level menu. Then, navigate to the Reviewers section and search for the reviewers you’d like to add.

We plan to continue making updates to improve this pull request experience, so please share your feedback about this feature here.

Summary Diff

As a continuation of our efforts to improve the diffing experience in Visual Studio, we’ve implemented the Summary view in the diff and compare views. This new option allows you to see only the changes in the file with a few lines of context, making reviewing your changes in a commit or the comparison between two files much more efficient.

A screenshot of a computer program Description automatically generated

Let us know what you think of this feature by sharing your feedback here and engage with us on the suggestion ticket in Developer Community.

Multi-Repo Limit Increase

As more of you are using our Multi-repository features, we heard on this Developer Community suggestion ticket that many of you needed the number of active repositories to be more than 10. You can now work with up to 25 repositories at once in your solution.

Case Preserving Find and Replace

When you do a Replace, you can now preserve the original casing of each match in your code. Note that to get Pascal case and Camel case, your Replace string must also be in Pascal case or Camel case.

A screenshot of a computer Description automatically generated

Toggle case preservation in the Replace window with ‘Alt+V’ or by clicking on the ‘Preserve case’ option.

Quick Replace (Ctrl+H):

A screenshot of a computer Description automatically generated

Replace in Files (Ctrl+Shift+H):

A screenshot of a computer Description automatically generated

Share your thoughts on the case preserving replace experience on this ticket: Case-Preserving Search & Replace Across Multiple Files.

C++ and game development

Unreal Engine Snippets

Unreal Engine specific snippets are now available in Visual Studio 2022. As a preview feature, we have included a list of common core Unreal Engine macro snippets. To begin, start typing in the editor window and UE snippets will start showing up as a member list item in your Unreal Engine projects. Press tab or enter to create the snippet.

A computer screen shot of a program code Description automatically generated

List of Supported Snippets

  • UClass
  • UClassExported
  • UENUM
  • UFUNCTION
  • UINTERFACE
  • UINTERFACEExported
  • UPROPERTY
  • USTRUCT
  • USTRUCTExported
  • UELOG
  • SWidget
  • TActorRange
  • TObjectRange
  • WITH_EDITOR

Unreal Engine Test Adapter

You can now see your Unreal Engine tests from within Visual Studio with the new UE Test Adapter.

A screenshot of a computer program Description automatically generated

To ensure Unreal Engine Test Adapter is enabled properly, double check “Unreal Engine Test Adapter” is selected in the Visual Studio Installer under the “Game development with C++” workload. The latest version of our Unreal Engine plugin from the UE marketplace or GitHub is required. Inserting image...

After installing the UE Test Adapter, your Unreal Engine tests will automatically show up when you open Visual Studio. To see your tests, you can open Test Explorer. With the new Unreal Engine Test Adapter, you can easily run, manage, and debug your tests.

Build Insights Functions View

Build Insights is now integrated with Visual Studio 2022! In Visual Studio 2022 17.8 Preview 1, you can now see additional information relating to function generation. The new Functions View will provide you with how long a function takes during compilation as well as the number of ForceInlinees associated.

Inserting image...

To ensure Build Insights is enabled properly, double check “C++ Build Insights” is selected in the Visual Studio Installer under “Desktop development with C++” or “Game development with C++” workloads.

Inserting image...

Start your Build Insights .etl trace capture with the click of a button.

Inserting image...

After compilation, Build Insights will create a diagnostic report that allows you to see function generation time as well as ForceInlinees.

We are committed to continually improving Build Insights. The current integration of Build Insights you see today represents only a fragment of what we have in store for you. Which workflows are important to you? Please let us know in this Developer Community Ticket.

Make member function const hints

You can now use this new feature that suggests making a member function const if it logically should not modify the object’s state. The use of const member functions is crucial for achieving const-correctness in C++ code. When a member function is declared as const, it can be safely invoked on const objects, enabling you to create const-correct code and avoid unexpected side effects when working with immutable objects.

One of the advantages of utilizing const member functions is the enhanced safety and predictability they bring to the codebase. By clearly distinguishing between functions that modify the object’s state and those that do not, it becomes easier to reason about the behavior of different member functions.

By hovering over a member function and clicking the light bulb icon, you can quickly access suggestions to mark the function as const.

A screenshot of a computer Description automatically generated

By default, this feature is set as a suggestion, indicated by three dots below the function. To configure the setting, navigate to Tools > Options > Text Editor > C/C++ > Code Style > Linter.

A screenshot of a computer Description automatically generated

Size and Alignment Hints

Size and alignment hints are now available in Visual Studio 2022 17.8 Preview 1. With this feature, you can effortlessly check the size and alignment of classes, structs, unions, base types, and enums right within your code editor, without the need to compile your code. When you hover over these elements, Quick Info will display their size and alignment information. You have the flexibility to hover over the names of classes, structs, or unions anywhere they appear in your code, not just at their declarations. This eliminates the need to scroll and search for their declarations, allowing you to effortlessly access their size and alignment information from any part of the codebase.

A screen shot of a computer code Description automatically generated

Debugging and Diagnostics

.NET Counters Tool in Debugging Scenario

The .NET Counter tool is now available within the diagnostics window now.

This means even during debugging sessions; you can still leverage the power of .NET Counters to monitor and analyze critical performance metrics. Simply Select the “.NET Counters” option under the “Select Tool” dropdown to enable it.

The tool’s seamless integration in both Performance Profiling and Debugging environments provides comprehensive insights and enhances their ability to optimize application performance effectively.

A screenshot of a computer Description automatically generated

Razor Tooling

Code Action for Event Handler Method Generation

If you’re using an event like @onclick or @onactivate to reference a C# method that hasn’t been defined yet, you can use a new Razor code action to automatically generate that event handler method. This code action also supports custom event arguments.

A screen shot of a computer Description automatically generated

Background Color for C# Code

For those who prefer it, you now have the option to add a background color for C# code located within Razor files. Turned off by default, enable this option by going to Tools > Options > Text Editor > Razor > Advanced and setting Background for C# Code to True.

A screen shot of a computer program Description automatically generated

JavaScript and TypeScript Development

New React TypeScript and ASP.NET Combined Templates

When we initially released the JavaScript/TypeScript with ASP.NET Combined Templates in this blog post, we got feedback that users deserve a better React TypeScript project creation experience. We listened to the feedback and provided a new React TypeScript with ASP.NET combined template where you get the tsconfig and SpaProxy set up out of the box. Check it out if you are developing React TypeScript together with ASP.NET!

A screenshot of a computer program Description automatically generated

Testing

New IntelliTest now in Preview

IntelliTest explores your .NET code to generate test suites with high code coverage. Powered by the latest version of the Z3 problem solver, it generates a varied set of inputs (scoped to those that improve code coverage) that are then plugged into what we call parameterized unit tests for each of your methods. When you Generate Tests, you have the ability to select which tests you’d like to preserve into a test project that can serve as your regression suite. As your code is updated, you can rerun IntelliTest to keep the generated tests in sync with your code.

Previous implementations of this Enterprise Edition feature only supported code targeting .NET Framework and did not support x64 configuration. This updated version includes the following:

Give it a try on your projects today by enabling the feature through Tools > Manage Preview Features and selecting IntelliTest support for NetFx and Net6 using Z3 v4 (requires restart).

A close up of a sign Description automatically generated

Then in your code, right click within a method and select IntelliTest (Preview) and either Create Project to create a project where your tests can be saved or Generate Tests to generate a set of tests to review and decide which ones to keep.

Share your feedback and stay connected with Visual Studio!

We appreciate the time you’ve spent reporting issues/suggestions and hope you continue to give us feedback when using Visual Studio on what you like and what we can improve. Your feedback is critical to help us make Visual Studio the best tool it can be! 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.

On behalf of the whole Visual Studio team, thanks for reading and Happy Coding!

16 comments

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

  • Morteza Talebi 0

    Is The UI also updated?

    • Dante GagneMicrosoft employee 3

      If you’re asking about the new UI Refresh that we talked about recently, that version is not available publicly yet. We’re testing it internally which is why some of the screenshots here may look a bit different, but we want to make sure we’ve addressed the feedback we got in response to the blog post.

      When the new UI is available, we’ll be sure to call it out in the blog post that comes with the preview.

      Stay tuned!

      • Douglas Marttinen 0

        I have the latest preview build and it crashed. Since then, it now seems to be using the new not publicly released theme. Can I turn it off?

  • MgSam 4

    > Previous implementations of this Enterprise Edition feature only supported code targeting .NET Framework and did not support x64 configuration

    This is hilarious. So MSFT has continued to charge thousands of dollars extra a year for a feature that has literally been obsolete for a decade. This is case-in-point why there needs to only be 1 SKU of Visual Studio.

    Feature is Enterprise Only -> Hardly anyone uses it because hardly anyone pays for Enterprise -> Feature is not maintained due to low usage -> Actual Enterprise customers get scr*wed

    • Kyle Hamilton 0

      I don’t necessarily think that there needs to be only 1 SKU of Visual Studio. But I will say that IntelliTest needs to be more widely available than to just the Enterprise SKU.

      We have seen over the past several years multiple breakdowns of infrastructure in United States, including oil distribution pipelines, beef production and distribution, public safety/law enforcement/municipal maintenance networks, and hospitals… all due to lack of security in the underlying libraries used within the applications running on those networks. These insecurities have been used to launch ransomware attacks. By forcing open-source and even small-fry Professional developers to create their own tests — usually without training on what it means and how to do so — Microsoft is preventing best-practice development from applying to the underlying libraries and applications.

      Microsoft’s insistence on making $250/month from the (as mentioned by MgSam, obsolete) features in the Enterprise SKU has cost the United States economy over $10 billion dollars, as well as endangered lives at the hospitals that needed their patient care networks up and running.

      Please consider more widely distributing the IntelliTest package. Thank you.

      • Michael Taylor 0

        Please provide links to the stats you’re quoting. $10 B? How does that directly translate to lack of Intellitest? Most people are using third party testing tools so quoting that number and saying it is because of a missing feature in one tool seems like something an AI bot would make up.

  • Eugene Ivanoff 2

    STILL, STILL, STILL TRIPLE QUOTES DO NOT WORK IN RAZOR EDITOR!!!!!

  • Georgi Hadzhigeorgiev 2

    Some cool stuff, cheers!

  • Zehev Spitz 2

    Do the new React templates (or even the old ones) support Vite? Or are they limited to the (now deprecated) create-react-app?

    • Jiayan ChenMicrosoft employee 2

      Yes the new React templates support Vite. The old React templates (single project one) will be removed in .NET 8. So in short, after 17.8 and .NET 8, all React templates we provide will be using Vite only. No more create-react-app.

      • Arvind Suthar 1

        I was excited to see the Vite and TypeScript support in the new “React and ASP.NET Core” Visual Studio template on August 9th, 2023.

        I am able to build and run this template locally (yay!).

        However, after I successfully deploy (the .server project) to Azure I get a 404 when running the app.

        Are there additional deployment steps for this template?

        I’ve submitted Visual Studio feedback item here: https://developercommunity.visualstudio.com/t/React-and-ASPNET-Core-template-404-when/10437977

  • Arvind Suthar 2

    I was excited to see the Vite and TypeScript support in the new “React and ASP.NET Core” Visual Studio template on August 9th, 2023.

    I am able to build and run this template locally however this template has two issues:
    1 – Microsoft.AspNetCore.SpaProxy (8.0.0-preview.7.23375.9) fails to load, has been removed from the template, and, thus, apps built with the template require manual retries at launch, and
    2 – The .CSPROJ files are missing elements needed for Azure deployment.

    I have reported these issues to the team who have triaged and are investigating:
    https://developercommunity.visualstudio.com/t/React-and-ASPNET-Core-template-404-when/10437977

    In the meantime, I’ve provided the following detailed steps for adding Vite and TypeScript support to the [dotnet new react] template:
    https://mindline.com/august-15-authenticating-apps-in-2023-a-closer-look/

  • Kovalsky Nick 1

    Hi thank you for your awesome work!
    1 – Summary Dif feature is awesome, thats why im posting this, that’s something really useful!
    2 – Anyone ever thought about making the small window for Find and Replace + Find In FIles pinnable like Toolbox? Im opening this small window by clicking on the small [arrow down] like 20 times per hour, so it even doesn’t bother me anymore and i don’t use keyboard shortcut for it. But why oh why this “all time usage” window is not here all the time?

    • Michael Taylor 1

      Can you clarify what UI specifically you’re talking about? The dialog using Ctrl+Shift+F/H (Find/Replace in Files) is pinnable. The Ctrl+F/H (Find/Replace in a single file) stays pinned to the top right by default. The search results window for Find in Files is also pinnable. I’m curious about your use case.

  • Choi Shuer 0

    I’m running Windows 11 using Parallels desktop on a M2 MAX MacBook pro.
    I found that Microsoft has removed support for Windows Workflow Foundation (WWF) workload in Visual Studio 2022 ARM version.
    Unfortunately, my development work relies on WWF heavily, I wonder if Microsoft has any plans to reintroduce support for WWF in the future?
    thanks!

  • Kyle Kolander 0

    I just updated to 17.8 Preview 1, and now the Angular app doesn’t start when I debug. The API project still runs, and I can hit the API endpoints with Postman. The browser launches to https://localhost:4200 but it doesn’t reach out to the API because the Angular CLI didn’t start it. If I run

    npm start

    from the command line, then navigate to the same URL, the site loads as expected.

    It seems like a bug was introduced with 17.8 Preview 1. I tried a new project using the same template “Angular and ASP.NET Core (Preview)” and it won’t run, either (right out of the box). I’m hoping someone can either confirm it’s a bug or explain what I need to do to get it working again.

    I noticed that the .esproj files differ in a couple ways.

    OLD:

    <Project Sdk="Microsoft.VisualStudio.JavaScript.Sdk/0.5.89-alpha">

    NEW:

    <Project Sdk="Microsoft.VisualStudio.JavaScript.Sdk/0.5.105-alpha">
    <ShouldRunBuildScript>false</ShouldRunBuildScript>

    Help!

Feedback usabilla icon