Visual Studio release notes

We're excited to announce the availability of the Visual Studio 2026 August update. This release marks the beginning of a new era for Visual Studio with deep platform integration of AI, stronger fundamentals, and improved performance.

Download Visual Studio 2026 to enjoy these new features and improvements.

Version 18.9.1

Released on August 18, 2026

Top bug fixes From the community
Copilot Command preview dialog is not scrollable, blocking allow or deny actions Feedback Ticket
Fix to Test Agent in 18.9.0

August Update 18.9.0

Released on August 11, 2026

GitHub Copilot

Adjust model thinking effort to match your task

Choose low, medium, or high thinking effort for supported models to balance response quality and token usage.

You can now control how much a model reasons through a problem. Visual Studio 18.9 adds thinking effort controls for supported models, so you can choose low, medium, or high effort based on your task and token budget.

How thinking effort works

Some Copilot models now support adjustable thinking levels:

  • Low - Gives quick responses with minimal reasoning. Best for straightforward questions and code suggestions. Uses fewer tokens.
  • Medium - Balances reasoning depth and response speed. Best for everyday coding tasks.
  • High - Uses deeper reasoning for complex problems. Best for tricky algorithms, architecture decisions, and hard-to-debug issues. Uses more tokens.

You can adjust thinking effort from the Model picker or the expanded Model management view. Lower levels help you stay within your token budget while still getting useful support for each task.

Model management view showing a thinking effort dropdown with low, medium, and high options

Review changes and commits with the Git agent

Catch issues before the pull request.

You don't have to wait for a pull request to get a second set of eyes on your code. Ask the Git agent to review your changes or commits as you work.

Review uncommitted changes

Switch to the Git agent in Copilot Chat and ask it to review your changes. The agent looks at your uncommitted work and surfaces comments inline in the editor. The Git Changes view gives you a navigable list so you can jump to each comment quickly.

You can also select the Copilot review icon in the Git Changes window to start a review.

Inline review comments in the editor and a per-file comment list in the Copilot Chat panel

Review a commit

Attach a commit as context in Copilot Chat and ask the Git agent to review it. Review comments appear inline on the changed files in a commit-specific view, separate from your working files.

You can also kick off a commit review directly from the Git Changes infobar after committing, or from any commit in the Git Repository window.

Inline review comments on a commit, with per-file findings in the Copilot Chat panel

When you start a review through Copilot Chat, keep the conversation going to dig into findings, get explanations, or work on suggested fixes. Reviews work with both GitHub and Azure DevOps repositories and use the GitHub Copilot code review service.

Organization-level custom agents

GitHub organization owners can now add custom agents across their organization.

Note: This feature requires a GitHub organization.

You can now share custom agents across repositories in your organization. GitHub organization and enterprise owners can add custom agents that everyone in the organization can use. This helps your team stay consistent and keeps Copilot aligned with your organization's workflow.

If you're an administrator, see Preparing to use custom agents in your organization or Preparing to use custom agents in your enterprise.

When you work in repositories in your organization, Visual Studio automatically detects org-level custom agents and shows them in the agent picker. Hover over an agent to see its description and organization source. Click the definition button to open the agent definition file.

Agent picker dropdown showing organization-level custom agents, descriptions, and definition buttons

Set up org-level custom agents to support your team's workflow.

Access your Copilot usage

Jump to your Copilot plan usage from the context window or the badge menu, whichever works best for you.

Track your Copilot plan usage without leaving your workflow. In Visual Studio 18.9, you can check your plan usage directly from the context window.

Click the donut chart in the upper-right corner of the prompt box to view your context window usage, then click the button to open your full plan usage details.

Donut chart icon in the Copilot prompt box opening plan usage details

We've also refined the usage window and notifications so they're clearer and easier to act on. You'll know when you're approaching your limit and what options you have to continue.

Better model control

Pin your favorite models, collapse the rest, and access a comprehensive management view with full model details and customization options.

Finding and managing models is easier in Visual Studio 18.9. The redesigned model picker and new management view give you clearer control over your Copilot models.

Improved model picker - The picker is faster to scan and easier to use. Pin your favorite models to keep them at the top, and collapse models you rarely use to reduce clutter. You can focus on the models that matter most.

Model picker showing pin and collapse controls

Model management view - Select Manage models in the picker to open an expanded view with full details and controls.

  • View cost information, capabilities, and context window sizes for each model.
  • Manage your custom models and Copilot models in one place.

Model management view showing model details and controls

Git tooling

Multi-file summary diff 📣

View file changes in a unified diff for fast comprehension.

The multi-file summary diff shows all changed lines from several files in one unified view, so you can quickly understand the scope of a commit or pull request without jumping between files.

Unified panel showing changed lines from multiple files

You'll find the Open changes summary button in several places:

  • Git Changes
  • Commit details in Git → View Branch History
  • Pull requests in the View → Git Repository window

The pull requests list is currently available only in Visual Studio Insiders with the preview feature View pull requests for a Git repository.

Open changes summary button in the Git Changes toolbar

📣 See feature ticket to share your feedback and continue the conversation.

Git submodule support 📣

Manage Git submodules directly in Visual Studio with integrated add, update, delete, and navigation support.

One of the most requested Git features, first-class submodule support is now available in Visual Studio 18.9, so you can manage submodules without leaving the IDE.

Submodules are fully integrated into the Git experience. You now get:

  • A dedicated Submodules section in the Git Repository window.
  • Better visibility in Git Changes.
  • A branch and repository picker that shows the parent-child repository hierarchy.

Git Repository window showing the Submodules section

From the Submodules section, you can add, update, and remove submodules. Visual Studio also discovers and activates submodules automatically when you open a solution or folder, and keeps them out of the general local repositories list to reduce clutter.

Repository picker showing parent and submodule hierarchy

Submodules are read-only by default. If you want to work inside a submodule instead of only consuming it, go to Tools → Options → Source Control → Git, find Automatically activate multiple repositories, and select Yes, include submodules.

This is the first milestone in an evolving experience, and more improvements are planned for future releases.

📣 See feature ticket to share your feedback and continue the conversation.

Worktrees: work on multiple branches at once 📣

Create, open, and manage Git worktrees to work on multiple branches simultaneously without stashing or re-cloning.

If you've ever stashed half-finished work just to check another branch, worktrees let you skip that step. Each worktree is a separate working directory for the same repo, so your in-progress work stays untouched while you work elsewhere.

In the Git Repository window, right-click any branch and select New Worktree from to create a worktree. You can start from a new branch or use the selected branch. You can also create a worktree from any commit in the history graph. Open it in your current window or in a new Visual Studio instance to work on both branches side by side.

Context menu on a branch showing New Worktree From, Open Worktree in Current Window, Open Worktree in New Window, and Delete Worktree options

