Visual Studio release notes

We're excited to announce the availability of the Visual Studio 2026 September 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.10.3

Released on September 29, 2026.

Top bug fixes From the community
Fixed an issue where Visual Studio could become unresponsive while unloading a project due to a stale designer component. Feedback ticket
Fixed an issue where component changes could cause Visual Studio to crash after reloading the .NET Framework Windows Forms Designer.

Version 18.10.2

Released on September 22, 2026.

Top bug fixes From the community
Fixed an issue where solution folders (and their contents) could appear unavailable when opening a solution directly from the root of a drive or network-share. Feedback ticket

Version 18.10.1

Released on September 15, 2026.

Top bug fixes From the community
Fixed an issue where the XAMLX Workflow Designer could fail to open workflows after updating Visual Studio. Feedback ticket
Corrects an issue causing bad codegen when dereferencing a pointer to a based pointer.

September Update 18.10.0

Released on September 8, 2026.

GitHub Copilot

Updates to Bring Your Own Key 📣

Use AI in Visual Studio with the models your team prefers - through GitHub Copilot or your own model deployments, signed in to GitHub or not.

The best AI in Visual Studio is the AI you can bring with you. With Bring Your Own Key (BYOK), more developers can use AI in Visual Studio with the models their teams prefer - whether through GitHub Copilot or their own model deployments. From individual developers experimenting with new models to organizations standardizing on approved deployments, BYOK lets you use AI your way, whether or not you're signed in to GitHub.

BYOK is available in preview and enabled by default across the Community, Professional, and Enterprise SKUs. Connect to a Microsoft Foundry deployment or use a key from another supported provider, then work in Agent Mode with the new Agent (Preview).

This is an early preview, and we want your feedback. Not every model supports every Agent Mode capability yet. When a feature isn't supported, Visual Studio marks it clearly instead of failing silently. Try it and tell us what's working and where we should invest next in the Developer Community forum or fill out this short survey.

To get started:

  1. Open Chat.
  2. Open the model picker and choose Add a model or Manage Models.
  3. Connect to your provider.
  4. Start working in Agent Mode.

Supported providers: Microsoft Foundry, OpenAI, Anthropic, and Ollama and custom endpoint support for OpenAI and Ollama.

This release has breaking changes for the BYOK capability:

  • BYOK now works with the new Agent (Preview), which is built on the GitHub Copilot SDK-powered harness. The earlier BYOK experience in the previous Ask and Agent modes is no longer supported. Install the latest Visual Studio Insiders release (18.10) and use the new Agent (Preview) to try it.
  • Previously added Ollama models within 18.10 Insiders 1 will need to be re-added in 18.10 Insiders 2 due to a few backend updates for that provider.

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

Explore PRs with the Git agent

Explore pull requests in chat and navigate directly to comments and files.

Reviewing a pull request often means piecing together the discussion, the changed files, and what actually matters before you can dig in. The Git agent can now do that legwork for you.

Open Copilot Chat, select the Git agent, and ask it about your pull request, attaching the PR as context from the Git Repository window.

The response includes navigable links that open the corresponding comments and files directly in the pull request view in the IDE. Ask follow-up questions any time you want the agent to go deeper.

Navigable links in the Git agent response opening a file in the pull request view

Connect your Git provider's MCP servers so Copilot can get more context about your PRs. GitHub and Azure DevOps are both supported.

Debugging & diagnostics

See Which Operand Decides Your if Condition

Quickly see which expression determines your if condition with inline branch highlighting.

Want to quickly understand why a compound condition took a particular branch? Visual Studio now highlights the deciding expression in C# if statements that use && or ||.

While debugging, pause on an if statement. Alongside the existing inline → true or → false hint, Visual Studio uses red and green highlighting to show which operand determined the result.

For example, when an && condition evaluates to false, the highlighting identifies the operand that failed or caused evaluation to short-circuit. When an || condition evaluates to true, it identifies the operand that satisfied the condition. This helps you understand complex branching behavior without evaluating each expression individually.

Inline highlighting showing the operand that satisfied a true condition

Inline highlighting showing the operand that caused a false condition

You can right-click a highlighted expression to disable branch highlighting from the editor context menu. The highlight formats are also available under Tools → Options → Environment → Fonts and Colors. You can customize them using colors that work best with your preferred Visual Studio theme.

Attach to Process now supports Podman containers

Attach the Visual Studio debugger to processes inside Podman containers, just like Docker.

Starting in Visual Studio 18.10, container discovery recognizes Podman alongside Docker.

Start a container, then go to Debug → Attach to Process. Set Connection type to Podman, then click Find. Your Podman containers appear automatically, with the same attach experience you already use for Docker.

You can debug both .NET and C++ containers with no extra configuration.

Attach to Process dialog showing Podman containers discovered

Top bug fixes From the community
Node.js Tools njsproj build fails with MSB3030 missing Microsoft.NodejsTools.WebRole.dll Feedback ticket
MonoVsDbg created 4 times on incremental Android build, app fails to launch after VS 2026 18.9.0 update Feedback ticket
Debug launch and View in Browser stop working after Visual Studio update Feedback ticket
Copilot terminal sometimes does not start queued commands until the terminal tab is brought to the foreground Feedback ticket

Version 18.9.3

Released on September 8, 2026.

Top bug fixes From the community
Debug launch and View in Browser stop working after Visual Studio update Feedback ticket
Security advisories addressed CVE Description
Visual Studio Remote Code Execution Vulnerability CVE-2026-77907 An unchecked COFF relocation in DiaSymReader.Native can cause a 4-byte out-of-bounds write when a specially crafted PDB is processed.
Visual Studio Remote Code Execution Vulnerability CVE-2026-77906 Malformed PDB COFF COMDAT data in Microsoft.DiaSymReader.Native can cause remote code execution when a specially crafted PDB is processed.
SQLite Information Disclosure Vulnerability CVE-2025-70873 An information disclosure vulnerability exists in SQLite's zipfileInflate function when processing a specially crafted archive.
OpenSSL Vulnerability CVE-2026-34182 This security update updates OpenSSL to address CVE-2026-34182.
.NET Elevation of Privilege Vulnerability CVE-2026-69805 Microsoft.Diagnostics.Runtime accepts dump-controlled remote paths, which can disclose NTLMv2 credentials or load attacker-controlled native code.
.NET and Visual Studio Elevation of Privilege Vulnerability CVE-2026-69439 A 64-bit-to-32-bit truncation in Microsoft.DiaSymReader.Native can cause an out-of-bounds write when parsing a crafted Portable PDB.
.NET and Visual Studio Remote Code Execution Vulnerability CVE-2026-69522 An oversized memcpy in Microsoft.DiaSymReader.Native can write out of bounds when processing a specially crafted PDB.
ASP.NET Core Denial of Service Vulnerability CVE-2026-69304 IIS out-of-process hosting can allow RequestDecompressionMiddleware to process an unbounded decompressed body, resulting in a denial of service.
.NET Information Disclosure Vulnerability CVE-2026-58649 Insufficient cross-origin WebSocket validation in dotnet watch can expose IL and PDB information.
.NET Elevation of Privilege Vulnerability CVE-2026-69806 dotnet watch exposes information through procfs arguments that can enable injection into the /run_session endpoint.
.NET and Visual Studio Remote Code Execution Vulnerability CVE-2026-71328 An integer wrap in Microsoft.DiaSymReader.Native can cause a heap out-of-bounds write when processing a crafted MSFZ PDB.

