Visual Studio 2022 version 17.8 Preview Release Notes
Tip
Watch the recordings of the Visual Studio 2022 launch event to learn about what's new, hear tips & tricks, and download free digital swag.
Developer Community | Visual Studio 2022 Roadmap | System Requirements | Compatibility | Distributable Code | Release History | License Terms | Blogs | Latest Release Known Issues | Whats New in Visual Studio Docs
Click a button to download the latest version of Visual Studio 2022. For instructions on installing and updating Visual Studio 2022, see Update Visual Studio 2022 to the most recent release. Also, see instructions on how to install offline.
Visit the Visual Studio site to download other Visual Studio 2022 products.
Important
Preview Channel is not "go-live" and not intended for use on production computers or for creating production code. For more information, see Visual Studio Product Lifecycle and Servicing.
Visual Studio 2022 version 17.8 Preview Releases
- Sept 14 2023 — Visual Studio 2022 version 17.8 Preview 2
- Aug 8 2023 — Visual Studio 2022 version 17.8 Preview 1
Visual Studio 2022 Blog
The Visual Studio 2022 Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 2022 releases in the following posts:
Visual Studio 2022 version 17.8 Preview 2
released Sep 14th, 2023
Summary of What's New in this Release of Visual Studio 2022 version 17.8 Preview 2
Productivity
C++ and Game Development
Features |
Community Suggestions |
---|---|
C++ and Game Dev |
F# Improvements
Features |
Community Suggestions |
---|---|
F# |
Debugging and Diagnostics
Enterprise Management
Features |
Community Suggestions |
---|---|
Streamlined client initialization steps for IT administrators |
Productivity Features
GitHub Actions Tooling
We addressed the unexpected behavior of the new GitHub Actions node in Solution Explorer appearing for repos not hosted on GitHub.com. The new node should now only appear for repos hosted on GitHub.com. Next, we are working on the ability to turn off the new node via Tools > Options.
Microsoft Teams Toolkit
We are thrilled to announce that we onboarded more Teams app templates in this release, including:
- an Echo Bot template which echos user inputs.
- a Link Unfurling template which is a type of Message Extensions app that can render URL links to adpative cards.
- a Custom Search Result template which is a Search type of Message Extensions apps that can allow users directly search and show results from chat area or search bar.
- a Collect From Input and Process Data template wchih is an Action type of Message Extensions app that get users input, perform some logic and then send results back to users. We also refine the UI for you to easier select among templates, we add filters and tags for different type of templates.
Edit your Pull Request Descriptions with Markdown
Use the Markdown editor with your pull request descriptions to render headers, bulleted lists, and other Markdown syntax by clicking on the "Preview" button. Enable this via Preview Features > Git Pull Request - Markdown.
We've also added better error handling and improved the reviewer search. Let us know what you think of Pull Request experience here.
Summary Diff Improvements
Building on Preview 1, we've improved the Summary Diff UI and enabled expanding and collapsing specific regions in the summary view. This allows you to get a little more context on hidden lines when necessary. Try this out by clicking the Summary button in the upper right corner when you're comparing files or checking against previous versions of your code.
Share your feedback on this update here.
GitHub Avatars added to Git Repository Window
See your GitHub avatars in the multi-branch graph in the Git Repository Window.
Multi-Repo Activation Setting
In some workflows, it was important to control whether multi-repo was activated automatically. With a new setting you can keep your focus on an individual repository without seeing the multi-repository UI.
Code Search and Navigation
As we’ve been working on performance and reliability improvements in All-In-One Search experience, we’ve also added a status bar that displays the count of each type of result that’s been returned.
C++ and Game Dev
- We have now implemented support for the optional C11 threads library. This includes threads, mutexes, condition variables, and thread-local storage.
- CMake version 3.27 now ships with Visual Studio in the Desktop Development with C++ workload.
- You can now navigate to the CMake Targets View by right-clicking anywhere in your Solution Explorer and selecting Switch to CMake Targets View.
- You can now also access the CMake Targets View by selecting it from the View dropdown.
- The CMake Targets View has been simplified so that users don't have to click through folders without buildable executables to get to their desired target.
- You can now view and edit files on your remote machine in Visual Studio through the Remote File Explorer window.
- You can now easily make global functions 'static'.
- When you have a free function that's not in an anonymous namespace and is missing a forward declaration in a header file, you'll receive a suggestion to mark it as static.
- You can adjust this feature's settings by going to Tools > Options > Text Editor > C/C++ > IntelliSense.
F#
- Conducted an overhaul of code fixes, resolving numerous bugs (details here).
- Introduced a new code fix that changes equals (
=
) to a colon (:
) in record field definitions: - Implemented an option to activate diagnostics for unopened files. This is turned off by default for performance considerations (details here).
- Enhanced autocompletion in various scenarios including:
- Anonymous record fields:
- Union case fields:
- Discriminated union case fields:
- Enum case value expressions:
- Anonymous record fields:
- Addressed issues related to anonymous record handling in FSI (#15519).
- Rectified misleading line numbers in FSI (#15384).
- Unified tooltips for auto-properties:
- Bettered parameter name hints by hiding them for argument names that match with discriminated union fields:
- Resolved issues with navigation to the definitions of external enums and discriminated unions (#15270).
- Fixed finding references for operators starting with '>' (#15386).
Debugging and Diagnostics
Cross platform Enc/Hot Reload debugging support
We have added support for Edit and Continue for F5 (with debugger) and Ctrl-F5 (no debugger) scenarios when diagnosing and debugging apps hosted on Linux containers or in Windows Subsystem for Linux (WSL). Please note the F5 debugging scenario relies on .NET 8 RC1 and above.
Debug Linux App Services via Attach to Process
We are excited to unveil a powerful new feature that enables debugging of .NET processes in Linux App Services - via "Attach to Process".
This feature empowers developers to effortlessly debug and diagnose issues within their running Linux Azure App Services instances.
To attach to a process:
1.Select Debug > Attach to Process (or press Ctrl+Alt+P) to open the Attach to Process dialog box.
2.Check the Connection type. It should be "Microsoft Azure app Service"
3.Set the Connection target to your Linux machine name.
4.Select the correct available process and click "Attach"
BenchmarkDotNet IDiagnosers
The Visual Studio Profiler now support BenchmarkDotNet IDiagnosers. These IDiagnosers play a crucial role in the aggregation of diagsessions originating within BenchmarkDotNet scenarios.
The Benchmark tab offers a visualization of the executed benchmarks. It also provides the ability to precisely choose a benchmark from the swimlane by a double-clicking on a specific row.
Alternatively, you have the option to navigate to the source file through the right-click context menu. The statistical data is sourced directly from BenchmarkDotNet and is presented in a structured grid format.
Enhanced Theme Support for Breakpoint Settings Window
We have added a theming support to the Breakpoint Setting window, ensuring seamless consistency across Visual Studio's Light, Dark, and Blue themes.
.Net Counter Support for New Instruments via Meters API
The .NET Counters tool now introduces integration of the .NET Meters API, encompassing new instrument options including "Counter" and "ObservableCounter"
The "Counter" keeps track of a value changing over time, with the caller reporting updates using "Counter.Add." In contrast, the "ObservableCounter" is like the Counter but the caller takes care of keeping track of the total value. Currently .NET Counters tool reports the rate of change in the total.
You can find these metrics in the list of the .NET counter metrics roster, offering enhanced visibility into system performance and resource utilization.Furthermore, we're actively planning to introduce additional instrument options in the future to enhance this capability even further.
Test Profiling with Diagnostics Hub
We are thrilled to introduce an updated Test Profiling capabillity. When you right click on your test in Test Explorer and select "Profile," you can now select between a set of available tools including:
- CPU Usage
- GPU Usage
- File IO
- .NET Async
- Events Viewer
Select which tools you want to use and click "Start" and a report will be provided.
Enterprise Management
Administrators can now easily initialize and prepare client machines before delegating standard users control to update, modify, and install from the Available tab. More information and context can be found in the Visual Studio 2022 version 17.8 Preview 2 blog post. This preview release offers administrators two new pieces of functionality:
- ability to programmatically install just the installer by executing "vs_enterprise.exe install --installerOnly".
- ability to customize the installer's Available tab and make custom layouts available.
Visual Studio 2022 version 17.8 Preview 1
released Aug 8th, 2023
Summary of What's New in this Release of Visual Studio 2022 version 17.8 Preview 1
Productivity Features
Features |
Community Suggestions |
---|---|
Add Reviewers to your PRs | 🙏– 271 votes |
Summary Diff | 🙏– 3 votes |
Multi-Repo limit increase | 🙏- 7 votes |
Case Preserving Find and Replace | 🙏– 68 votes |
C++ and game development
Features |
Community Suggestions |
---|---|
Unreal Engine Snippets | |
Unreal Engine Test Adapter | |
Build Insights Functions View | 🙏– 141 votes |
Make member function const hints | |
Size and Alignment Hints |
Debugging and Diagnostics
Features |
Community Suggestions |
---|---|
.NET Counters Tool in Debugging Scenario |
Razor Tooling
Features |
Community Suggestions |
---|---|
Code Action for Event Handler Method Generation | |
Background Color for C# Code |
JavaScript and TypeScript Development
Features |
Community Suggestions |
---|---|
New React TypeScript and ASP.NET Combined Templates | |
launch.json Support for Open Folder |
Testing
Features |
Community Suggestions |
---|---|
New IntelliTest now in Preview |
Developer Community Suggestions: You asked, we listened!
- Blank Solution project template missing 33 Votes
- QuickFind selection lost / not respected. Keyboard shortcuts lost. 20 Votes
- Visual studio ASAN throws critical error when fetching clipboard data 11 Votes
- VS 2022 Watch window and breakpoints fail to evaluate expressions involving C++/CX hat (^) pointers 5 Votes
- C++ IntelliSense for std::ranges::iota_view<size_t, size_t> error 5 Votes
- ARM64 memchr implementation may not be standard conformant
- Standalone React TypeScript project template fails with part of path not found
- Csproj Editor does not open due to AndroidPackageFormat
Productivity Features
Add Reviewers to your Pull Request
You can now add your reviewers to your pull requests in Visual Studio for both Azure DevOps and GitHub.
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 and engage with us on the suggestion ticket in Developer Community.
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.
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, many 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 be in Pascal case or Camel case.
Toggle case preservation in the Replace window with Alt+V
or by clicking on the Preserve case option.
Quick Replace (Ctrl+H
):
Replace in Files (Ctrl+Shift+H
):
Share your thoughts on the case preserving replace experience on this Developer Community ticket: Case-Preserving Search & Replace Across Multiple Files.
C++ and game development
Unreal Engine Snippets
Start typing in the editor window and UE snippets will start showing as a member list item in your Unreal Engine projects. Press tab or enter to create the snippet.
Supported snippets include (UClass, UClassExported, UENUM, UFUNCTION, UINTERFACE, UINTERFACEExported, UPROPERTY, USTRUCT, USTRUCTExported, UELOG, SWidget, TActorRange, TObjectRange, WITH_EDITOR)
Unreal Engine Test Adapter
You can now create, manage, and run your Unreal Engine tests from within Visual Studio. To ensure Unreal Engine Test Adapter is enabled properly, double check that "Unreal Engine Test Adapter" is selected in the Visual Studio Installer under the "Game development with C++" workload. After installing the UE Test Adapter, your Unreal Engine tests will automatically show up in the Test Explorer when you open Visual Studio.
The latest version of our Unreal Engine plugin from the UE marketplace or GitHub is required.
Build Insights Functions View
We added a "Functions View" to Build Insights integration. Build Insights' generated diagnostic report will now show you function generation time as well as ForceInlines.
Make member function const hints
This feature suggests making a member function const if it logically should not modify the object's state. 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.
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.
Size and Alignment Hints
You can now hover over a class, struct, union, or enum to see the size and alignment of that type.
Debugging and Diagnostics
.NET Counters Tool in Debugging Scenario
You now have convenient access to the .NET Counter through the diagnostics window by choosing the ".NET Counters" selection from the "Select Tool" dropdown menu. Even while conducting debugging sessions, you can utilize the capabilities of .NET Counters to oversee and assess crucial performance metrics.
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.
Background Color for C# Code
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.
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. This new React TypeScript with ASP.NET combined template gets the tsconfig and SpaProxy set up out of the box.
launch.json Support for Open Folder
When you choose to open folder on your workspace with launch.json in the .vscode directory to store your launch and debug settings, it will be recoginzed by Visual Studio and included in the dropdown menu for the Debug targets right next to the green button.
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. 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:
- Add IntelliTest support for .NET Core/Standard - Developer Community (visualstudio.com)
- Add IntelliTest support for x64 - Developer Community (visualstudio.com)
Ennable this feature through Tools > Manage Preview Features and selecting IntelliTest support for NetFx and Net6 using Z3 v4 (requires restart).
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.
Feedback and suggestions
We would love to hear from you! You can Report a Problem or Suggest a Feature by using the Send Feedback icon in the upper right-hand corner of either the installer or the Visual Studio IDE, or from Help > Send Feedback. You can track your issues by using Visual Studio Developer Community, where you add comments or find solutions. You can also get free installation help through our Live Chat support.
Blogs
Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.