Worktrees appear inline with your branches. You can switch between them from the branch list, branch picker, or repo picker. When you're done, right-click the worktree and select Delete Worktree to clean up.

Git Repository branch list with worktrees shown alongside branches

📣 See feature ticket to share your feedback and continue the conversation.

Review commits with Copilot

Get a private Copilot code review on your commits.

Copilot code review already gives you feedback on uncommitted changes. Now you can run the same review on committed changes.

Right-click any commit in the Git Repository window and select Review Commit to review that commit. Select two commits to review everything that changed between them.

Right-click context menu showing Review Commit option in Git Repository window

You can also reference a commit in Copilot Chat and ask the Git agent to review it.

Copilot Chat window with Git agent prompt asking to review a specific commit

Copilot's review comments appear inline in the changed files. A single commit opens in the Commit Details window. A two-commit range opens in the Compare Commits view. Select any comment to jump directly to that code.

Inline Copilot review comment displayed in the Commit Details window

Reviews stay local to your Visual Studio session and work with both GitHub and Azure DevOps repositories.

To enable this feature, go to Tools → Options → GitHub → Copilot → Source Control Integration and turn on Review Git changes locally and provide suggestions from comments.

Compare a file to your working tree 📣

Compare an earlier version of a file with your current local changes.

Want to see how a file changed since an earlier commit? You can now compare any file version with your current working tree.

In Solution Explorer, right-click the file and select Git → View History. Then, in the file history, right-click a commit and select Compare with Working Tree.

Context menu in file history showing Compare with Working Tree

Visual Studio opens a diff with the commit version on the left and your working tree version on the right. You can review all changes since that commit, including committed and uncommitted edits.

Diff view showing committed file version on left and working tree version on right

📣 See feature ticket to share your feedback and continue the conversation.

PR review updates - autocomplete and timeline 📣

Set a pull request to complete automatically and see its update history in Visual Studio.

We're continuing to improve the pull request experience in Visual Studio.

Overview tab in Visual Studio pull request view showing Autocomplete and update timeline

  • Autocomplete / Auto-merge: Set a pull request to complete automatically after it meets required approvals and policy checks.
  • Update timeline: View a pull request history of pushes, votes, and other events on the Overview tab.

These updates work with GitHub and Azure DevOps repositories.

📣 See feature ticket to share your feedback and continue the conversation.

Top bug fixes From the community
TypeScript 7.0 fixes in VS. This update resolves previously reported issues with IntelliSense and auto imports, Quick Fix availability, navigation and code search, hover tooltips, Task List results, Vue diagnostics, and Expand Selection. Compile on Save remains a known issue when the Native Language Service is enabled.
Solution Explorer right-click on selected item in a C++ solution does not open context menu Feedback ticket

Version 18.8.3

Released on August 11, 2026.

Security advisories addressed CVE Description
.NET Information Disclosure Vulnerability CVE-2026-62898 Use after free in Microsoft QUIC allows an unauthorized attacker to disclose information over a network.
.NET Security Feature Bypass Vulnerability CVE-2026-62899 Inconsistent interpretation of HTTP requests ('HTTP request/response smuggling') in .NET allows an unauthorized attacker to bypass a security feature over a network.
.NET Information Disclosure Vulnerability CVE-2026-62900 Improper removal of sensitive information before storage or transfer in .NET allows an unauthorized attacker to disclose information over a network.
.NET Denial of Service Vulnerability CVE-2026-62901 Uncontrolled resource consumption in .NET allows an unauthorized attacker to deny service over a network.
.NET Elevation of Privilege Vulnerability CVE-2026-62886 Integer overflow or wraparound in .NET allows an unauthorized attacker to elevate privileges locally.
.NET Elevation of Privilege Vulnerability CVE-2026-62871 Out-of-bounds write in .NET allows an unauthorized attacker to elevate privileges locally.
.NET Core Remote Code Execution Vulnerability CVE-2026-70354 An out-of-bounds heap write exists in WindowsDesktop.App DirectWriteForwarder.dll when XpsDocumentWriter.Write(String) encounters a 16-bit iterator wrap.
.NET Information Disclosure Vulnerability CVE-2026-62902 Inclusion of functionality from an untrusted control sphere in .NET allows an unauthorized attacker to disclose information over a network.
.NET Remote Code Execution Vulnerability CVE-2026-62897 Integer overflow or wraparound in .NET Framework allows an unauthorized attacker to execute code locally.
.NET Elevation of Privilege Vulnerability CVE-2026-62909 Improper handling of exceptional conditions in .NET allows an authorized attacker to elevate privileges locally.
Git for Windows Vulnerability CVE-2026-62960 This security update updates Git for Windows and MinGit to address CVE-2026-62960.

Future removal of Git for Windows Individual Component on Windows 8.1

Git for Windows is ending support for Windows 8.1, so the Git for Windows Individual Component will no longer be available through the Visual Studio Installer on Windows 8.1.

This change affects only the optional, system-wide Git installation. Git functionality built into Visual Studio is not affected. If you rely on this component, upgrade to a supported version of Windows to continue receiving current Git updates and security fixes.

Version 18.8.2

Released on July 28, 2026.

Top bug fixes From the community
Extension update is failing to uninstall the old version, leading to VS loading both copies Feedback ticket

Version 18.8.1

Released on July 22, 2026.

Top bug fixes From the community
ASP.NET .NET Framework 4.8 scaffolding no longer offers views/controllers Feedback ticket

July Update 18.8.0

Released on July 14, 2026.

GitHub Copilot

Built-in .NET and Azure skills

Discover built-in .NET and Azure skills in Visual Studio to customize your agentic workflow.

Visual Studio now includes built-in skills, created by experts from the .NET and Azure teams, to help you better customize your agentic workflow and complete development tasks more efficiently. These skills are available when the corresponding .NET and Azure workloads are installed.

You can find the skills in the Built-in category in the tool picker. Hover over each skill to see its description and path, and use the three-dot menu to open the full skill or open its folder location.

Built-in .NET and Azure skills in tool picker

Built-in skills are currently off by default, so you can review and enable only the ones that suit your tasks. This gives you a controlled way to bring in guided, domain-specific help directly where you work. You can also learn more about the .NET skills and Azure skills via the links.

Copilot usage tracking and alerts

Stay informed about your Copilot usage with real-time tracking and alerts when approaching limits.

