Visual Studio 2022 version 17.8 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.
Visual Studio 2022 version 17.8 Releases
- November 12th 2024 — Visual Studio 2022 version 17.8.16
- October 8th 2024 — Visual Studio 2022 version 17.8.15
- September 10th 2024 — Visual Studio 2022 version 17.8.14
- August 13th 2024 — Visual Studio 2022 version 17.8.13
- July 9th 2024 — Visual Studio 2022 version 17.8.12
- June 11th 2024 — Visual Studio 2022 version 17.8.11
- May 14th 2024 — Visual Studio 2022 version 17.8.10
- Apr 9th 2024 — Visual Studio 2022 version 17.8.9
- Mar 12th 2024 — Visual Studio 2022 version 17.8.8
- Feb 13th 2024 — Visual Studio 2022 version 17.8.7
- Jan 30th 2024 — Visual Studio 2022 version 17.8.6
- Jan 17th 2024 — Visual Studio 2022 version 17.8.5
- Jan 9th 2024 — Visual Studio 2022 version 17.8.4
- Dec 5th 2023 — Visual Studio 2022 version 17.8.3
- Nov 28th 2023 — Visual Studio 2022 version 17.8.2
- Nov 21st 2023 — Visual Studio 2022 version 17.8.1
- Nov 14th 2023 — Visual Studio 2022 version 17.8.0
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.16
released November 12th, 2024
What's New in this release
Developer Community
Security advisories addressed
- CVE-2024-43498.NET NrbfDecoder component Remote Code Execution Vulnerability
- CVE-2024-43499.NET NrbfDecoder component Denial of Service Vulnerability
- CVE-2024-49044 Visual Studio Elevation of Privilege Vulnerability
Visual Studio 2022 version 17.8.15
released October 8th, 2024
What's New in this release
Developer Community
Security advisories addressed
- CVE-2024-43483 .NET Denial of Service Vulnerability in System.Security.Cryptography.Cose, System.IO.Packaging, System.Runtime.Caching
- CVE-2024-43484 .NET Denial of Service Vulnerability in System.IO.Packaging
- CVE-2024-43485 .NET Denial of Service Vulnerability in System.Text.Json 6.0.x and 8.0.
- CVE-2024-43603 Denial of Service Vulnerability in Visual Studio Collector Service
- CVE-2024-43590 Elevation of Privilege Vulnerability in Visual Studio C++ Redistributable Installer
Visual Studio 2022 version 17.8.14
released September 10th, 2024
What's New in this release
- Updating authentication method used when interacting with the Microsoft Store.
Developer Community
Security advisories addressed
CVE-2024-35272 SQL Server Native Client OLE DB Provider Remote Code Execution Vulnerability
Visual Studio 2022 version 17.8.13
released August 13th, 2024
Summary of What's New in this release
- Reduce ILK file size during incremental linking.
Security advisories addressed
- CVE-2024-38167 A vulnerability exists in .NET runtime TlsStream which may result in Information Disclosure.
- CVE-2024-38168 A vulnerability exists in .NET when an attacker through unauthenticated requests may trigger a Denial of Service in ASP.NET HTTP.sys web server. This is a windows OS only vulnerability.
Visual Studio 2022 version 17.8.12
released July 9th, 2024
Summary of What's New in this release
- Update MinGit to v2.45.2.1 that includes GCM 2.5 which addresses an issue with the previous GCM version where it reported an error back to Git after cloning and made it appear like the clone had failed.
Security advisories addressed
- CVE-2024-38081 A Vulnerability exist in Visual Studio installer on Windows OS where an unprivileged user is allowed to manipulate the Visual Studio installation resulting in elevation of privilege.
- CVE-2024-30105 A vulnerability exists in .NET when calling the JsonSerializer.DeserializeAsyncEnumerable method against an untrusted input using System.Text.Json may result in Denial of Service.
- CVE-2024-38095 A Vulnerability exists when System.Formats.Asn1 in .NET parses an X.509 certificate or collection of certificates, a malicious certificate can result in excessive CPU consumption on all platforms result in Denial of Service.
- CVE-2024-35264 A Vulnerability exists in ASP.NET Core 8 where Data Corruption in Kestrel HTTP/3 can result in remote code execution.
Visual Studio 2022 version 17.8.11
released June 11th, 2024
Summary of What's New in this release
- After upgrading to Germanium build of Windows, WSL requires a manual upgrade. This can cause Visual Studio to hang when opening CMake projects.
- Fixed a bug in the PDB reading code to ignore expected failures in certain FASTLINK PDBs.
Developer Community
- Error: Unable to open file (null). Error code = 0x0000000D
- C++/CLI C++20: fatal error C1001: Internal compiler error (static initonly array)
Security advisories addressed
- CVE-2024-30052 Remote Code Execution when debugging dump files that contain a malicious file with an appropriate extension
- CVE-2024-29060 Elevation of Privilege where affected installation of Visual Studio is running
- CVE-2024-29187 WiX based installers are vulnerable to binary hijack when run as SYSTEM
Visual Studio 2022 version 17.8.10
released May 14th, 2024
Summary of What's New in this release
- The "Xamarin" and "Xamarin Profiler" installer components have been marked "Out of support".
- Fixed these data structures that are not displayed correctly in VS Debugger: Concurrency::concurrent_unordered_set, Concurrency::concurrent_unordered_multiset, Concurrency::concurrent_unordered_map, Concurrency::concurrent_unordered_multimap.
- Fixed a calling convention bug on arm64 where the caller and callee did not agree on where to find over-aligned by-value parameters larger than 16 bytes.
- This release also includes an OpenSSL update to v3.2.1
Developer Community
- Incorrect code generation for Arm64 code with aligned structs pushed to parameter stack
- Truth counting in array is incorrect with x64 optimized code
- C++ Modules and LINK : fatal error LNK1000: Internal error during IncrBuildImage.Pass2
Security advisories addressed
- CVE-2024-32002 Recursive clones on case-insensitive filesystems that support symlinks are susceptible to Remote Code Execution.
- CVE-2024-32004 Remote Code Execution while cloning special-crafted local repositories
- CVE-2024-30045 A Remote Code Execution vulnerability exists in .NET 7.0 and .NET 8.0 where a stack buffer overrun occurs in .NET Double Parse routine.
- CVE-2024-30046 A Vulnerability exists in Microsoft.AspNetCore.Server.Kestrel.Core.dll where a dead-lock can occur resulting in Denial of Service.
Visual Studio 2022 version 17.8.9
released Apr 9th, 2024
Summary of What's New in this Release of Visual Studio 2022 version 17.8.9
- With this bug fix, a client can now use the bootstrapper in a layout and pass in the --noWeb parameter to install on a client machine and ensure that both the installer and the Visual Studio product are downloaded only from the layout. Previously, sometimes during the installation process, the installer would not respect the -noWeb parameter and would try to self-update itself from the web.
Security advisories addressed
- CVE-2024-21409 A use-after-free vulnerability exists in WPF which may result in Elevation of Privilege when viewing untrusted documents.
- CVE-2024-28929 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28930 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28931 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28932 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28933 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28934 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28935 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28936 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28937 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28938 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28941 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-28943 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
- CVE-2024-29043 This update addresses a remote code execution vulnerablity in the Microsoft ODBC Driver for Microsoft SQL Server.
Visual Studio 2022 version 17.8.8
released Mar 12th, 2024
Summary of What's New in this Release of Visual Studio 2022 version 17.8.8
- Fixes Address Sanitizer false negatives regarding Window's legacy allocators as well as a race condition on start up depending on when the Address Sanitizer dll is loaded.
- A fix was made to prevent a scalar memory load in the inline expansion of the std::round() functions from being changed into a vector access. Although the vector access does not change the result of the computation, it is longer and can fault when the scalar load would succeed.
- Fixed a bug where the libconcrt.lib used when static linking could contain an SSE 4.2 instruction that was illegal on older X64 systems.
Developer Community
- Compiler bug after VS17.6 for std::round optimization on AVX (Access violation)
- Illegal Instruction POPCNT emitted in MSVC 17.8.6 when building with optimizations
Security advisories addressed
- CVE-2024-21392 A vulnerability exists in .NET where specially crafted requests may cause a resource leak, leading to a Denial of Service.
- CVE-2024-26190 A Vulnerability exist in MsQuic.dll which might result in a peer to allocate small chunks of memory as long as connection stays alive.
- CVE-2023-27911 This advisory is being republished to indicate that Autodesk® FBX® SDK is no longer supported in Visual Studio 2022.
Visual Studio 2022 version 17.8.7
released Feb 13th, 2024
Summary of What's New in this Release of Visual Studio 2022 version 17.8.7
- Visual Studio is able to run form under the SYSTEM account.
- Updates .NET MAUI to 8.0.6 SR1.
Developer Community
Security advisories addressed
- CVE-2024-0057 A security feature bypass vulnerability exists when Microsoft .NET Framework-based applications use X.509 chain building APIs but do not completely validate the X.509 certificate due to a logic flaw.
- CVE-2024-21386 A vulnerability exist in ASP.NET applications using SignalR where a malicious client can result in a denial-of-service.
- CVE-2024-21404 A denial-of-service vulnerability exist in .NET with OpenSSL support when parsing X509 certificates.
Visual Studio 2022 version 17.8.6
released Jan 30th, 2024
Summary of What's New in this Release of Visual Studio 2022 version 17.8.6
Developer Community
- Incorrect coloring of parameters for CreateWindow and no quick info
- Update VS 2022 to Node 18
- Problem building c++/clr projects in VS17.8
- ARM64EC updating 17.8preview1 to preview3 gets errors: libvcruntime.lib(overrides.obj) : error LNK2013: BRANCH26 fixup overflow. Target '#memcpy_unal
- ARM64EC LNK1000 Internal error during IMAGE::BuildImage due to crash in link!CollectLongBranch
- Illegal Instruction (SSE 4.2 POPCNT) exception in VC Runtime 14.38.33130 concrt140.dll on Intel Core 2 Quad Q6600
- The fix requires an update to the VC Redistributable. For this update of 17.8, Visual Studio will not automatically update the VC Redistributable. To correctly apply the fix, after installing this update for Visual Studio, users will need to run the VC Redistributable executable for the target architecture available at
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Redist\MSVC\<latest version>
. App local deployments should copy the relevant VC runtime binaries from the same folder underarm64
orx64
,x86
subfolders.
- The fix requires an update to the VC Redistributable. For this update of 17.8, Visual Studio will not automatically update the VC Redistributable. To correctly apply the fix, after installing this update for Visual Studio, users will need to run the VC Redistributable executable for the target architecture available at
- fatal error C1001: Internal compiler error
- Visual Studio 2022 Invalid optimization code post increment in conditional
- VS17.8 ARM64EC Release build code generation bug while copying to intrinsic type __n64
- Compiler 19.37.32825 generates incorrect assembly LDRSH when accessing uint16_t with /O2
Visual Studio 2022 version 17.8.5
released Jan 17th, 2024
Summary of What's New in this Release of Visual Studio 2022 version 17.8.5
- Adds Xcode 15.1 Support and API fixes, for full release notes please visit our macios releases page.
- Fixed an issue under which some customers, after changing the Target Framework for their Razor project, were unable to see components that were subsequently added.
- Fixed a crash during startup of the Debug > Attach to Process dialog.
- Fixes a crash when changing the access modifier in the Settings Designer.
Developer Community
- Markup and autocomplete error using blazor
- Can't Install Any Visual Studio Extensions
- Visual Studio remote debugger freezes for 30+ minutes when loading the 'Modules' tab
- Clickonce Manifest error after upgrading to Visual Studio 17.8
Visual Studio 2022 version 17.8.4
released Jan 9th, 2024
Summary of What's New in this Release of Visual Studio 2022 version 17.8.4
Developer Community
- Target Android framework cannot be selected when the target runtime for Android is .NET 8 in .NET MAUI
- The service 'Microsoft.VisualStudio.OLE.Interop.IOleUndoManager' must be installed
- After upgrade to Visual Studio 17.8.0, Interactive REST Tests no longer work
- Visual Studio 2022 Release 17.8 Hovering over variable in debug at breakpoint does not show value
- 17.8 Preview 2 fails to load the IncrediBuild 'Extension Settings' options dialog
- debug single step function does not work anymore in mixed debugger mode and shows error 0x8ede0018
Security Advisories Addressed
- CVE-2024-20656 A vulnerability exists in the VSStandardCollectorService150 service, where local attackers can escalate privileges on hosts where an affected installation of Microsoft Visual Studio is running.
- CVE-2023-32027 This advisory is republished to address a Microsoft ODBC Driver for SQL Server Remote Code Execution vulnerability in Visual Studio.
- CVE-2023-32025 This advisory is republished to address a Microsoft ODBC Driver for SQL Server Remote Code Execution vulnerability in Visual Studio.
- CVE-2023-32026 This advisory is republished to address a Microsoft ODBC Driver for SQL Server Remote Code Execution vulnerability in Visual Studio.
- CVE-2023-29356 This advisory is republished to address a Microsoft ODBC Driver for SQL Server Remote Code Execution vulnerability in Visual Studio.
- CVE-2023-32028 This advisory is republished to address a Microsoft SQL OLE DB Remote Code Execution vulnerability in Visual Studio.
- CVE-2023-29349 This advisory is republished to address a Microsoft ODBC and OLE DB Remote Code Execution vulnerability in Visual Studio.
- CVE-2024-0057 A security feature bypass vulnerability exists when Microsoft .NET Framework-based applications use X.509 chain building APIs but do not completely validate the X.509 certificate due to a logic flaw.
- CVE-2024-0056 A vulnerability exists in the Microsoft.Data.SqlClient and System.Data.SqlClient SQL Data provider where an attacker can perform an interception attack (sometimes called a MITM, or man-in-the-middle, attack) between the SQL client and the SQL server.
- CVE-2024-21319 Microsoft is releasing this security advisory to provide information about a vulnerability in the ASP.NET Core project templates.
Visual Studio 2022 version 17.8.3
released Dec 5th, 2023
Summary of What's New in this Release of Visual Studio 2022 version 17.8.3
- An issue in which projects that use razor files either as linked files or from shared projects has been fixed.
Developer Community
- Custom text rendering settings are ignored in VS2022 code windows
- Wrong line size after update to 17.8.
- Android local devices stops appearing after upgrading to VS 2022 17.8.0
- After updating Visual Studio 2022 to 17.8.1 I have a problem with shared projects
- .esproj will not launch StartupCommand if in a solution folder
- remote Git operations are very slow
- VS2022 17.8: "The identifier is not defined" when evaluating locals on .NET Framework files with an unicode character
Known Issues
- Users who have privilege management software from Delinea installed may experience issues launching Visual Studio. Delinea is aware of this issue and has addressed it. Please contact them through https://delinea.com/support to get instructions on how to resolve this issue.”
Visual Studio 2022 version 17.8.2
released Nov 28th, 2023
Summary of What's New in this Release of Visual Studio 2022 version 17.8.2
- Fixed an issue where, in certain situations, a document window can get stuck showing a loading message.
- In some cases (when a project is located under a solution folder) you may see an error when saving the project. The project would get saved but you would see an error about unable to cast a COM object. This issue is now fixed so the error is no longer displayed.
Developer Community
- RemoteSemanticClassificationService.GetClassificationsAsync: SyntaxTree is not part of the compilation
- When change to another file, VS get stuck on "loading editor components"
- After upgrade to Visual Studio 17.8.0, Interactive REST Tests no longer work
- ASP.NET Core web apps targeting .NET 5.0 and below stopped working after 17.8.0 update
- could not create a .net framework console app
Visual Studio 2022 version 17.8.1
released Nov 21st, 2023
Summary of What's New in this Release of Visual Studio 2022 version 17.8.1
- The updated version of IncrediBuild fixes an issue where building CMake projects using the standard build menu commands would incorrectly redirect the build to use IncrediBuild by default.
Developer Community
Visual Studio 2022 version 17.8.0
released Nov 14th, 2023
Summary of What's New in this Release of Visual Studio 2022 version 17.8
Productivity Features
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 |
F# Improvements
Features | Community Suggestions |
---|---|
F# |
Debugging and Diagnostics
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 |
SQL
Features | Community Suggestions |
---|---|
Upgraded Microsoft.Data.SQLClient (MDS) from version 3.0 to version 5.0 in SQL Server Data Tools |
Testing
Features | Community Suggestions |
---|---|
New IntelliTest now in Preview |
Performance Enhancements
Features | Community Suggestions |
---|---|
Improved Razor/Blazor Responsiveness | |
Enhanced F5 Speed | |
Optimized IntelliSense for C++ Unreal Engine | |
Build Acceleration for Non-SDK style .NET Projects |
Enterprise Management
Features | Community Suggestions |
---|---|
Streamlined client initialization steps for IT administrators |
Other Developer Community Suggestions: You asked, we listened!
- Blank Solution project template missing 33 Votes
- Csproj Editor does not open due to AndroidPackageFormat
- Breakpoint Highlight - C# 25 votes
- Make (editing) Typing/Scrolling more responsive 24 votes
- Compare multiple files with previous version 8 votes
- Git differences: show only differences and omit lines that weren't changed 7 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
- Disable automatic multi-branch-history toggling of current/initial Git branch on Git Repository dialog 4 votes
- ARM64 memchr implementation may not be standard conformant
- Standalone React TypeScript project template fails with part of path not found
- Git branches side bar does not stay collapsed
- The MessageBar has low contrast in the new VS 2022 17.8.0 Preview 1.0
Productivity Features
GitHub Copilot
Supercharging your productivity with Visual Studio gets a lot easier in the newest release of Visual Studio. GitHub Copilot autocomplete is now available as an optional component, making it far easier to install along with a new Visual Studio install or for an administrator to package with an update. A subscription is required to activate features; free trial is available.
Component details here: Visual Studio Enterprise workload and component IDs | Microsoft Learn.
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.
Create a Pull Request in Visual Studio
Instead of using the browser, you can create your pull request in Visual Studio. 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 > Pull Request.
We've iterated in preview versions to deliver better error handling and an improved the reviewer experience. Let us know what you think of Pull Request experience here.
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.
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
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 Activation Setting and Limit Increase
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. Additionally, we've increased the number of repositories you can work with at once to 25.
GitHub Avatars added to Git Repository Window
See your GitHub avatars in the multi-branch graph in the Git Repository Window.
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.
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.
Microsoft Teams Toolkit
In the latest Visual Studio 2022 version 17.8 we introduce more project templates to fit in more business scenario and to make getting start simpler. New templates are:
- an Echo Bot template which echoes user inputs. - a Link Unfurling template which is a type of Message Extensions app that can render URL links to adaptive 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 which is an Action type of Message Extensions app that get users input, perform some logic and then send results back to users.
We also redesign our UI for you to easier select among templates, we add filters and tags for different type of templates.
Visual Studio Update Notification
Noticed something new? For Visual Studio 2022, we added an overlay to the VS task bar icon to help you know when VS will update.
When there is an update available and you have enabled the "Update on Close" option, the icon will appear. Once you close VS, an update will immediately start and as a result the icon will also disappear.
For more information on Update on Close, please visit VS Update on Close.
Additionally We addressed an issue where Git SCC provider binds to non-Git folders in Open Folder mode and prevents other providers such as VisualSVN from working.
C++ and Game Development
We have added support for users to run their remote Linux unit tests from the Test Explorer in Visual Studio to any remote Linux machines they are connected to through the Connection Manager
Added Problem Details window for navigation of structured diagnostics. Open it using the Details icon on an entry in the Error List.
- 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.
- Added new snippets for Unreal Engine. Start typing in the editor window and UE snippets will start showing as a member list item in your UE 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)
- 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.
- We added a "Functions View" to Build Insights integration inside Visual Studio. Build Insights' generated diagnostic report will now show you function generation time as well as ForceInlines.
- Added automatic suggestions for making member functions
const
if they logically should not modify the object's state. By hovering over a member function and clicking the light bulb icon, you can quickly access suggestions to mark the function as const.
- You can now hover over a class, struct, union, base type or enum to see the size and alignment.
- Now, you have the capability to sort your #include directives. This feature is accessible through the "#include Directives" dropdown inside context menu. You can also access it by adding "Sort #include directives (C++)" in the Code Cleanup configuration settings.
- You can adjust the sorting order to align with your preferences by navigating to Tools > Options > Text Editor > C/C++ > Code Cleanup.
/FU
is no longer supported for C compilations as there is no/clr
support for C./FU:asFriend
has been added to provide parity with in-source#using <assembly> as_friend
.
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:
- 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
.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.
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 capability. 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.
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.
SQL
- Upgraded Microsoft.Data.SQLClient (MDS) from version 3.0 to version 5.0 in SQL Server Data Tools (SSDT) Read more
- Two new fields are added to Connect dialogue box
- The Encrypt property now defaults to true (enabled) when connecting. If a server does not have a trusted certificate configured, the use of Trust Server Certificate set to true may be appropriate. For more details, please refer to the documentation
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.
|
Performance Enhancements
Improved Razor/Blazor Responsiveness
Solutions using Razor and Blazor will experience better responsiveness. We achieved this by significantly reducing memory allocations during cross-process communications between Visual Studio and Roslyn. We tested the OrchardCore solution, and the results are impressive. To open the solution and get Razor intellisense ready, we allocate about 1.4GB less memory. Fewer heap allocations mean less work for the garbage collector, which results in improved responsiveness.
Enhanced F5 Speed
We’ve substantially enhanced F5 performance for native projects by optimizing how breakpoints get set up. The improvements seen by any given project depends on the number of files with breakpoints, the number of DLLs with symbols, etc. Additionally, we’ve optimized the PDB loading process for Windows applications, reducing the time required to load a PDB once it’s located. In our testing, these optimizations delivered a remarkable 20% speed improvement for Unreal Editor projects.
Optimized IntelliSense for C++ Unreal Engine
We’ve made improvements to the speed with which IntelliSense and colorization become available after opening a previously opened C++ file. We have always cached IntelliSense state for an opened file. In 17.8, we’ve restructured the reading from cache, such that the most critical information, including colorization and the highlighting of selected references, are computed first. This optimization helps you get productive sooner.
Build Acceleration for Non-SDK style .NET Projects
Visual Studio 17.8 extends Build Acceleration to managed applications targeting the non-SDK style projects (e.g. projects targeting .NET Framework 4.8 or lower) providing a substantial impact on build times. To enable, set an msbuild project property as follows:
<Project>
<PropertyGroup>
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
</PropertyGroup>
</Project>
This builds on the success introduced in 17.5 for SDK-style projects, reducing incremental build times significantly.
In our internal testing with in-house solutions, we noticed up to a 50% improvement in incremental build times. However, the actual improvement depends on the state of projects when the build begins. Specifically, the fewer the projects that have been modified in comparison to the total projects in the solution, the greater the improvement. The actual extent of improvement you experience will depend on the specific characteristics of your project and its modifications.
Enterprise Management
Administrators can now easily initialize client machines before delegating standard users control of updating or modifying their installation of Visual Studio. Now, you can programmatically install just the installer by executing "vs_enterprise.exe install --installerOnly".
Administrators that take advantage of our administrator update solution to deliver monthly security updates across their organization can now prompt users to close Visual Studio, which is a common situation that blocks administrator updates from applying. To enable the prompt, configure the new "AdministratorUpdatesNotifications" global policy, which is available in both Intune settings catalog and our ADMX Templates. Thank you to the administrator community who suggested this feature.
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.