Version 18.9.2

Released on August 25, 2026.

Top bug fixes From the community
Includes additional platform hardening and secure-development improvements
Normal Paste in Solution Explorer now creates a physical copy of files copied from Windows File Explorer instead of adding them as linked items

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
Fixed an issue where JAWS would read the entire tree view hierarchy when navigating items in the Solution Explorer 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 menu → Copilot 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 Actions → Review 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:


  true
  14.43.34604

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 menu → Copilot 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 Tools → Options → Preview Features → View 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 false and true on the 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: net472;net10.0 .

📣 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:

Other notable changes:

  • We've massively overhauled 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, , , , 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:

Top bug fixes From the community
ARM64 /EHa incorrect code motion Feedback ticket
[Regression] arm64 specific crash in MSVC 19.50.35728 for ARM64 Feedback ticket
Fix decltype of a parenthesized, mutable member inside a const-qualified member function.
Correct an issue causing error C2106 when certain ternary expressions are used on the LHS of an assignment
Fix a false C2106 error in certain initializations involving array-type members. Feedback ticket
Updating the installer to include the latest servicing release of the 10.0.26100 Windows SDK (10.0.26100.8249) and the 10.0.28000 Windows SDK (10.0.28000.1839)

Version 18.5.3

Released on May 12, 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 Core Tampering Vulnerability CVE-2026-32175 A tampering vulnerability exists when .NET Core improperly handles specially crafted files.
.NET Elevation of Privilege Vulnerability CVE-2026-32177 Heap-based buffer overflow in .NET allows an unauthorized attacker to elevate privileges locally.
.NET Elevation of Privilege Vulnerability CVE-2026-35433 Improper input validation in .NET allows an unauthorized attacker to elevate privileges locally.
ASP.NET Core Denial of Service Vulnerability CVE-2026-42899 Loop with unreachable exit condition ('infinite loop') in ASP.NET Core allows an unauthorized attacker to deny service over a network.

Version 18.5.2

Released on April 28, 2026.

Top bug fixes From the community
[After upgrading to 18.5] Keyboard input may stop responding after using Find in Files Feedback ticket
Latest install of VS 2026 Insiders (11709.129) is removing 14.50 build tools Feedback ticket
Claude Opus 4.7 stopped working after the last update Feedback ticket
[C++] Bad codegen for switch(*optional) in 64 bit in Visual Studio 2026 Feedback ticket
Security advisories addressed CVE Description
ASP.NET Core Elevation of Privilege Vulnerability CVE-2026-40372 Improper verification of cryptographic signature in ASP.NET Core allows an authorized attacker to elevate privileges over a network.

Version 18.5.1

Released on April 21, 2026.

Top bug fixes From the community
F# Empty string matching in code quotations causes FS045 Feedback ticket
Adding UI to show model thinking process Feedback ticket

April Update 18.5.0

Released on April 14, 2026.

IDE

JSON editor schema updates

JSON editor updated to support more JSON schema features.

The JSON editor now supports newer JSON Schema specifications, giving you access to modern schema features like $defs, $anchor, and improved vocabulary support.

Previously, the editor only supported JSON Schema Draft 4 and Draft 7. You can now use:

This means better IntelliSense and validation when working with schemas that use the latest specifications.

GitHub Copilot

Use agent skills 📣

Copilot agents in Visual Studio now automatically discover and use skills defined in your repository or user profile.

Copilot agents in Visual Studio can now automatically discover skills. Agent skills are reusable instruction sets that teach agents how to handle specific tasks, like running a build pipeline, generating boilerplate, or following your team's coding standards. Define a skill once to save time and keep behavior consistent across your workflow. See awesome-copilot for community examples.

Skills are discovered from these locations:

  • Workspace or project skills (stored in your repository): .github/skills/, .claude/skills/, .agents/skills/.
  • Personal skills (stored in your user profile): ~/.copilot/skills/, ~/.claude/skills/, ~/.agents/skills/.

To create a skill:

  1. Create a .github/skills/ directory for a workspace skill or a ~/.copilot/skills/ directory for a personal skill.
  2. Create a subdirectory for your skill. Give each skill its own directory (for example, .github/skills/github-issues/).
  3. Create a SKILL.md file in that directory. Follow the agentskills.io/specification format.
  4. Optionally, add scripts, examples, or other resources to the skill directory.

After you create a skill in one of these directories, the agent decides when to use it. When a skill is active, it appears in chat so you know it's being applied.

Copilot chat showing an active skill

More user-friendly flows for browsing and creating skills in Visual Studio are coming in upcoming releases. Try Agent Skills and share your feedback.

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

Cloud agent integration

Start new cloud agent sessions directly from Visual Studio.

Cloud agents, including Copilot coding agent, run on remote infrastructure for scalable, isolated execution. You can now start new cloud agent sessions directly from Visual Studio.

Cloud option in the Chat agent picker

To try it, select Cloud from the agent picker in the Chat window, then share the work you want help with. The cloud agent first asks for permission to open an issue in your repository, then creates a pull request to address it. While it prepares the PR, you can keep working on other tasks in Visual Studio, or close Visual Studio and come back later. When the PR is ready, you'll get a notification and can review it in Visual Studio or in your browser.

Cloud agent issue-to-PR workflow

Cloud agent in Visual Studio is currently powered by Copilot coding agent. To use it, make sure you're in a GitHub repository and that Copilot has permission to create issues in that repository. Try it out and let us know what you think.

Build your own custom agents 📣

Define custom agents tailored to your team's workflow using .agent.md files in your repository or user profile.

Custom agents help you build specialized Copilot agents for your team's workflow. They can use workspace awareness, code understanding, tools, your selected model, and MCP connections to external knowledge sources such as internal documentation, design systems, APIs, and databases.

Custom agents are defined as .agent.md files in your repository or user profile. Workspace or project-specific agents are stored under .github/agents/ in your repository. For example:

your-repo/
└── .github/
    └── agents/
        └── code-reviewer.agent.md

User-level agents are stored in %USERPROFILE%/.github/agents/ by default. You can change this location in Tools → Options → Copilot Chat → Custom agents user directory.

To create a custom agent, either create a .agent.md file directly in one of the locations above, or click the + button in the agent picker and follow the prompts.

Agent picker showing a CSharp expert custom agent

After you create a custom agent, it appears in the agent picker so you can use it anytime.

A few things to note:

  • If you don't specify a model, the agent uses the model currently selected in the model picker.
  • Tool names vary across GitHub Copilot platforms - check the tools available in Visual Studio to make sure your agent works as expected.
  • The awesome-copilot repo has community-contributed agent configurations you can use as starting points. Verify tool names before you use them in Visual Studio.

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

Customizable Copilot keyboard shortcuts 📣

Customize the keyboard shortcuts for accepting Copilot inline suggestions.

You can now customize the keyboard shortcuts for accepting Copilot inline suggestions. You can change the key for accepting a full suggestion, the next word, or the next line in standard keyboard settings.

To set your preferred shortcuts:

  1. Go to Tools → Options → Environment → Keyboard.
  2. Search for the command you want to customize:
    • Edit.AcceptSuggestion
    • Edit.AcceptNextWordInSuggestion
    • Edit.AcceptNextLineInSuggestion
  3. Remove the existing key binding.
  4. Assign a new shortcut under the Inline Suggestion Active scope.

Keyboard settings with Copilot shortcut commands

For example, the image below changes the default accept shortcut from Tab to Ctrl+Tab. The new shortcut appears throughout the hint bar.

Editor hint bar showing updated Copilot shortcut

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

IntelliSense takes priority over Copilot 📣

IntelliSense now takes priority over Copilot completions so you only see one suggestion at a time.

We heard your feedback: seeing IntelliSense and Copilot completions at the same time can be distracting. The editor now prioritizes the IntelliSense list and shows only one suggestion at a time.

IntelliSense list shown while Copilot completion is suppressed

When IntelliSense is active, Visual Studio temporarily suppresses Copilot completions so you can focus on your current selection. After you dismiss or commit the IntelliSense selection, Copilot completions resume. This behavior is now enabled by default. Update your VS to the latest version and code as you normally do. Please let us know any feedback you have!

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

New chat history panel 📣

Browse and navigate your Copilot chat sessions with the new chat history panel.

The chat history experience has moved from a simple dropdown to a dedicated panel. You now see each chat title, a preview of the latest message, and when the session was last updated, so you can quickly find and reopen past conversations.

Chat history panel with chat titles, message previews, and updated times

More chat history management capabilities are on the roadmap. We'd love your feedback, so please file a ticket on Developer Community and tell us what you want to see next.

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

Debugging & diagnostics

Auto-Decoding in Text Visualizer

Easily decode text with Copilot.

We are introducing the Auto-detect and format feature within the Text Visualizer. This enhancement is designed to streamline your debugging workflow by automatically identifying the encoding or compression format of a string and applying the necessary transformations in a single click.

Gif showing text decoder in Text Visualizer

Simply click the Auto-detect and format button in the top-right of the Text Visualizer. Powered by Copilot, this feature instantly identifies and converts complex data (like GZip-compressed Base64) into readable text removing the need for manual decoding or external tools.

Agentic Issue to Resolution

Agentic Bug Resolution helps you find and fix bugs with runtime-proofed, interactive AI guidance.

We are introducing a new Debugger Agent workflow in Visual Studio that validates bugs against real runtime behavior instead of relying on static analysis guesses. The experience walks you through a complete agentic loop from understanding and reproducing the issue, to instrumenting the application, isolating the root cause, and validating the fix through live execution.

You can start from an issue in GitHub or Azure DevOps, or simply describe the bug or code behavior in natural language. The Debugger Agent uses this input to map the problem directly to your local source and guide you through resolution. Unlike static approaches, you can interact with the agent during the debugging process to provide more input, discuss your theory, or refine the fix in real time.

Video showing agentic issue to resolution

How the agentic loop works:

  • Context Injection – Provide an issue link or describe the bug in Debugger Mode in Copilot Chat (you can switch modes using the dropdown in the lower-left corner of the chat). The agent connects the report to your local code.
  • Autonomous Reproducer – The agent analyzes the bug description and, if reproduction steps are missing, creates a minimal scenario to trigger the failure automatically.
  • Hypothesis & Instrumentation – It generates failure hypotheses and instruments your app with tracepoints and conditional breakpoints to capture runtime state.
  • Runtime Validation – The agent runs the debug session and analyzes live telemetry to isolate the root cause.
  • Targeted Correction – It suggests a precise fix at the exact failure point rather than broad refactoring.
  • Final Human Validation – You rerun the scenario and confirm the fix in the live environment alongside the agent.

C++

C++ code editing tools for agent mode

C++ Code Editing Tools for GitHub Copilot Agent Mode are now available by default.

We're excited to share that C++ Code Editing Tools for GitHub Copilot Agent Mode are now generally available by default. These tools help Copilot navigate your C++ codebase more effectively when refactoring or modifying code.

With these tools enabled, Copilot can:

  • Map out class inheritance hierarchies
  • Follow function call chains

To get started:

  1. Open a C++ project and ensure IntelliSense is configured.
  2. Enable specific tools using the Tools icon in Copilot Chat.

List of available C++ tools in Copilot Chat settings

Once enabled, Copilot uses these tools automatically when answering questions or suggesting code changes.

Copilot using C++ tools to analyze and modify code across multiple files

For best results, use AI models that support tool-calling. Learn more at AI model comparison - GitHub Docs

Top bug fixes From the community
VS 2026 hangs while unloading projects Feedback ticket
Copilot terminal sometimes does not start queued commands until the terminal tab is brought to the foreground Feedback ticket
ASan supression does not work
Improved ASan runtime performance in applications that heavily utilize COM, mixed language bindings, and Win32 allocator API's

Version 18.4.4

Released on April 14, 2026.

Security advisories addressed CVE Description
.NET Denial of Service Vulnerability CVE-2026-26171 A vulnerability exists in EncryptedXml class where uncontrolled resource consumption can give an attacker to the ability to perform a Denial of Service attack.
.NET Spoofing Vulnerability CVE-2026-32178 Improper neutralization of special elements in .NET allows an unauthorized attacker to perform spoofing over a network.
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.
Visual Studio Information Disclosure Vulnerability CVE-2026-32631 An information disclosure vulnerability exists in MinGit due to NTLM hash leak to untrusted server.

Version 18.4.3

Released on March 31, 2026.

Top bug fixes From the community
Copilot chat fails with invalid_request_body: github_push_files schema requires additionalProperties=false Feedback ticket
Fix to Visual Studio crash when VS project is loaded

Version 18.4.2

Released on March 24, 2026.

Top bug fixes From the community
Fix proxy support page for Visual Studio 2026 Feedback ticket

Version 18.4.1

Released on March 17, 2026.

Top bug fixes From the community
VS repeatedly need to refresh credentials when logging into a GitHub account with Copilot license Feedback ticket
Devenv command-line switches /Run on /Runexit not working Feedback ticket
Fix AddressSanitizer compatibility issue with Xbox Game OS Feedback ticket
Add support for Agent Skills for Copilot's agent mode

March Update 18.4.0

Released on March 10, 2026.

IDE

JSON editor improvements

JSON editor now a part of the Core Editor.

Improvements in the JSON Editor

JSON Editor installed with the Core Editor

In previous releases in order to get the JSON editor you were required to install the Web Development workload. With this release, the JSON editor is now included in the Core Editor, so you can get JSON editing capabilities without needing to install the full Web Development workload. This change allows for a more streamlined installation experience for users who need JSON editing features but do not require the full set of web development tools.

Productivity

HTML rich copy/cut

Copy and cut code snippets with rich formatting.

Visual Studio now supports HTML clipboard format when cutting or copying code from the editor. You can paste colorized code into web versions of Office apps, Azure DevOps work items, or other HTML-based controls.

Code copied from Visual Studio into PowerPoint with syntax highlight and formatting

This feature maintains syntax highlighting and formatting when you paste code into HTML-based applications, making it easier to share and present code snippets. It's turned on by default. To customize it, go to Tools → Options → Text Editor → Advanced where you can check or uncheck Copy rich text on copy/cut and set the max length.

GitHub Copilot

Build your own custom agents 📣

Define custom agents tailored to your team's workflow using .agent.md files.

Custom agents let you build specialized Copilot agents tailored to your team's workflow. They have full access to workspace awareness, code understanding, tools, your preferred model, and MCP connections to external knowledge sources like internal documentation, design systems, APIs, and databases.

Custom agents are defined as .agent.md files in your repository. For example,

your-repo/
└── .github/
    └── agents/
        └── code-reviewer.agent.md

Custom agents in Visual Studio's agent picker

Successfully created custom agents will appear in the agent picker for your use at any time.

A few things to note:

  • If you don't specify a model, the agent uses whatever is selected in the model picker.
  • Tool names vary across GitHub Copilot platforms - check the tools available in Visual Studio to make sure your agent works as expected.
  • The awesome-copilot repo has community-contributed agent configurations you can use as starting points. Verify tool names before using them in VS.

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

Find_symbol tool for agent mode

New Find_symbol tool for GitHub Copilot Agent Mode helps you access symbol information across your codebase.

We're introducing the new find_symbol tool for GitHub Copilot agent mode, bringing language-aware symbol navigation directly to the agent. The find_symbol tool lets you:

  • Find all references to symbols across your project
  • Access metadata like type information, declarations, and scope

Find_symbol tool selected in Copilot Chat pane

Once you enable the tools, Copilot uses them automatically when answering your questions or suggesting code changes.

Copilot using find_symbol tool to analyze and modify code across multiple files

Supported languages include C++, C#, Razor, and TypeScript, plus any other language for which you have a supported Language Server Protocol (LSP) extension installed.

For best results, write clear prompts and use AI models that support tool-calling. Learn more at AI model comparison - GitHub Docs

Enterprise level MCP governance

Easily safeguard your data with enhanced MCP governance features.

MCP server usage in Visual Studio now respects allowlist policies set through GitHub. Admins can specify which MCP servers are allowed within their organizations.

When an allowlist is configured, you can only connect to approved MCP servers. If you try to connect to an unauthorized server, you'll see an error message explaining the server isn't allowed.

This helps organizations control which MCP servers process sensitive data and maintain compliance with security policies.

Debugging & diagnostics

Smart Watch Suggestions

Copilot now suggests context-aware expressions in Watch window.

Copilot now offers context-aware suggestions directly in Watch windows. Just place your cursor in the text box, and Copilot suggests relevant expressions based on your current debugging context.

Video showing Copilot suggesting watch expressions in the Watch window during a debugging session

This speeds up watch creation, reduces guesswork, and helps you monitor the most meaningful runtime values - making your debugging workflow faster and more precise.

Profile Tests with Copilot

Easily profile a test with Copilot.

We've added a new Profile with Copilot command to the Test Explorer context menu, making it easy to profile a specific test with just a click.

Video showing profiling test with Copilot

When selected, the Profiling Agent automatically runs the chosen test and analyzes its performance, combining CPU usage and instrumentation data to deliver actionable insights.

By default, the command uses Instrumentation profiling and is currently supported in .NET. If deeper analysis is needed, you can launch the selected test directly from the Copilot chat window and choose additional profiling tools.

Perf tips powered by live profiling

Debug-Time Performance Tips with Profiler Agent.

Performance optimization now happens while you debug, not after. Debug-time Perf Tips and Profiler Agent let you analyze performance instantly as you step through code, giving you actionable insights right when you need them.

Video demonstrating debug-time performance tips with inline execution metrics and Copilot optimization suggestions

As you step through code, Visual Studio shows execution time and performance signals inline for each step. When you spot a slow line or method - like a sluggish LINQ query, a calculation-heavy helper, or any step that takes longer than expected - just click the Perf Tip and ask Copilot for optimization suggestions on the spot.

Profiler Agent automatically captures runtime data during debugging: elapsed time, CPU usage, and memory behavior. Copilot uses this data to pinpoint performance hot spots and suggest targeted fixes, keeping optimization part of your regular debugging workflow instead of something you tackle later.

.NET

Fix vulnerabilities with Copilot

Fix NuGet package vulnerabilities precisely and easily with Copilot.

Fix NuGet package vulnerabilities effortlessly with Copilot directly from Solution Explorer. When Copilot detects a vulnerability, you'll get an immediate notification. Click through, and Copilot automatically resolves it with the right dependency updates.

No more manual vulnerability research or hunting down the correct package versions. Copilot analyzes the vulnerability and recommends targeted fixes that keep your dependencies secure without disrupting your workflow. You address security issues right when they're discovered - not later.

This integrates security directly into your daily work. Spend less time on vulnerability triage and more time building with confidence.

Screenshot showing the Fix with Copilot notification link below a NuGet package with a vulnerability warning in Solution Explorer

C++

MSVC Build Tools version 14.51 Preview

Microsoft C++ (MSVC) Build Tools version 14.51 Preview is now available for C++ developers.

The first Microsoft C++ (MSVC) Build Tools version 14.51 Preview is now available for C++ developers. This release includes several new features and runtime performance improvements. We encourage you to explore MSVC previews to adapt to breaking changes and report issues early. MSVC previews do not receive servicing patches and thus should not be used in production environments.

Installing MSVC Build Tools v14.51 Preview

To install, select either MSVC Build Tools for x64/x86 (Preview) or MSVC Build Tools for ARM64/ARM64EC (Preview), depending on your target architecture, from the Visual Studio Installer. You will find these components under the Desktop development with C++ workload as well as the Individual components tab.

MSVC v14.51 under the Desktop development with C++ workload

Under Individual components, you can additionally install Spectre-mitigated libraries, MFC, ATL, or C++/CLI support for MSVC v14.51 Preview.

MSVC v14.51 under Individual components

Compiler front-end

MSVC is making progress with C++23 conformance and 133 Developer Community bugs have been fixed. More details will be shared in a future blog post and release notes.

Compiler back-end

MSVC Build Tools version 14.51 improved runtime performance compared to v14.50 on the SPEC CPU 2017 benchmark suite by the following amounts in different build scenarios:

  • +6.5% Integer, Arm64, PGO
  • +1.1% Floating Point, Arm64, PGO
  • +4.4% Integer, Arm64, VS Defaults
  • +1.4% Floating Point, Arm64, VS Defaults
  • +5.0% Integer, X64, PGO
  • +1.9% Floating Point, X64, PGO
  • +4.3% Integer, X64, VS Defaults
  • +1.8% Floating Point, X64, VS Defaults

Optimization improvements:

  • Improved the SLP vectorizer to consider more alternatives, such as using partial vectors or using a vector size larger than the target width before mapping to the target vector width later.
  • Improved SROA's handling of indirect accesses, larger structs, and typecasts.
  • Allowed the loop vectorizer to hoist runtime checks.
  • Added elimination of logical-OR short-circuiting when safe.
  • Improved usage of conditional move instructions.
  • Better optimization of AVX vector intrinsics.
  • More aggressive inlining by default for functions with few uses.
  • Better inline expansion of memset/memcpy for AVX.
  • Improved copy propagation across block boundaries.
  • Added unrolling of outer loops and loops with multiple exits.
Standard library updates
  • A full list of MSVC Build Tools v14.51 standard library changes can be found in the STL Changelog. The changelog tracks everything merged to microsoft/STL main, though very recently merged changes may not yet be reflected in this particular preview. Those changes will still be reflected in future previews or the final 14.51 release.
AddressSanitizer
  • Improved the quality of our experimental ASan ARM64 support by fixing several code generation and runtime issues.
Known issues

Issue #1: There is a bug configuring CMake targets using the Visual Studio (MSBuild) generator.

Workaround:

  1. Open Developer Command Prompt for VS Insiders (or the prompt for the version of Visual Studio you are using) as an administrator
  2. Run the following commands, which create a new folder and copy a file from another location to it:
pushd %VCINSTALLDIR%\Auxiliary\Build
mkdir 14.51
copy .\v145\Microsoft.VCToolsVersion.VC.14.51.props .\14.51\Microsoft.VCToolsVersion.14.51.props
copy .\v145\Microsoft.VCToolsVersion.VC.14.51.txt .\14.51\Microsoft.VCToolsVersion.14.51.txt
  1. Run a build to make sure it works

Issue #2: Command line builds in PowerShell are not yet configured for the preview. A fix will be deployed in a future preview.

Top bug fixes

Top bug fixes From the community
Severe IntelliSense Delay After Upgrading to Visual Studio 2026 Fedback Ticket
VS2026 generates incorrect FP code Fedback Ticket
"Operation is not valid due to the current state of the object" when opening a file with an "unknown" extension Fedback Ticket
NoWarn in PackageReference is ignored since Visual Studio 18.3.0 Fedback Ticket
In some instances, Visual Studio 2026 not showing variable values on hover during debugging Feedback ticket
Bug fix in MSVC optimizer that causes bad assembly code generation
VisualCppTools. 4.50.35724 PdbCopy.Exe Arm64 Pdb Copy Crashes Fedback Ticket
Update MinGit and Git for Windows to handle new allowNTLMAuth setting

Version 18.3.3

Released on March 10, 2026.

Top bug fixes From the community
Bug fix in MSVC optimizer that causes bad assembly code generation
Security advisories addressed CVE Descritpion
.NET Denial of Service Vulnerability CVE-2026-26130 A denial of service vulnerability exists in ASP.NET Core due to uncontrolled resource consumption.
.NET Elevation of Privilege Vulnerability CVE-2026-26131 An elevation of privilege vulnerability exists in .NET due to improper authorization.
Visual Studio Information Disclosure Vulnerability CVE-2025-66413 An information disclosure vulnerability exists in MinGit due to NTLM hash leak to untrusted server.

Version 18.3.2

Released on February 24, 2026.

Top bug fixes From the community
Compiler optimization codegen causing access violation introduced with v145 toolset Feedback ticket
Bug fix in MSVC optimizer that causes bad assembly code generation

Version 18.3.1

Released on February 18, 2026.

Top bug fixes From the community
Fix for variable value on hover during debugging Feedback ticket
Fix to show missing linked .xaml files in solution explorer Feedback ticket
GitHub Copilot terminal steals the focus Feedback ticket
Add support for building and analyzing with Build Performance Agent for specific projects
Fix bug in the MSVC optimizer that causes bad assembly code generation

February Update 18.3.0

Released on February 10, 2026.

IDE

Perform certificate revocation checks

Visual Studio now alerts you if it detects digital certificate problems during network calls.

Visual Studio now checks digital certificates for network calls and lets you know if there's a problem.

If it finds an issue, you'll see a dialog with details about the certificate error. You can choose to cancel or continue the connection.

Certificate error dialog with cancel and proceed options

We recommend keeping this feature on, but you can turn it off in Tools → Options → Environment → Security → Certificates.

Settings dialog with option to disable certificate revocation checks

Compact spacing in Solution Explorer

The spacing between items in Solution Explorer can now be adjusted to suit your preferences for improved readability.

Visual Studio 2026 introduced extra spacing between items in Solution Explorer to enhance accessibility. It proves helpful when using the mouse since it reduces the chance of misclicks. However, we understand that some users prefer a more compact view to see more items at once.

To accommodate different preferences, Visual Studio now allows you to adjust the spacing between items in Solution Explorer. You can choose between the default spacing and a more compact option.

In the picture below, you can see the difference between the default spacing (on the left) and the compact spacing (on the right):

Solution Explorer Spacing

Go to Tools → Options → Environment → Visual Experience and enable the Use compact spacing in Solution Explorer option to switch to the compact view. After enabling this option, the changes will take effect immediately.

M365 Agents Toolkit

2 new templates onboarded to M365 Agents Toolkit.

We added a new Teams Collaborator Agent template to help you build agents that enhance collaboration in Microsoft Teams. These agents use the Teams SDK and secure RSC patterns to assist with daily work across Teams chats, channels, and meetings. They can summarize conversations, automate workflows, extract tasks, answer questions, and boost productivity right where your team collaborates. The template includes ready-to-use scaffolding and best practices to help your team stay organized and productive.

Teams Collaborator Agent template in Visual Studio

We also added a Travel Agent template that demonstrates how to build an intelligent travel assistant. The agent answers travel-related questions, helps users understand company travel policies, and finds flights and hotels that comply with organizational guidelines. You can find these new samples in View Samples from the ATK menu.

The Travel Agent uses Azure OpenAI and the Microsoft 365 Retrieval API to access company travel documents and policies stored in SharePoint or OneDrive for Business, providing contextual and policy-compliant travel recommendations directly within Microsoft Teams.

Travel Agent template in Visual Studio

Productivity

Fast scrolling 📣

You can now scroll faster by holding the Alt key while scrolling the mouse wheel.

Scrolling through large files is now faster and easier. Hold down the Alt key while scrolling the mouse wheel to move quickly when reviewing code or reading documentation.

You can adjust the fast scrolling speed in Tools → Options → Text Editor → Advanced → Touchpad and mouse wheel scrolling sensitivity.

Editor window with Alt key held down, showing fast scrolling in a large file

This feature helps you jump to the section you need without lots of scrolling. Try it out!

Thank you Aymen Hamadi for suggesting this feature and to everyone who voted for it!

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

Hide symbols under files 📣

You can now disable the display of symbols under files in the Solution Explorer.

Solution Explorer used to show symbols - like classes, methods, and properties - under files to help you navigate your code. Some users found this cluttered the view, since every file had an expander icon like folders and projects. Now, you can turn this off for a cleaner look.

Here's how symbols appeared before:

Solution Explorer with symbols under files

To hide symbols under files, go to Tools → Options → Projects and Solutions → General and uncheck Show symbols under Solution Explorer files. Solution Explorer will then only show files, without extra symbols:

Solution Explorer with only files shown

Thank you Escalante Adriano for suggesting this feature and to everyone who voted for it!

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

New markdown preview features 📣

View preview-only and zoom in/out the preview content in the Visual Studio Markdown editor.

Visual Studio Markdown editor gives you more control over the preview.

  • You can switch between preview modes: Split Preview shows the editor and preview side by side, Open Preview shows only the preview, and Edit Markdown shows just the editor. The preview-only mode helps you focus on rendered content, especially for large images or complex Mermaid diagrams.
  • When previewing a Mermaid diagram, use the zoom controls in the top left corner to zoom in or out. This makes it easier to view large diagrams and see details.

Markdown preview controls showing split, preview-only, and zoom options

Try out these new controls and let us know what you think!

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

Insignificant line compression

Enable syntactic line compression to make better use of your screen's vertical real estate.

Syntactic line compression gives you more vertical space in the editor. Lines without letters or numbers compress by 25%, letting you see more code at once without hurting readability. Regular lines stay the same height. In the image below, the right side shows compression enabled - notice how you can see more lines in the same space compared to the left side.

Comparison showing syntactic line compression on the left with more visible code lines versus normal view on the right

Enable this feature in Tools → Options → Text Editor → Advanced by checking Compress blank lines and Compress lines that do not have any alphanumeric characters. This popular feature from Productivity Power Tools is now built into Visual Studio.

Middle-click scroll 📣

Press down on your scroll wheel and move the mouse to quickly scroll through your document.

You can now unlock the full potential of the middle mouse button for faster navigation. Press down on your scroll wheel and move the mouse to quickly scroll through your document. This makes it easier to explore large files without relying on traditional scroll bars or repeated wheel scrolling.

A cursor with four directional arrows indicating middle-click scrolling is active in the code editor

This feature is off by default in 18.3 Insiders 2 and needs to be enabled via Tools → Options → Text Editor → Advanced → Middle click to scroll. Give it a try and share your feedback with us!

Thank you to everyone who voted for this feature!

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

Slimmer left margin in editor 📣

Reduce the space of left margin by cutting down the space occupied by Quick Actions icon.

The left margin in the code editor is now slimmer, giving you more horizontal space for your code. We've moved the Quick Actions icon (lightbulb or screwdriver) from the margin into the editor, where it appears inline with your code when fixes or refactorings are available.

Lightbulb icon appearing inline with code instead of in the left margin Left: Slimmer left margin with inline Quick Actions icon, Right: Previous margin

To try out the experience now, go to Tools → Options → Text Editor → Advanced and check Show Quick Actions icon inside the editor.

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

GitHub Copilot

Enterprise level MCP governance

Easily safeguard your data with enhanced MCP governance features.

MCP server usage in Visual Studio now respects allowlist policies set through GitHub. Admins can specify which MCP servers are allowed within their organizations.

When an allowlist is configured, you can only connect to approved MCP servers. If you try to connect to an unauthorized server, you'll see an error message explaining the server isn't allowed.

This helps organizations control which MCP servers process sensitive data and maintain compliance with security policies.

NuGet MCP Server

Provides a way of updating packages with known vulnerabilities and can retrieve real-time information about packages for GitHub Copilot.

The NuGet MCP server is built-in but must be enabled once in order to use its functionality. For more information, see the documentation on NuGet MCP server.

Getting Started

To enable the NuGet MCP server, follow these steps within Visual Studio 2026:

  1. Open the GitHub Copilot Chat window and make sure you are signed in.
  2. Click the tools icon in the bottom toolbar to bring up the Tools menu.
  3. Find the MCP server named "nuget" and check the box to enable it.

Find the MCP server named "nuget" and check the box to enable it.

Fixing package vulnerabilities

The NuGet MCP server can help you identify and fix package vulnerabilities in your project. To use the MCP server to fix vulnerabilities, enter the following prompt in the GitHub Copilot Chat window:

Fix my package vulnerabilities

The MCP server will analyze your project's dependencies and suggest updates to packages that have known vulnerabilities.

Updating all packages

The NuGet MCP server can also update your packages to the latest compatible versions. To use the MCP server to update all packages, enter the following prompt in the GitHub Copilot Chat window:

Update all my packages to the latest compatible versions

The MCP server will analyze your project's target framework(s) and suggest updates to the latest version of packages that are compatible with your project.

Update a package to a specific version

The NuGet MCP server can update a specific package to a version you specify. To do so, enter the following prompt in the GitHub Copilot Chat window:

Update the package [PackageName] to version [VersionNumber]

Support

If you experience an issue with the NuGet MCP server or have any other feedback, please open an issue on the NuGet GitHub repository. Please provide the requested information in the issue template so that we can better understand and address your issue or suggestion.

Preview markdown from Copilot Chat

Preview any markdown content generated by Copilot Chat directly in the Visual Studio Markdown editor.

You can now preview any markdown content generated by Copilot Chat directly in the Visual Studio Markdown editor. Previously, this feature was only available for Mermaid diagrams.

Preview button in the Active Document window

When Copilot Chat generates markdown content, click the Preview button at the top right corner of the chat window to see a rendered preview. From there, you can edit and save the markdown content as needed. This lets you quickly visualize and work on markdown files without manually copying and pasting.

Click to accept code completions

Accept code completions up to your cursor position with a single click.

Have you ever wanted to accept a code completion partially with a single click? With the new Click to Accept feature, you can click into a code completion suggestion to accept it up to the cursor position. When you hover over a code completion, the segment will be highlighted as you move your mouse cursor over them to indicate it will be accepted.

Click to accept a completion

This feature gives you more control over how much of a completion you want to accept, making it easier to integrate suggestions into your code. If you prefer using the keyboard, you can still press Ctrl+Right Arrow to accept one word at a time, or Ctrl+Down Arrow to accept one line at a time.

Try out the Click to Accept feature and share your feedback with us.

Colorized code completions

Code completions are now colorized with syntax highlighting to enhance readability.

Code completions from GitHub Copilot or IntelliCode are now colorized with syntax highlighting to help you quickly parse suggested code. Previously, completions appeared in a single color, making it harder to distinguish between variables, functions, and other code elements. To try out the colorization now, you can go to Tools → Options → Text Editor → Code Completions and check Use colorized text for code completions.

Colorized code completions showing syntax highlighting with different colors for variables, functions, and other code elements

To differentiate suggestions from actual code, colorized completions use lower opacity and italic styling. You can further customize the styling by going to Tools → Options → Environment → Fonts and Colors and modifying the Code Completion item.

Let us know what you think about the colorization!

Copilot memories updates 📣

Make Copilot custom to you by teaching it your coding standards and best practices - creating consistency that lasts across sessions!

Teach Copilot your coding standards and project best practices with memories. Once saved, Copilot consistently applies your preferences across all chat sessions, making it truly project-aware.

Preference detected notification showing options to save memories to user or repo level instructions

How Copilot memories work

Memories intelligently detect your preferences as you chat. When you correct Copilot's behavior, specify a standard, or ask it to remember something, you'll see a confirmation prompt. Choose to save the preference to your personal instructions (%USERPROFILE%/copilot-instructions.md) or your repo instructions (/.github/copilot-instructions.md).

Every time you chat, you're teaching Copilot to respond better and documenting best practices for yourself and your team.

Thank you Peter Matthews for suggesting this feature and to everyone who voted for it!

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

Access custom prompts via slash commands

Quickly invoke your favorite custom prompts using slash commands in Copilot Chat.

You can now invoke your favorite custom prompts faster using slash commands in Copilot Chat. Instead of typing # and searching through all available references, type / and your custom prompts appear at the top of the IntelliSense list. Custom prompts are marked with a bookmark icon, while default system prompts have no icon and appear below.

IntelliSense list triggered by slash commands

We also added two new slash commands to help you create custom instructions and prompts:

  • /generateInstructions: Generate repo-level custom instructions for your project. Not sure how to write a custom instruction file for your repository? This command has you covered. It automatically generates a copilot-instructions.md file for your project using project context like coding style and preferences.
  • /savePrompt: Extract a reusable prompt from the current thread and save it to a prompt file. Use this command when you've typed a prompt you'd like to reuse so you can easily reference it via / commands later.

Give the new slash commands a try today and let us know what you think!

Debugging & diagnostics

DataTips in the IEnumerable Visualizer

Deep Object Inspection, Right in the IEnumerable Visualizer.

You can now use DataTips in the IEnumerable Visualizer to inspect objects while debugging. Hover over any cell in the grid to see the full object behind that value, using the same DataTip experience you get in the editor and Watch window.

Hovering over a grid cell reveals a DataTip with the complete object properties

This makes debugging collections of complex or nested types much easier. Whether you're working with a List of domain objects or a dictionary with structured values, a single hover reveals all the object's properties.

Analyze your call stack

One-click call stack analysis to understand your app's runtime state.

We're introducing Analyze Call Stack with Copilot to help answer a simple but critical debugging question: What is my thread or app doing right now? A new Analyze Call Stack button in the Call Stack window lets you send the current debug state to Copilot with one click, opening the chat window with an app state analysis. No guesswork.

Video showing Copilot analyzing a call stack and providing explanations for async execution state

Copilot understands both synchronous and asynchronous call stacks and annotates relevant frames. Whether your app is waiting on an async task or has broken during async execution, you can click the annotated frame to get a clear explanation of why execution is paused, what the thread is waiting on, and how it got there.

This turns the call stack from a static list of frames into an interactive debugging experience. Instead of manually reconstructing async flows, Copilot helps you quickly understand runtime behavior and get back to fixing the real problem.

Profiler agent with Unit Test support

Profiler Agent Expands to Unit Test Workflows.

We've expanded the Profiler Agent with unit test support. You can now validate performance improvements using your existing unit tests, making it easier to measure and optimize performance across more scenarios. The agent discovers relevant unit tests that exercise performance-critical code paths, in addition to BenchmarkDotNet benchmarks.

When no suitable tests or benchmarks exist, it automatically creates a lightweight measurement artifact to capture baseline metrics and compare results after optimization.

Visual Studio Profiler Agent running unit tests to measure performance

This unit test-first approach also enables Profiler Agent support for C++ scenarios, where benchmarks aren't always practical but unit tests already exist.

The Profiler Agent analyzes performance data, surfaces bottlenecks, generates or enhances unit tests or benchmarks, suggests targeted optimizations, and validates improvements in a guided loop. You get the full power of the Profiler Agent - now grounded in unit tests, applicable to more languages, and easier to adopt across your projects.

Desktop

WinForms Expert agent

The coding agent now includes special instructions for WinForms development, crafted by experts on the team.

The WinForms Expert agent is a comprehensive guide that helps you tackle the nuanced challenges of WinForms development. It covers several critical areas:

Designer code vs. regular code: WinForms projects have two distinct code contexts - designer-generated serialization code and modern business logic. The agent knows which C# features you can use in each context.

Modern .NET patterns: The agent is fully updated for .NET 8-10, including:

  • MVVM data binding patterns with the Community Toolkit.
  • Async/await patterns with the right InvokeAsync overloads.
  • Dark mode support and high-DPI awareness.
  • Nullable reference types (NRTs) in the right places.

Layout best practices: Get guidance on using TableLayoutPanel and FlowLayoutPanel for responsive, DPI-aware layouts that work across different screen sizes and scaling factors.

CodeDOM serialization management: Learn critical rules for property serialization in the WinForms designer, so you can avoid common pitfalls with [DefaultValue] attributes and ShouldSerialize*() methods.

Exception handling: Use proper patterns for async event handlers and application-level exception handling to prevent process crashes.

The agent's instructions are detailed, covering everything from control naming conventions to accessibility requirements. It's like having a senior WinForms architect review every line of your code.

.NET

NuGet audit sources

Visual Studio now supports audit sources for discovering package vulnerabilities with NuGet Audit.

Need to audit NuGet packages for vulnerabilities without using nuget.org as a package source? You can now configure separate audit sources.

Visual Studio now lets you configure audit sources for NuGet Audit. These sources discover package vulnerabilities independently from your package sources. For more information, see the documentation on audit sources.

NuGet Package Manager UI

The NuGet Package Manager UI displays vulnerabilities found from configured audit sources.

In this example, a private feed is used as the package source, but a known vulnerability is detected because an audit source is configured.

NuGet Package Manager showing a vulnerability detected from a configured audit source

Configure audit sources

To configure audit sources, navigate to Tools → Options → NuGet Package Manager → Sources.

Audit sources provide vulnerability data during restore without acting as package sources. If you don't configure any audit sources, NuGet Audit uses your package sources instead.

To set up an audit source, select Use separate sources for vulnerability audit. This displays a table for managing audit sources, similar to the package sources table.

NuGet Sources options showing the audit sources configuration table

To use nuget.org as an audit source, use the standard index URL: https://api.nuget.org/v3/index.json

Audit source configured with the nuget.org URL

Web Live Preview deprecation

Web Live Preview has been deprecated and removed.

We've deprecated and removed Web Live Preview from Visual Studio 2026. If you need to edit ASP.NET Web Forms, use the built-in Web Forms Designer.

For more info, see ASP.NET Web Forms Designer documentation.

Hot Reload improvements

Faster, more reliable Razor Hot Reload with auto-restart support for rude edits.

We've made several improvements to the Hot Reload experience in Visual Studio.

Improved Hot Reload performance & reliability for Razor files

Thanks to co-hosting the Razor compiler inside the Roslyn process, editing a .razor file during Hot Reload is much faster and more efficient (addressing prior feedback where Blazor Hot Reload could take tens of seconds). This change also increases overall reliability when using Hot Reload.

Fewer blocked edits (reduced 'rude edits')

We've expanded what code changes are allowed during Hot Reload. Several edits that previously triggered a rude edit (changes that require a rebuild and restart) are now applied seamlessly. Some examples of edits that are no longer a rude edit include:

  • Renaming a file
  • Editing code that has lambdas with default parameter values
  • Editing property accessors with the field keyword
Auto-restart on 'rude edits'

Hot Reload can now automatically restart the app's process when an unsupported change ('rude edit') is made, instead of ending the entire debug session.

To enable this, edit your project file to contain this property declaration.


    true

You can also set this in a Directory.Build.props file. This streamlined auto-restart kicks in for project types where a quick process restart is feasible (e.g. certain Aspire or web projects), so you can continue debugging with minimal interruption.

This is a process-based restart. If you are debugging 4 projects, only the changed project(s) (and any dependent project) will get rebuilt and restarted.

Razor editor improvements

Faster and smarter Razor editor in Visual Studio, cohosting boosts speed/reliability and much more.

Here's a list of notable improvements to the Razor editor:

Performance & Reliability (Cohosting)

The Razor compiler and tooling experience now runs cohosted inside Roslyn LSP server, greatly speeding up Razor file updates (e.g. Hot Reload changes apply much faster) and improving reliability during editing.

Simplify Tag Code Action (Community Contribution)

Added a new code fix to convert an empty component tag into a self-closing tag when no content or required child elements are present (contributed by Peter Juhasz). For example can be simplified to

Extract Style Block to .razor.css

You can now use a code action to extract an inline