GitHub Copilot recently transitioned to usage-based billing, so your Copilot usage is now calculated based on token consumption rather than by request (learn more from GitHub's blog).

To help you make the most of your usage in Visual Studio, we're continuously improving the product to help you optimize and track your Copilot usage. As part of this ongoing work, we've refreshed the Copilot Usage window and added proactive alerts as you approach your limits.

What's new

The updated Copilot Usage window in Visual Studio gives you a clearer view of your current usage based on the new billing model, making it easier to track how much you're using Copilot throughout your development workflow. You'll see real-time updates on your usage metrics, helping you understand your patterns and plan accordingly.

Access the usage window anytime from the Copilot badge menuCopilot Usage.

Copilot Usage window showing current usage metrics

Visual Studio also alerts you about your usage proactively, giving you time to adjust your usage before hitting any limits.

You'll see alerts when:

  • You're approaching your usage limit
  • You've reached your usage limit
  • You have additional usage (also called overages) activated after reaching your usage limit

You can customize when the approaching usage alert appears by adjusting your quota warning threshold percentage in your settings, giving you control over how early you want to be notified.

More to come

This is just the start. We're continuously improving Visual Studio to help you optimize your Copilot usage and give you better visibility into how you're using it. Expect more updates across the product in the coming releases.

Share your feedback

We'd love to hear your thoughts on how we can help you better navigate your Copilot usage. Share your feedback and suggestions on Developer Community.

Try the new Agent (Preview)

Switch to a smarter, less chatty Copilot agent.

Copilot Chat in Visual Studio has a new Agent (Preview) option in the agent picker, built on the same GitHub Copilot SDK that powers the GitHub Copilot CLI. The agent gets more tasks right the first time, with less back-and-forth to keep it on track. Responses are also shorter and easier to scan.

How to try it

  1. Open GitHub Copilot Chat
  2. Click the agent picker at the bottom of the window
  3. Select Agent (Preview)

The Copilot Chat agent picker with Agent (Preview) selected under Agent

Use it on the work you already do in Visual Studio: feature changes, bug fixes, refactors, and all your other day-to-day tasks.

This feature is still in preview, and we'd love your feedback. Send it through Help → Send Feedback → Report a Problem.

Review selected code with Copilot

Get targeted code review feedback from Copilot on any code you select.

Sometimes you don't need a full code review, just a second opinion on a specific block of code. Select code in the editor, right-click, and choose Copilot ActionsReview Selection.

Copilot leaves inline comments on your selection that you can review and act on. Use the sparkle icon on any comment to apply a code suggestion or, if there isn't one, have Copilot generate one for you.

Context menu showing Copilot Actions with Review Selection highlighted

This is powered by GitHub Copilot code review, the same experience you get when reviewing your changes in the Git Changes window before committing.

Organization-level custom instructions

Organization owners can now add custom instructions to tailor Copilot's responses across the entire organization.

Note: This feature requires the repository to belong to a GitHub organization.

GitHub organization owners can now add custom instructions for Copilot to tailor responses to specific needs and preferences across the entire organization. This is especially helpful for teams who want to set up ground rules for using Copilot or have common instructions that everyone in the team can benefit from. For organization administrators who want to set up these instructions, see add organization custom instructions. Note that custom instructions are intended for setting preferences and are not suitable for enforcing policies.

When you're working on repositories that belong to your organization, organization-level custom instructions are automatically applied. You can see these instructions in the reference list during your Copilot interactions and you can click on the link to view the full instructions.

Organization-level custom instructions appearing in the reference list

If you prefer not to use organization-level instructions or want to avoid potential conflicts with your user-level instructions, you can disable this feature. Go to Tools → Options → GitHub → Copilot → Copilot Chat and uncheck Enable organization-level custom instructions.

Git tooling

Pull request updates 📣

React to PR comments and open the PR view in its own tab.

Reviewing pull requests is smoother and more comfortable with these updates.

  • Emoji reactions on comments: The same reactions available on the web are supported for both GitHub and Azure DevOps.

Emoji reactions on a GitHub pull request comment

  • Open pull request in new tab: Click Open in New Tab in the PR header to pop the pull request into its own tab. Arrange it alongside your code for a more flexible review layout.

Open in New Tab button in the pull request header toolbar

📣 See feature ticket to share your feedback and continue the conversation.

Attach branches to Copilot Chat

Ask Copilot about any branch by attaching it from the Git Repository window.

Branches join commits, changes, and PRs as context you can attach to Copilot Chat. Right-click any branch in the Git Repository window and select Add to Chat to include it in your conversation.

Context menu on a branch in the Git Repository window showing the Add to Chat option

For example, ask Copilot to tell me about this branch to get a quick summary before diving into the code.

C++

MSVC Build Tools auto-discovery across VS installs

Visual Studio now finds pinned toolset versions from other installations instead of stopping at the first matching platform toolset in the current install.

You can now opt in to automatic discovery of MSVC Build Tools across all Visual Studio IDE and Visual Studio Build Tools installations on your machine, ensuring that a pinned VCToolsVersion is resolved correctly even when it lives in a different install.

Previously, Visual Studio only searched other installations for a matching toolset if your current install had no toolset at all for your target platform toolset. For example, if your project targeted v143 and your current Visual Studio already had any v143 toolset installed, the search stopped there, even if you explicitly pinned a specific VCToolsVersion that only existed in a separate installation.

Now, Visual Studio continues searching other installations to find the exact version you pinned, even when a different version of the same platform toolset is already present locally.

How to enable

Set EnableVCToolsVersionDiscovery to true in your project or Directory.Build.props:

<PropertyGroup>
  <EnableVCToolsVersionDiscovery>true</EnableVCToolsVersionDiscovery>
  <VCToolsVersion>14.43.34604</VCToolsVersion>
</PropertyGroup>
Why this matters
  • Version pins actually work: A specified VCToolsVersion is honored regardless of which installation contains it, even when your current install already has the same platform toolset at a different version.
  • Build reproducibility: Pin a known-good toolset version across your team without worrying about individual IDE updates changing compiler behavior.
  • No manual path overrides: Cross-install toolset references are resolved automatically instead of requiring you to hand-wire VCToolsInstallDir.
Top bug fixes From the community
_statusfp scheduled before floating point operations Feedback ticket
Corrects an issue causing bad codegen when dereferencing a pointer to a based pointer.
Corrects an issue with decltype of variables captured by value in certain non-mutable lambdas.
C++ IntelliSense in v145 flags unresolved includes and false syntax errors Feedback ticket
Visual Studio freezes when stopping debugger at breakpoint hit from Immediate Window Feedback ticket

Version 18.7.4

Released on July 14, 2026.

Top bug fixes From the community
Updated MinGit to version 2.54.0.2
C++ IntelliSense in v145 flags unresolved includes and false syntax errors Feedback ticket
Security advisories addressed CVE Description
.NET Elevation of Privilege Vulnerability CVE-2026-47300 An elevation of privilege vulnerability exists in the ASP.NET Core Negotiate authentication handler where the LdapAdapter does not properly validate LDAP queries, allowing an authenticated attacker to bypass authorization checks.
.NET Elevation of Privilege Vulnerability CVE-2026-47303 An elevation of privilege vulnerability exists in the ASP.NET Core Negotiate authentication handler where the LdapAdapter confuses CN and sAMAccountName identifiers, allowing an authenticated attacker to impersonate another user.
.NET Denial of Service Vulnerability CVE-2026-47302 A denial of service vulnerability exists in .NET XML processing where EncryptedXml handling and duplicate-attribute parsing in XmlTextReader cause uncontrolled resource consumption.
.NET Security Feature Bypass Vulnerability CVE-2026-47304 A security feature bypass vulnerability exists in the .NET XML encryption implementation (System.Security.Cryptography.Xml), allowing an attacker to forge XML signatures via an empty HMAC and bypass signature protections.
.NET Denial of Service Vulnerability CVE-2026-50524 A denial of service vulnerability exists in .NET where malformed TLS packets during the System.Net.Security SslStream handshake cause the application to crash or become unresponsive.
.NET Security Feature Bypass Vulnerability CVE-2026-50528 A security feature bypass vulnerability exists in .NET where the System.Net.Security SslStream implementation ignores channel binding, allowing an attacker to bypass authorization checks during secure communication.
.NET Denial of Service Vulnerability CVE-2026-50525 A denial of service vulnerability exists in the .NET XML encryption implementation (System.Security.Cryptography.Xml) where a crafted XML transform chain causes uncontrolled resource consumption.
.NET Denial of Service Vulnerability CVE-2026-50648 A denial of service vulnerability exists in the .NET XML encryption implementation (System.Security.Cryptography.Xml) where crafted encrypted XML causes uncontrolled resource consumption.
.NET Denial of Service Vulnerability CVE-2026-50527 A denial of service vulnerability exists in the .NET XML encryption implementation (System.Security.Cryptography.Xml) where improperly validated input leads to a stack-based buffer overflow.
.NET Tampering Vulnerability CVE-2026-50526 A tampering vulnerability exists in the .NET SDK container image build process where a predictable, world-writable cache location allows a local attacker to inject malicious blobs into container images built by other users on the same machine.
.NET Denial of Service Vulnerability CVE-2026-50651 A denial of service vulnerability exists in .NET where an attacker can flood SocketsHttpHandler HTTP/2 connections with SETTINGS and PING ACK frames, causing an out-of-memory condition in Http2Connection.
.NET Spoofing Vulnerability CVE-2026-50659 A spoofing vulnerability exists in the .NET SMTP client (System.Net.Mail) where SMTP command smuggling via CRLF sequences split across buffers allows injection of arbitrary email commands.
.NET Remote Code Execution Vulnerability CVE-2026-50646 A remote code execution vulnerability exists in Windows Presentation Foundation (WPF) when parsing specially crafted XAML input, allowing an attacker to execute arbitrary code in the context of the current user.
.NET Remote Code Execution Vulnerability CVE-2026-50649 A remote code execution vulnerability exists in Windows Presentation Foundation (WPF) when parsing specially crafted XAML input, allowing an attacker to execute arbitrary code in the context of the current user.
.NET Elevation of Privilege Vulnerability CVE-2026-50650 An elevation of privilege vulnerability exists in Windows Presentation Foundation (WPF) when parsing specially crafted XAML input, allowing an attacker to elevate privileges on the affected system.
Visual Studio Remote Code Execution Vulnerability CVE-2026-47305 A remote code execution vulnerability exists in Visual Studio where a Mark-of-the-Web (MOTW) bypass allows a crafted .vcxproj InitialTargets or PreBuildEvent to execute project commands when a solution is opened.

Version 18.7.3

Released on June 30, 2026.

Top bug fixes From the community
VSCopilot ChatError: Cannot find an instance of the Microsoft.VisualStudio.Copilot.ICopilotInteractionService service. Feedback ticket
Copilot Chat window fails to initialize with NullReferenceException in ThreadsViewModel.AddThreadInternalAsync Feedback ticket

Version 18.7.2

Released on June 23, 2026.

Top bug fixes From the community
Fixed an issue where Copilot chat fails to open due to a RemoteInvocationException Feedback ticket
Fixed a std::regex regression where a repeated pattern with a lookahead assertion would throw an exception instead of being properly handled. Feedback ticket

Version 18.7.1

Released on June 16, 2026.

Top bug fixes From the community
Fix poor contrast of datatip text in light theme Feedback ticket
Fix an issue with certain ambiguous qualified-ids not being diagnosed

June Update 18.7.0

Released on June 9, 2026.

IDE

Edit theme colors 📣

You can now easily edit the theme colors to personalize your Visual Studio experience. Change the colors of the editor, tool windows, and more to match your preferences.

Visual Studio now includes a new Theme colors options page that lets you customize any Fluent color token directly in the IDE - no extension required. Your customizations are saved per theme, so each theme keeps its own set of tweaks.

Theme Color Editor

What you can do
  • Tweak any Fluent token on the fly - accent colors, hover states, shell chrome, and more. Search for the token you want and pick a new color.
  • Per-color reset - revert an individual token without wiping all your other customizations.
  • Customize on top of any theme - your overrides layer on top of the theme you've selected.
  • New tokens for shell and tab/window header separation - lets you give the shell and tab headers different colors (handy if you want a more retro look).
How to get there

Use the new Edit theme colors menu command, or open the Environment → Visual Experience → Theme colors page in settings.

📣 See feature ticket to share your feedback and continue the conversation.

Productivity

Color emojis

Visual Studio now displays emojis in full color throughout the IDE, making your code comments, markdown files, and chat conversations more expressive.

Visual Studio now renders emojis in full color across the entire IDE. Whether you're documenting code with helpful visual cues or collaborating in chat, emojis now appear with their full color and detail instead of monochrome outlines.

Where you'll see color emojis

You can use color emojis in:

  • Code comments - Add visual markers to TODO items, warnings, or section headers
  • Markdown files - Preview and edit markdown documents with rich emoji support
  • GitHub Copilot Chat - See colorful emojis in chat responses and your questions
  • Output windows - Build output and logs now display emojis in color
  • Solution Explorer - Emojis in file names and project items are now rendered in color

Color emoji

Why it matters

Color emojis make it easier to scan code and quickly identify important sections. A red ❌ in a comment stands out more than a gray outline, and a green ✅ provides clearer visual feedback. This small change improves readability, especially in large codebases where visual markers help you navigate quickly.

The rendering uses modern font technologies to display emojis consistently across different Windows versions, so what you see matches what your teammates see.

GitHub Copilot

Copilot usage tracking and alerts

Stay informed about your Copilot usage with real-time tracking and alerts when approaching limits.

GitHub Copilot recently transitioned to usage-based billing, so your Copilot usage is now calculated based on token consumption rather than by request (learn more from GitHub's blog).

To help you make the most of your usage in Visual Studio, we're continuously improving the product to help you optimize and track your Copilot usage. As part of this ongoing work, we've refreshed the Copilot Usage window and added proactive alerts as you approach your limits.

What's new

The updated Copilot Usage window in Visual Studio gives you a clearer view of your current usage based on the new billing model, making it easier to track how much you're using Copilot throughout your development workflow. You'll see real-time updates on your usage metrics, helping you understand your patterns and plan accordingly.

Access the usage window anytime from the Copilot badge menuCopilot Usage.

Copilot Usage window showing current usage metrics

Visual Studio also alerts you about your usage proactively, giving you time to adjust your usage before hitting any limits.

You'll see alerts when:

  • You're approaching your usage limit
  • You've reached your usage limit
  • You have additional usage (also called overages) activated after reaching your usage limit

You can customize when the approaching usage alert appears by adjusting your quota warning threshold percentage in your settings, giving you control over how early you want to be notified.

More to come

This is just the start. We're continuously improving Visual Studio to help you optimize your Copilot usage and give you better visibility into how you're using it. Expect more updates across the product in the coming releases.

Share your feedback

We'd love to hear your thoughts on how we can help you better navigate your Copilot usage. Share your feedback and suggestions on Developer Community.

Long-distance next edit suggestions

GitHub Copilot can now suggest edits anywhere in your file, not just near your cursor.

Next edit suggestions (NES) in GitHub Copilot extend Copilot completions by not just inserting code at your cursor, but suggesting edits nearby, anticipating what you'd change next. This is a great addition to completions, but it was limited to a narrow range around your current position. In practice, the edits you need to make are frequently located much further away in the file.

Now, Copilot can suggest edits anywhere in your file with long-distance next edit suggestions. Instead of being limited to changes near your cursor, Copilot can predict and suggest edits throughout your entire file, helping you maintain consistency and make related changes even when they're far apart.

Long-distance next edit suggestions showing an edit suggestion far from the cursor location

If you want to learn more about the behind-the-scenes of long-distance suggestions, check out this blog post, which includes a deep dive into the model training and evaluation. This experience is currently off by default. To try it out, go to Tools → Options → Text Editor → Inline Suggestions and check Enable extended range suggestions. Please give it a try and share your feedback with us!

Trust validation for MCP servers

Detects any changes to MCP server configurations and assets, and prompts for re-approval before running.

MCP servers extend Copilot's capabilities, but keeping them secure matters. Visual Studio now includes trust validation for MCP servers, a security layer that detects when a server's configuration or assets have changed since you last approved them and prompts you to re-approve before proceeding.

How it works

Trust is validated at two points during server startup:

  1. Configuration trust - Before the server process starts, the current server configuration is compared against a previously trusted baseline. If the configuration has changed, you are prompted via a trust dialog.
  2. Asset trust - After the server starts and its assets (tools, prompts, resources, instructions) are loaded, their fingerprint is compared to the last-trusted fingerprint. If assets have changed, the trust dialog shows what diverged between the old and new versions.

MCP trust dialog prompting user to review changes

Trust decisions

When prompted, you can:

  • Accept the changes - trusts once and updates the baseline for future comparisons.
  • Always trust - you will never be prompted again for this server.
  • Reject the changes - aborts the server startup and leaves it in a trust-rejected state. Trust is re-validated on the next activation attempt.

Servers you are connecting to for the first time are implicitly trusted on first activation, no dialog is shown. The current configuration and asset fingerprints are saved as the initial baseline for future change detection.

Trust validation is also automatically skipped when the server is built-in, the MCP registry policy is set to RegistryOnly (meaning it's pre-approved by organizational policy), you previously chose "always trust" for that server, or you turn off this feature.

This feature is enabled by default. You can manage it at Tools → Options → GitHub → Copilot → Copilot Chat → Show trust dialog before running tools from an updated MCP server.

Git tooling

Review and approve pull requests in the IDE 📣

Browse pull request changes, leave comments, and approve without leaving Visual Studio.

Got a pull request to review, or feedback to address on your own? Whether your repo is on GitHub or Azure DevOps, you can handle it without leaving Visual Studio.

Browse and open pull requests

Select any pull request to open an embedded review view without checking out the branch. Find PRs from the Git Repository window (View → Git Repository), Git Changes, or Git → GitHub (or Azure DevOps) > View Pull Requests.

A list of pull requests on the left, with the selected PR's overview on the right showing description and changed files

  • PR description, changed files, commits, related items, and reviewers in one view
  • Switch between active PRs without disrupting your working branch
  • View commit details and changes for individual commits in the PR
Comment and discuss

Leave feedback directly in the diff view, and keep the conversation going without switching to the browser.

A file diff with an inline comment thread showing a reply and resolve button

  • Inline comments on specific lines, replies, and thread resolution
  • Comments per file shown in the Changes list
  • Comments render inline images and formatted text, similar to the web
Approve, complete, and merge

When you're ready, approve and complete the PR from Visual Studio. Vote and completion actions are available from any view, so you can approve while reviewing changes.

  • Approve the pull request, with more vote options available in the dropdown for Azure DevOps
  • View status checks, merge conflicts, and required approvals on the Overview tab
  • Complete or merge the pull request, with options to convert to draft and abandon or close

You can manage this experience in Tools → Options → Preview Features:

  • Pull Request Comments
  • View pull requests for a Git repository

📣 See feature ticket to share your feedback and continue the conversation.

Add PRs to Copilot Chat

Attach pull request context directly to Copilot Chat.

Copilot Chat already knows about your commits and changes, and now you can bring pull requests into the conversation as well.

Right-click a pull request in the Git Repository window and select Add to Copilot Chat to attach its context, including the PR description, changed files, and comments. You can also reference a pull request directly in the chat input by typing # and a pull request ID.

For example, ask Copilot to "summarize this pull request" to get a quick overview without reading through every file.

Adding a pull request to Copilot Chat from the Git Repository window

Make sure ToolsOptionsPreview FeaturesView pull requests for a Git repository is enabled.

C++

GitHub Copilot modernization agent for C++

The MSVC upgrade scenarios for GitHub Copilot modernization have completed their public preview and are now generally available.

The GitHub Copilot modernization agent is an AI-powered tool in Visual Studio that helps you modernize and upgrade your applications. We are excited to announce that our first C++-specific scenarios that help you upgrade your projects to use the latest version of the Microsoft C++ (MSVC) Build Tools have completed their public preview and are now generally available.

Staying up to date with the latest MSVC version gives you access to new features, performance improvements, and security updates. The modernization agent for C++ simplifies this process by analyzing your project, identifying compatibility issues, and executing a clear upgrade plan to ensure a smooth transition to the latest MSVC version. You can have it run in Automated mode to reduce manual effort, or in Guided mode to review and approve the assessment, plan, and execution steps.

How to get started
  1. In Visual Studio, open your C++ project that compiles with MSVC.
  2. Launch the modernization agent using one of the following methods:
    • Right-click the solution or project in Solution Explorer and select Modernize, or
    • Open the Copilot Chat window and type @Modernize followed by your upgrade request.
  3. Let the @Modernize agent know that you'd like to upgrade to the latest version of MSVC.

Visual Studio with GitHub Copilot modernization agent actively upgrading a 10-year-old C++ sample

Thanks to the many users who evaluated GitHub Copilot modernization agent on their C++ projects during the public preview! Your feedback was instrumental in helping us improve the experience, and we are excited to continue building on this foundation to support more C++ modernization scenarios in the future. Let us know what you'd like to see next by sharing your suggestions and feedback at Developer Community.

NuGet PackageReference Support for C++ Projects 📣

C++ .vcxproj projects now have experimental support for NuGet PackageReference, both for in the command-line and the Visual Studio IDE.

NuGet PackageReference is now supported for Visual Studio C++ projects (.vcxproj). This feature is currently experimental and off by default.

To enable this feature in C++ projects, set the EnableNativePackageReferenceSupport property to true in your project's Globals property group or in a Directory.Build.props file. You can then add PackageReference dependencies as you would for your .NET projects.

PackageReference allows you to reference NuGet packages directly in your project file, and have them automatically restored and included in your build. This is a more modern way to manage dependencies compared to the older packages.config approach. To learn more about PackageReference, see the NuGet documentation on PackageReference and Migrate from packages.config to PackageReference.

This feature builds on the existing support we added for C++/CLI projects targeting modern .NET versions.

Scope and compatibility:

  • Supported: Native C++ projects (.vcxproj) and C++/CLI projects targeting .NET Core or .NET 5+.
  • Not supported: C++/CLI projects targeting .NET Framework. For those projects, you can continue to use the older packages.config approach for NuGet dependencies.
  • Not supported: C++ projects that reference C++/CLI projects or C# projects. We are investigating support for this scenario in a future update. In the meantime, you can use one of these workarounds to get PackageReference working:
    • Setting <ReferenceOutputAssembly>false</ReferenceOutputAssembly> and <SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties> on the <ProjectReference> item will allow NuGet to ignore it and not cause restore and build issues.
    • Set AssetTargetFallback to include frameworks compatible with the referenced C# project. For example: <PropertyGroup> <AssetTargetFallback>net472;net10.0</AssetTargetFallback> </PropertyGroup>.

📣 See feature ticket to share your feedback and continue the conversation.

Top bug fixes From the community
MSVC v14.51 Linker Crash in IncrCalcPtrs Feedback ticket
MSVC CL.exe Release build hits internal compiler error in plutovg-font.c Feedback ticket
CHPE /d2hybrid:emit_guest_references causes ICE Feedback ticket
Fixed an issue causing the VC Redistributable branding to revert to an older version.
Correcting order of contents in Copilot Chat window after upgrading VS

Version 18.6.3

Released on June 9, 2026.

Security advisories addressed CVE Description
SQLite Memory Corruption Vulnerability CVE-2025-6965 There exists a vulnerability in SQLite versions before 3.50.2 where the number of aggregate terms could exceed the number of columns available. This could lead to a memory corruption issue.
.NET SDK Elevation of Privilege Vulnerability CVE-2026-45490 dotnet.exe workload elevate - Arbitrary file creation/truncation via LogFile named pipe allows an unauthorized attacker to elevate privileges locally.
.NET Core Tampering Vulnerability CVE-2026-45491 Symlink path traversal in System.Formats.Tar enables arbitrary file write when extracting tar entries.
ASP.NET Core Denial of Service Vulnerability CVE-2026-45591 Stack overflow DoS via deeply-nested MessagePack arrays in SignalR and Blazor Server.

Version 18.6.2

Released on May 27, 2026.

Top bug fixes From the community
Web Deploy publish fails in Visual Studio Community 2026 Insiders for legacy ASP.NET project Feedback ticket
Fixing error for Claude Opus 4.5 agent unexpected error: Unhandled exception in AskInConversationAsync: StreamJsonRpc.RemoteInvocationException: Illegal characters in path Feedback ticket
Addressing build failures for compiler - Macros with nested parentheses inside a VA_OPT not correctly materialized when imported from a header unit

Version 18.6.1

Released on May 20, 2026.

Top bug fixes From the community
Arm64: Can't set breakpoints vs2026 Feedback ticket

May Update 18.6.0

Released on May 12, 2026.

IDE

System dark/light themes 📣

Automatically switch Visual Studio themes when your system moves between Light and Dark mode, keeping your IDE in sync with your environment.

You might prefer a lighter, higher-contrast theme during the day and a darker theme at night. Visual Studio now automatically switches between your selected Light and Dark themes when your system setting changes, keeping your IDE in sync with your environment.

How to use it

  1. Open Tools → Options → Environment → Visual Experience
  2. Set Color theme to Use system setting
  3. Select a System Light theme and a System Dark theme

Visual Studio automatically applies the matching theme when you change your Windows theme.

Video showing Visual Studio switching from light to dark theme when the Windows system theme changes

📣 See feature ticket to share your feedback and continue the conversation.

GitHub Copilot

View and manage Agent Skills

Browse, edit, and locate all your Copilot Agent Skills from the chat window.

You can now view all your Agent Skills in one place. By clicking the tools icon on the bottom right corner of your chat window, you can open a dedicated skills panel that lists every skill discovered from your workspace and user profile, making it easy to see what's available at a glance.

From the panel, you can manage skills directly without leaving Visual Studio:

  • Edit a skill - click the three-dot menu (⋯) on any skill to open and edit it directly in VS.
  • Open file location - use the same menu to jump straight to the skill file on disk.
  • Search a skill - use the search bar at the top to quickly find a specific skill by name or keyword.

Skills panel in the chat window showing available skills with management options

This builds on the Agent Skills support introduced earlier, giving you a more user-friendly way to browse and maintain your skills. Try it out and share your feedback!

Multi-file summary diff for Copilot changes

Review all Copilot changes across multiple files in a single summary view with granular accept and undo controls.

When Copilot edits multiple files, you don't need to review each one separately anymore. The new multi-file summary diff view shows all changes in one place.

Click the Open Changes Summary button in the Copilot Chat working set after Copilot finishes editing. You'll see a single tab with all changed files and their diffs together.

Screenshot showing the Open Changes Summary button in the Copilot Chat working set

You can accept or undo changes at different levels:

  • Across all files at once
  • On a per-file basis
  • Per individual diff chunk

You can also open any file separately to see its full context.

Screenshot of the multi-file summary diff view displaying multiple files with inline diffs and accept/undo controls

Use the controls in the top-left corner to:

  • Collapse all file contents to see only file headers for a quick overview
  • Navigate between diff chunks using the next and previous buttons to jump through changes quickly

This view makes it easier to understand what Copilot changed across your codebase and gives you precise control over which edits to keep.

Context window indicator

See how much context Copilot is using and optimize it with one-click summarization.

When you chat with Copilot, it tracks your conversation history, attached files, and other context to give you relevant responses. This is called the context window, and it has a limit. Once it fills up, Copilot may lose track of earlier parts of your conversation.

You can now see exactly how much of that context window you've used with the new context window indicator.

Look for the ring icon in the upper right corner of the Copilot Chat prompt box. This mini donut chart fills up as your conversation grows, showing you at a glance how much context you've consumed.

Click the indicator to see:

  • Exact percentage of context used
  • Detailed breakdown of what's contributing to the context
  • Summarize conversation button to compact your conversation and free up space

Context window indicator with percentage ring showing 45% usage and a breakdown listing conversation messages, workspace files, and other sources

When your context is running low, click Summarize to compress earlier parts of your conversation. This lets you keep chatting without losing important context or starting a new conversation.

Context window indicator after summarization, showing reduced usage and a notification that the conversation was summarized

Plan before you build with Planning mode

Create and iterate on implementation plans before making any code changes.

Sometimes you want to think through an approach before diving into code. The new Planning chat mode lets you collaborate with Copilot on an implementation plan - without making any changes to your codebase.

How it works

Plan mode selected

When you select Planning mode, Copilot follows a two-step process:

  1. Explore and clarify - Copilot uses read-only tools to understand your codebase and asks clarifying questions. For straightforward tasks, it drafts a plan immediately.
  2. Draft and refine - Copilot creates a detailed implementation plan that you can review, discuss, and refine together.

Planning mode creating an implementation plan

When you're ready, click Implement plan to hand it off to Agent mode for execution.

Agent mode implementation of plan in progress

Plans are saved as markdown

Copilot saves every plan as a markdown file in your repo at .copilot/plans/plan-{title}.md. This file is the single source of truth. You can edit it directly in your editor or refine it through chat. Copilot detects your changes and keeps the plan in sync.

When to use Planning mode
  • Big features - Break down complex work into clear steps before writing code.
  • Unfamiliar codebases - Let Copilot explore and explain before proposing changes.
  • Team collaboration - Share plans as markdown files for review before implementation

Git tooling

Add commit to Copilot Chat

Attach commit context to Copilot Chat directly from the IDE.

Reviewing a commit and want Copilot's help understanding it, spotting issues, or basing new edits off of it? Instead of hunting down the commit ID and pasting it into Chat, you can now right-click a commit and add it directly as context in Copilot Chat.

You can find this command in the following surfaces:

  • Git History (Git > View Branch History)
  • File History (Right-click a file in Solution Explorer, then Git > View History)
  • Annotate (Blame) (Right-click in the editor, then Git > Annotate (Blame))

You can also multi-select commits to attach several to chat at once.

Add commit to Copilot Chat

Copilot receives the commit as context, so you can ask things like explain this change, does this introduce any issues, or write a similar change for this other file.

Copilot Chat with commit context

Commit message instructions moved

Commit message custom instructions now use the Copilot instructions file instead of the Visual Studio setting.

If you've been using the Commit message custom instructions text input under the GitHub → Copilot → Source Control Integration setting to tailor Copilot-generated commit messages, that setting will no longer apply. Going forward, commit message instructions are managed through the Copilot custom instructions file.

This brings commit message instructions in line with how other Copilot custom instructions work across your repository, keeping everything in one place.

Set up custom instructions

Add your commit message instructions to your repository's Copilot instructions file. For full setup details, see Add repository instructions.

Copilot instructions file with commit message rules

C++

Improved optimizations for iterative C++ builds

Improved optimization scenarios for C++ builds when GitHub Copilot build performance for Windows finds potential improvements that may only be visible in iterative builds.

When using GitHub Copilot build performance for Windows, Copilot may detect a regression in full rebuild analysis. In these cases, Copilot now reruns a comparable incremental build to better reflect real-world gains from optimizations such as precompiled headers and header refactoring, which can appear slower in rebuilds but improve your day-to-day workflows.

Ask <span class=@BuildPerfCpp in GitHub Copilot chat to optimize your build time" />

GitHub Copilot build performance for Windows

GitHub Copilot build performance for Windows uses Build Insights to identify and fix build performance issues in C++ projects using MSVC. By analyzing your build process, this agent suggests optimizations and implements changes to reduce build times:

  1. Reduce header parsing time by creating precompiled headers and optimizing include paths, such as removing unused includes.
  2. Refactor functions to reduce and eliminate function parsing time.
  3. Modernize C++ code to use newer language features that improve compilation speed.
  4. Optimize build settings to leverage parallel builds and optimal linker settings.
Getting started
  1. Make sure GitHub Copilot Agent Mode is enabled in your IDE.
  2. Open a C++ project.
  3. Ask @BuildPerfCpp in the GitHub Copilot Chat window to optimize your build time.

Note: Build Insights needs to run and collect build performance data. It also requires ETL trace collection permissions. Accept the UAC prompt once to enable Build Insights to collect ETW events from MSVC.

Ask <span class=@BuildPerfCpp in GitHub Copilot chat to optimize your build time" />

Segment Heap support for C++

New MSBuild and CMake C++ projects now use Segment Heap by default, helping applications take advantage of modern Windows memory management and security features.

Visual Studio now enables Segment Heap by default for new C++ projects. Segment Heap is a modern Windows heap implementation that improves performance, scalability, and security compared to the legacy NT heap. This change helps applications adopt these benefits and prepares them for future platform capabilities.

You can configure this behavior in project properties under Manifest Tool → Input and Output. Existing projects are not modified automatically but can opt in using the same settings.

MSVC Build Tools v14.51

Improved C++23 support, performance, and many bug fixes.

Microsoft C++ (MSVC) Build Tools version 14.51 is now available and is installed by default with the C++ desktop and gaming workloads. To check if it's installed simply make sure one or both of these components are checked in the installer:

  1. MSVC Build Tools for x64/x86 (Latest)
  2. MSVC Build Tools for ARM64/ARM64EC (Latest)

You can also select one of the components labelled with the v14.51 version number to pin your installation to this version.

Screenshot showing Visual Studio installer components for MSVC v14.51

The version number printed by cl.exe and link.exe will be at least 14.51.36231.

The stable release of v14.51 will receive 9 months of servicing fixes, as described in New release cadence and support lifecycle for Microsoft C++ Build Tools .

See below for a complete list of what's new.

C++ Standards Conformance

The frontend team continued implementing CPP23 and CPP20 features and fixing conformance issues:

  • C++23 Implementations: Please see the CPP23 Support in MSVC Build Tools 14.51 blog post for details.
  • Consteval Improvements: Multiple fixes to consteval function handling, constexpr new/delete in modules, initializer list backing arrays, /experimental:constevalVfuncVtable behavior now enabled by default, and better error diagnostics for failed constant expressions.
  • Coroutine Improvements: Coroutine-related globals refactoring, and deprecation of experimental coroutine headers.
  • Parser Modernization: Recursive descent parser now handles [[attributes]], with continued improvements to error recovery and removal of legacy token accessors.
  • C Language Improvements: Added _Atomic qualifier support, removed incorrect diagnostics for C99 flexible array members, and added __typeof__ support for function types.
Code Generation

The backend optimizer received significant investment across many areas:

  • Sample-based profile guided optimizations: Support for sample-based profile guided optimizations with supporting tools. More details to follow in a future blog post.
  • Static Single-Assignment (SSA) optimization improvements: Implemented dozens of new algebraic simplification patterns, including ternary operator patterns, arithmetic patterns, and min/max.
  • Common Subexpression Elimination (CSE): Improve CSE of loads of [x + C] through if/else joins, redundant stores, and has improved multibyte aliasing checks.
  • Scalar Replacement of Aggregates (SROA): More aggressive unpacking of structures.
  • Loop Optimizations: Linear Function Test Replace (LFTR) signedness fixes and counted loop optimizations when the primary induction is used after the loop.
  • Inlining: Extended limited call-site inlining, and improved propagation of parameter type information when inlining.
  • Copy Propagation: Multiple improvements to copy propagation for integer constants and sequential copies.
  • Strength Reduction: Implemented reduction of conversions as a strength-reduction optimization.
  • Predicate and Jump Threading: Improvements to predicate-based optimizations for eliminating bound checks, including better use of predicates from min patterns.
  • Stack Layout: The compiler now prefers pushing callee-saved registers onto the stack over using shadow slots, reducing function prologue/epilogue overhead.
  • PGO: Improved per-function size/speed trade-offs to mitigate unrepresentative profiles and PGO trimming improvements.
  • Restrict Pointers: Added support for restrict pointer semantics to enable additional aliasing optimizations.
  • Pattern matching optimizations: New patterns for MSUB/MADD generation, ADC/SBB for conditional add/subtraction, and CMOVE/NE variants.
  • Intel APX: Preview support of Intel APX (Advanced Performance Extensions) in the MSVC toolchain. This support is enabled via the /feature:APX compiler option to target various APX features like Extended General-Purpose Registers (EGPRs), New Data Destination (NDD), No-Flags Update (NF), new conditional ISA and optimized registers save/restore operations. These are documented at https://www.intel.com/content/www/us/en/developer/articles/technical/advanced-performance-extensions-apx.html.

Other code generation changes:

ARM64 & SVE
  • SVE (Scalable Vector Extension) Support: Major new feature bringing ARM SVE to MSVC, including frontend type support for SVE scalar and aggregated types, intrinsic lowering, callee-saved register unwinding, variadic function parameter passing, header file installation, and tryblock/funclet support. Multiple ICE and miscompilation fixes were addressed.
  • Shrink Wrapping: Fixed multiple issues including epilog-only fragment unwind info, codegen bugs with chkstk killing X15, and multi-entry shrink wrap regions.
  • Code Quality: New patterns for CSEL pow2, 0 + ORR → CSET + ORR_SHIFT, optimized NEON_DUPR, removed redundant NEON_INSR after NEON_DUPR, ARM NEON patterns for x264, instruction fusion improvements, register retyping after globregs, and function alignment tuning.
  • DIA SDK: Full SVE support in the debug interface, including RtlpGetSveContextPointers and IDiaStackWalkHelper3.
SIMD & Vectorization
  • SLP Vectorizer: Improvements to Superword Level Parallelism (SLP) vectorization:
    • Scalar reduction vectorization
    • Generic and oversized vector instruction support
    • Permute optimizations and oversized select support
  • Vectorizer Improvements: Hoisting of vectorized inner loop pointer overlap checks to parent loops, character-count loop support, non-contiguous memory access support for 2-byte data types, and improved low trip count heuristics on ARM64.
  • AVX/SSE: AVX512 memcpy/memset, AVX2 memcmp override, AVX10.2, and vectorized bitmasking patterns for x264.
Linker & PDB
  • DIA: COM initialization thread safety, and SVE support.
  • PDB Fuzzing: Triggered PDB fuzzing from nightly builds.
  • SPGO: Sample-based profile guided optimizations available for use.
Standard Library (STL)

On GitHub, the microsoft/STL repo tracks its status with a high level of detail; see the Changelog for MSVC Build Tools 14.51. Notable library features that are newly available:

  • P0429R9 - <flat_map>
  • P1222R4 - <flat_set>
  • P2255R2 - Type Traits To Detect References Binding To Temporaries
  • P2590R2 - Explicit Lifetime Management
  • P2674R1 - is_implicit_lifetime

Other notable changes:

  • We've massively overhauled <regex> to fix long-standing correctness and performance problems that have been present since its initial implementation in VS 2008 SP1. After almost two decades, the stack overflows are finally fixed!
  • We've continued to add and improve SIMD-vectorized STL algorithms, using SSE4.2 and AVX2 for x64/x86, and (newly shipping in MSVC Build Tools 14.51) using NEON for ARM64/ARM64EC.
  • We've implemented 18 LWG issue resolutions.
  • We've removed long-deprecated non-Standard features, such as TR1, <hash_map>, <hash_set>, <experimental/filesystem>, stdext::checked_array_iterator, and stdext::unchecked_array_iterator.

All of this has been possible thanks to our amazing GitHub contributors.

AddressSanitizer (ASan)
  • ARM64 Support: Improved ASan for ARM64 support with comprehensive library packaging, interception fixes, and false-positive resolutions.
  • SanitizerCoverage: Fixed blocklist handling, codegen issues, and forward declarations to ensure sancov initializers are invoked.
  • Performance: Cached walked heaps for performance improvements during shadow memory operations.
Modules & IFC
  • IFC Version Update: The MSVC frontend generates IFC files according to the 0.44 version of the IFC specification.
  • Concurrency Fix: Fixed a use-after-free race in concurrent IFC debug record resolution.
Static Analysis
  • EspX Consolidation: Merged EspX and its extensions like CppCoreCheck into a single DLL, simplifying deployment.
  • Bug Fixes: Fixed false positives from inexact location dereference, and a number of internal compiler errors (ICE) under /analyze.
ARM64EC & ARM64X
  • Coroutine Support: Fixed missing entry thunks for coroutine outlines and ramp functions.
  • ICF: Improved identical COMDAT folding (ICF) optimization in ARM64X binaries.
  • Volatile XMM: Fixed ARM64EC volatile XMM assignment.
Diagnostics
  • Fixed C4319 not being emitted when compiling C code.
  • Removed incorrect diagnostics for C99 flexible array members.
  • Warning C4789 improved to reduce false positives.
Debug Info
  • Enabled debug info pruning to reduce PDB sizes.

Tickets Fixed

The following customer-reported issues were fixed in this release: