<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Visual Studio | The .NET Blog</title><link>https://thedotnetblog.com/tags/visual-studio/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>en</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 14 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tags/visual-studio/index.xml" rel="self" type="application/rss+xml"/><item><title>Visual Studio 2026 April Update: Cloud Agent, Custom Agents, and Debugger Agent</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-april-update-cloud-agent-integration/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-april-update-cloud-agent-integration/</guid><description>Visual Studio 2026 (18.5) April update brings cloud agent integration, user-level custom agents, C++ code tools GA, and a Debugger Agent that validates fixes against live runtime behavior.</description><content:encoded>&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-april-update-cloud-agent-integration/"&gt;Visual Studio 2026 (18.5) April update&lt;/a&gt; ships cloud agent integration, user-level custom agents, C++ tools going GA, and a new Debugger Agent.&lt;/p&gt;
&lt;h2 id="cloud-agent-offload-work-to-a-remote-copilot-session"&gt;Cloud agent: offload work to a remote Copilot session&lt;/h2&gt;
&lt;p&gt;From the Chat window&amp;rsquo;s agent picker, selecting &lt;strong&gt;Cloud&lt;/strong&gt; lets you hand off a task to a remote Copilot coding agent. You describe the work, the agent creates a GitHub issue in your repo, then opens a PR when done. You get a notification with &amp;ldquo;View PR&amp;rdquo; / &amp;ldquo;Open in browser&amp;rdquo; — the whole thing runs while you keep coding, or even with the IDE closed.&lt;/p&gt;
&lt;h2 id="custom-agents-now-travel-with-you"&gt;Custom agents now travel with you&lt;/h2&gt;
&lt;p&gt;User-level custom agents stored in &lt;code&gt;%USERPROFILE%/.github/agents/&lt;/code&gt; are no longer repo-scoped — they follow you across projects. The storage path is configurable under Tools &amp;gt; Options &amp;gt; GitHub &amp;gt; Copilot &amp;gt; Chat. The &lt;code&gt;+&lt;/code&gt; button in the agent picker lets you create new agents directly. They get the same capabilities as repo-scoped agents: workspace awareness, tools, model selection, and MCP connections.&lt;/p&gt;
&lt;p&gt;Built-in agents: Agent, Ask, Copilot CLI, Debugger, Modernize, Profiler.&lt;/p&gt;
&lt;h2 id="c-code-editing-tools-go-ga"&gt;C++ Code Editing Tools go GA&lt;/h2&gt;
&lt;p&gt;Two tools — &lt;code&gt;get_symbol_call_hierarchy&lt;/code&gt; and &lt;code&gt;get_symbol_class_hierarchy&lt;/code&gt; — are now on by default. They give Copilot language-aware navigation of C++ codebases, covering inheritance hierarchies and function call chains. Enable via the Tools icon in Copilot Chat. Works best with tool-calling models.&lt;/p&gt;
&lt;h2 id="debugger-agent-fixes-validated-against-real-runtime-behavior"&gt;Debugger Agent: fixes validated against real runtime behavior&lt;/h2&gt;
&lt;p&gt;Start from a GitHub or Azure DevOps issue (or just a natural language description), switch to Debugger mode, and the agent:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Creates a minimal reproducer&lt;/li&gt;
&lt;li&gt;Generates failure hypotheses&lt;/li&gt;
&lt;li&gt;Instruments the app with tracepoints and conditional breakpoints&lt;/li&gt;
&lt;li&gt;Runs an actual debug session&lt;/li&gt;
&lt;li&gt;Analyzes live telemetry&lt;/li&gt;
&lt;li&gt;Suggests a precise fix&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You stay in the loop throughout — it&amp;rsquo;s interactive, not fully autonomous.&lt;/p&gt;
&lt;h2 id="intellisense-priority-fix"&gt;IntelliSense priority fix&lt;/h2&gt;
&lt;p&gt;VS now suppresses Copilot completions while the IntelliSense list is active. One suggestion at a time. This was a frequent friction point and it&amp;rsquo;s now on by default.&lt;/p&gt;
&lt;p&gt;Full release notes and download at &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-april-update-cloud-agent-integration/"&gt;devblogs.microsoft.com&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>SDK-Style Support for Extension Projects in Visual Studio</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/sdk-style-support-extension-projects-visual-studio/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/sdk-style-support-extension-projects-visual-studio/</guid><description>Visual Studio 18.5 brings officially supported SDK-style project format to VSSDK-based extensions, cutting build times by up to 75% and reducing project files to ~20 lines.</description><content:encoded>&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/sdk-style-support-for-extension-projects/"&gt;SDK-Style support for VSSDK-based extension projects&lt;/a&gt; is now officially in Visual Studio 18.5 — classic VSIX extension projects can ditch the old MPF-style &lt;code&gt;.csproj&lt;/code&gt; format.&lt;/p&gt;
&lt;h2 id="what-changes-in-the-project-file"&gt;What changes in the project file&lt;/h2&gt;
&lt;p&gt;The biggest visible change is how much smaller the project file gets. A typical VSSDK extension now looks like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;Project&lt;/span&gt; &lt;span class="na"&gt;Sdk=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Microsoft.NET.Sdk&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;PropertyGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;TargetFramework&amp;gt;&lt;/span&gt;net472&lt;span class="nt"&gt;&amp;lt;/TargetFramework&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;VSSDKBuildToolsAutoSetup&amp;gt;&lt;/span&gt;true&lt;span class="nt"&gt;&amp;lt;/VSSDKBuildToolsAutoSetup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;VsixDeployOnDebug&amp;gt;&lt;/span&gt;true&lt;span class="nt"&gt;&amp;lt;/VsixDeployOnDebug&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;GeneratePkgDefFile&amp;gt;&lt;/span&gt;true&lt;span class="nt"&gt;&amp;lt;/GeneratePkgDefFile&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/PropertyGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;ItemGroup&amp;gt;&amp;lt;ProjectCapability&lt;/span&gt; &lt;span class="na"&gt;Include=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CreateVsixContainer&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&amp;lt;/ItemGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;ItemGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;PackageReference&lt;/span&gt; &lt;span class="na"&gt;Include=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Microsoft.VisualStudio.SDK&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;Version=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;17.14.40265&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;ExcludeAssets=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;runtime&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;PackageReference&lt;/span&gt; &lt;span class="na"&gt;Include=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Microsoft.VSSDK.BuildTools&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;Version=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;18.5.38461&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/ItemGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/Project&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;VSSDKBuildToolsAutoSetup=true&lt;/code&gt; applies sensible defaults: &lt;code&gt;CreateVsixContainer=true&lt;/code&gt; and legacy &lt;code&gt;DeployExtension=false&lt;/code&gt;. That single property replaces a significant chunk of what previously had to be spelled out explicitly.&lt;/p&gt;
&lt;h2 id="build-time-improvements"&gt;Build time improvements&lt;/h2&gt;
&lt;p&gt;Fast Up-To-Date Check and incremental build support are included. For large solutions with small changes, this translates to &lt;strong&gt;up to 75% build time reduction&lt;/strong&gt; — meaningful if you&amp;rsquo;re iterating on an extension inside a large host solution.&lt;/p&gt;
&lt;h2 id="new-projects-vs-existing"&gt;New projects vs existing&lt;/h2&gt;
&lt;p&gt;New extension projects created in 18.5 automatically use SDK-style. Existing MPF-style extensions keep working — migration is opt-in. One thing to watch during migration: add &lt;code&gt;&amp;lt;UseWpf&amp;gt;true&amp;lt;/UseWpf&amp;gt;&lt;/code&gt; if your extension uses XAML. You also need to mark the extension as deployable in your &lt;code&gt;.sln&lt;/code&gt; or &lt;code&gt;.slnx&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;The vsixmanifest designer is replaced by the XML editor as the default — right-click → Open With if you want the old designer back.&lt;/p&gt;
&lt;h2 id="agentic-migration-path"&gt;Agentic migration path&lt;/h2&gt;
&lt;p&gt;The Modernize agent in &lt;a href="https://github.com/microsoft/vs-agent-plugins"&gt;vs-agent-plugins&lt;/a&gt; can automate the migration. Several real extensions have already been converted this way: Mads Kristensen&amp;rsquo;s Smart Screen, Command Explorer, Postfix Templates, and Whitespace Visualizer.&lt;/p&gt;
&lt;h2 id="worth-noting"&gt;Worth noting&lt;/h2&gt;
&lt;p&gt;VisualStudio.Extensibility (the newer extensibility framework) already supported SDK-style. This update brings parity to the classic VSSDK path. The only requirement is the Visual Studio extension development workload.&lt;/p&gt;
&lt;p&gt;Full details in the &lt;a href="https://devblogs.microsoft.com/visualstudio/sdk-style-support-for-extension-projects/"&gt;official post&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Tools Are Now Baked Into Visual Studio 2022 — No Extension Required</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</guid><description>Azure MCP tools ship as part of the Azure development workload in Visual Studio 2022. Over 230 tools, 45 Azure services, zero extensions to install.</description><content:encoded>&lt;p&gt;If you&amp;rsquo;ve been using the Azure MCP tools in Visual Studio through the separate extension, you know the drill — install the VSIX, restart, hope it doesn&amp;rsquo;t break, manage version mismatches. That friction is gone.&lt;/p&gt;
&lt;p&gt;Yun Jung Choi &lt;a href="https://devblogs.microsoft.com/visualstudio/azure-mcp-tools-now-ship-built-into-visual-studio-2022-no-extension-required/"&gt;announced&lt;/a&gt; that Azure MCP tools now ship directly as part of the Azure development workload in Visual Studio 2022. No extension. No VSIX. No restart dance.&lt;/p&gt;
&lt;h2 id="what-this-actually-means"&gt;What this actually means&lt;/h2&gt;
&lt;p&gt;Starting with Visual Studio 2022 version 17.14.30, the Azure MCP Server is bundled with the Azure development workload. If you already have that workload installed, you just need to toggle it on in GitHub Copilot Chat and you&amp;rsquo;re done.&lt;/p&gt;
&lt;p&gt;Over 230 tools across 45 Azure services — accessible directly from the chat window. List your storage accounts, deploy an ASP.NET Core app, diagnose App Service issues, query Log Analytics — all without opening a browser tab.&lt;/p&gt;
&lt;h2 id="why-this-matters-more-than-it-sounds"&gt;Why this matters more than it sounds&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s the thing about developer tooling: every extra step is friction, and friction kills adoption. Having MCP as a separate extension meant version mismatches, installation failures, and one more thing to keep updated. Baking it into the workload means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Single update path&lt;/strong&gt; through the Visual Studio Installer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No version drift&lt;/strong&gt; between the extension and the IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Always current&lt;/strong&gt; — the MCP Server updates with regular VS releases&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For teams standardizing on Azure, this is a big deal. You install the workload once, enable the tools, and they&amp;rsquo;re there for every session.&lt;/p&gt;
&lt;h2 id="what-you-can-do-with-it"&gt;What you can do with it&lt;/h2&gt;
&lt;p&gt;The tools cover the full development lifecycle through Copilot Chat:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Learn&lt;/strong&gt; — ask about Azure services, best practices, architecture patterns&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design &amp;amp; develop&lt;/strong&gt; — get service recommendations, configure app code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deploy&lt;/strong&gt; — provision resources and deploy directly from the IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Troubleshoot&lt;/strong&gt; — query logs, check resource health, diagnose production issues&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A quick example — type this in Copilot Chat:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;List my storage accounts in my current subscription.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Copilot calls the Azure MCP tools behind the scenes, queries your subscriptions, and returns a formatted list with names, locations, and SKUs. No portal needed.&lt;/p&gt;
&lt;h2 id="how-to-enable-it"&gt;How to enable it&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Update to Visual Studio 2022 &lt;strong&gt;17.14.30&lt;/strong&gt; or higher&lt;/li&gt;
&lt;li&gt;Make sure the &lt;strong&gt;Azure development&lt;/strong&gt; workload is installed&lt;/li&gt;
&lt;li&gt;Open GitHub Copilot Chat&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;Select tools&lt;/strong&gt; button (the two wrenches icon)&lt;/li&gt;
&lt;li&gt;Toggle &lt;strong&gt;Azure MCP Server&lt;/strong&gt; on&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&amp;rsquo;s it. It stays enabled across sessions.&lt;/p&gt;
&lt;h2 id="one-caveat"&gt;One caveat&lt;/h2&gt;
&lt;p&gt;The tools are disabled by default — you need to opt in. And VS 2026-specific tools aren&amp;rsquo;t available in VS 2022. Tool availability also depends on your Azure subscription permissions, same as the portal.&lt;/p&gt;
&lt;h2 id="the-bigger-picture"&gt;The bigger picture&lt;/h2&gt;
&lt;p&gt;This is part of a clear trend: MCP is becoming the standard way to surface cloud tools in developer IDEs. We&amp;rsquo;ve already seen the &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;Azure MCP Server 2.0 stable release&lt;/a&gt; and MCP integrations across VS Code and other editors. Having it built into Visual Studio&amp;rsquo;s workload system is the natural progression.&lt;/p&gt;
&lt;p&gt;For us .NET developers who live in Visual Studio, this removes yet another reason to context-switch to the Azure portal. And honestly, the less tab-switching, the better.&lt;/p&gt;</content:encoded></item><item><title>That Visual Studio Floating Windows Setting You Didn't Know About (But Should)</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</guid><description>A hidden Visual Studio setting gives you full control over floating windows — independent taskbar entries, proper multi-monitor behavior, and perfect FancyZones integration. One dropdown changes everything.</description><content:encoded>&lt;p&gt;If you use multiple monitors with Visual Studio (and honestly, who doesn&amp;rsquo;t these days), you&amp;rsquo;ve probably experienced the annoyance: floating tool windows disappear when you minimize the main IDE, they always stay on top of everything else, and they don&amp;rsquo;t show up as separate taskbar buttons. It works for some workflows, but for multi-monitor setups it&amp;rsquo;s frustrating.&lt;/p&gt;
&lt;p&gt;Mads Kristensen from the Visual Studio team &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;shared a little-known setting&lt;/a&gt; that completely changes how floating windows behave. One dropdown. That&amp;rsquo;s it.&lt;/p&gt;
&lt;h2 id="the-setting"&gt;The setting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Tools &amp;gt; Options &amp;gt; Environment &amp;gt; Windows &amp;gt; Floating Windows&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The dropdown &amp;ldquo;These floating windows are owned by the main window&amp;rdquo; has three options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;None&lt;/strong&gt; — full independence. Every floating window gets its own taskbar entry and behaves like a normal Windows window.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool Windows&lt;/strong&gt; (default) — documents float freely, tool windows stay tied to the IDE.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; — classic Visual Studio behavior, everything tied to the main window.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="why-none-is-the-move-for-multi-monitor-setups"&gt;Why &amp;ldquo;None&amp;rdquo; is the move for multi-monitor setups&lt;/h2&gt;
&lt;p&gt;Set it to &lt;strong&gt;None&lt;/strong&gt; and suddenly all your floating tool windows and documents behave like real Windows applications. They appear in the taskbar, stay visible when you minimize the main Visual Studio window, and stop forcing themselves to the front of everything.&lt;/p&gt;
&lt;p&gt;Combine this with &lt;strong&gt;PowerToys FancyZones&lt;/strong&gt; and it&amp;rsquo;s a game changer. Create custom layouts across your monitors, snap your Solution Explorer to one zone, debugger to another, and code files wherever you want. Everything stays put, everything is independently accessible, and your workspace feels organized instead of chaotic.&lt;/p&gt;
&lt;h2 id="quick-recommendations"&gt;Quick recommendations&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-monitor power users&lt;/strong&gt;: Set to &lt;strong&gt;None&lt;/strong&gt;, pair with FancyZones&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Occasional floaters&lt;/strong&gt;: &lt;strong&gt;Tool Windows&lt;/strong&gt; (default) is a solid middle ground&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traditional workflow&lt;/strong&gt;: &lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; keeps everything classic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pro tip: &lt;strong&gt;Ctrl + double-click&lt;/strong&gt; on any tool window title bar to instantly float or dock it. No restart needed after changing the setting.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s one of those &amp;ldquo;I can&amp;rsquo;t believe I didn&amp;rsquo;t know about this&amp;rdquo; settings. If floating windows in Visual Studio have ever annoyed you, go change this right now.&lt;/p&gt;
&lt;p&gt;Read the &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;full post&lt;/a&gt; for the details and screenshots.&lt;/p&gt;</content:encoded></item><item><title>Bookmark Studio Brings Slot-Based Navigation and Sharing to Visual Studio Bookmarks</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</guid><description>Mads Kristensen's new Bookmark Studio extension adds keyboard-driven slot navigation, a bookmark manager, colors, labels, and export/share capabilities to Visual Studio bookmarks.</description><content:encoded>&lt;p&gt;Bookmarks in Visual Studio have always been&amp;hellip; fine. You set one, you navigate to the next, you forget which bookmark is which. They work, but they&amp;rsquo;ve never been the kind of feature you&amp;rsquo;d call powerful.&lt;/p&gt;
&lt;p&gt;Mads Kristensen just &lt;a href="https://devblogs.microsoft.com/visualstudio/bookmark-studio-evolving-bookmarks-in-visual-studio/"&gt;released Bookmark Studio&lt;/a&gt;, an experimental extension that fills in exactly the gaps you&amp;rsquo;ve probably run into if you use bookmarks regularly.&lt;/p&gt;
&lt;h2 id="slot-based-navigation"&gt;Slot-based navigation&lt;/h2&gt;
&lt;p&gt;The core addition: bookmarks can now be assigned to slots 1–9 and jumped to directly with &lt;code&gt;Alt+Shift+1&lt;/code&gt; through &lt;code&gt;Alt+Shift+9&lt;/code&gt;. New bookmarks automatically get the next available slot, so in most cases, fast navigation works without any setup.&lt;/p&gt;
&lt;p&gt;This sounds simple, but it changes bookmarks from &amp;ldquo;I have some bookmarks somewhere&amp;rdquo; to &amp;ldquo;Slot 3 is my API controller, Slot 5 is the service layer, Slot 7 is the test.&amp;rdquo; That kind of spatial memory makes navigation nearly instant during focused work sessions.&lt;/p&gt;
&lt;h2 id="the-bookmark-manager"&gt;The Bookmark Manager&lt;/h2&gt;
&lt;p&gt;A new tool window shows all your bookmarks in one place with filtering by name, file, location, color, or slot. Double-click or keyboard-navigate to jump to any bookmark.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve ever had more than five or six bookmarks and lost track of which was which, this alone is worth installing the extension.&lt;/p&gt;
&lt;h2 id="organization-with-labels-colors-and-folders"&gt;Organization with labels, colors, and folders&lt;/h2&gt;
&lt;p&gt;Bookmarks can optionally have labels, colors, and be grouped into folders. None of it is required — your current bookmark workflow keeps working. But when you&amp;rsquo;re debugging a complex issue or exploring an unfamiliar codebase, being able to color-code and label your bookmarks adds useful context.&lt;/p&gt;
&lt;p&gt;All metadata is stored per solution, so your bookmark organization persists across sessions.&lt;/p&gt;
&lt;h2 id="export-and-share"&gt;Export and share&lt;/h2&gt;
&lt;p&gt;This is the feature I didn&amp;rsquo;t know I wanted. Bookmark Studio lets you export bookmarks as plain text, Markdown, or CSV. That means you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Include bookmark paths in pull request descriptions&lt;/li&gt;
&lt;li&gt;Share investigation breadcrumbs with teammates&lt;/li&gt;
&lt;li&gt;Move bookmark sets between repos or branches&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bookmarks stop being a solo navigation tool and start being a way to communicate &amp;ldquo;here&amp;rsquo;s the path through this code.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="bookmarks-that-track-code-movement"&gt;Bookmarks that track code movement&lt;/h2&gt;
&lt;p&gt;Bookmark Studio tracks bookmarks relative to the text they&amp;rsquo;re anchored to, so they don&amp;rsquo;t drift to wrong lines as you edit. If you&amp;rsquo;ve ever set bookmarks during a debugging session and had them all point to the wrong lines after a refactor — this fixes that.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Bookmark Studio doesn&amp;rsquo;t reinvent anything. It takes a feature that&amp;rsquo;s been &amp;ldquo;good enough&amp;rdquo; for years and makes it genuinely useful for focused development. Slot navigation, the Bookmark Manager, and export capabilities are the highlights.&lt;/p&gt;
&lt;p&gt;Grab it from the &lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BookmarkStudio"&gt;Visual Studio Marketplace&lt;/a&gt; and give it a try.&lt;/p&gt;</content:encoded></item><item><title>Visual Studio's March Update Lets You Build Custom Copilot Agents — and the find_symbol Tool Is a Big Deal</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</guid><description>Visual Studio's March 2026 update ships custom Copilot agents, reusable agent skills, a language-aware find_symbol tool, and Copilot-powered profiling from Test Explorer. Here's what matters.</description><content:encoded>&lt;p&gt;Visual Studio just got its most significant Copilot update yet. Mark Downie &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-march-update-build-your-own-custom-agents/"&gt;announced the March release&lt;/a&gt;, and the headline is custom agents — but honestly, the &lt;code&gt;find_symbol&lt;/code&gt; tool buried further down might be the feature that changes your workflow the most.&lt;/p&gt;
&lt;p&gt;Let me break down what&amp;rsquo;s actually here.&lt;/p&gt;
&lt;h2 id="custom-copilot-agents-in-your-repo"&gt;Custom Copilot agents in your repo&lt;/h2&gt;
&lt;p&gt;Want Copilot to follow your team&amp;rsquo;s coding standards, run your build pipeline, or query your internal docs? Now you can build exactly that.&lt;/p&gt;
&lt;p&gt;Custom agents are defined as &lt;code&gt;.agent.md&lt;/code&gt; files that you drop into &lt;code&gt;.github/agents/&lt;/code&gt; in your repository. Each agent gets full access to workspace awareness, code understanding, tools, your preferred model, and MCP connections to external services. They show up in the agent picker alongside the built-in agents.&lt;/p&gt;
&lt;p&gt;This is the same pattern VS Code has been supporting — and it&amp;rsquo;s great to see Visual Studio catch up. For teams that have already built agents for VS Code, your &lt;code&gt;.agent.md&lt;/code&gt; files should work across both IDEs (though tool names can vary, so test them).&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/github/awesome-copilot"&gt;awesome-copilot&lt;/a&gt; repo has community-contributed agent configurations you can use as starting points.&lt;/p&gt;
&lt;h2 id="agent-skills-reusable-instruction-packs"&gt;Agent skills: reusable instruction packs&lt;/h2&gt;
&lt;p&gt;Skills are automatically picked up from &lt;code&gt;.github/skills/&lt;/code&gt; in your repo or &lt;code&gt;~/.copilot/skills/&lt;/code&gt; in your profile. Each skill is a &lt;code&gt;SKILL.md&lt;/code&gt; file following the &lt;a href="https://agentskills.io/specification"&gt;Agent Skills specification&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Think of skills as modular expertise you can mix and match. You might have a skill for your API conventions, another for your testing patterns, and another for your deployment workflow. When a skill activates, it shows up in the chat so you know it&amp;rsquo;s being applied.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve been using skills in VS Code, they work the same way in Visual Studio now.&lt;/p&gt;
&lt;h2 id="find_symbol-language-aware-navigation-for-agents"&gt;find_symbol: language-aware navigation for agents&lt;/h2&gt;
&lt;p&gt;This is where things get really interesting. The new &lt;code&gt;find_symbol&lt;/code&gt; tool gives Copilot&amp;rsquo;s agent mode actual language-service-powered symbol navigation. Instead of searching your code as text, the agent can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find all references to a symbol across your project&lt;/li&gt;
&lt;li&gt;Access type information, declarations, and scope metadata&lt;/li&gt;
&lt;li&gt;Navigate call sites with full language awareness&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What this means in practice: when you ask Copilot to refactor a method or update a parameter signature across call sites, it can actually see your code&amp;rsquo;s structure. No more &amp;ldquo;the agent changed the method but missed three call sites&amp;rdquo; situations.&lt;/p&gt;
&lt;p&gt;Supported languages include C#, C++, Razor, TypeScript, and anything with a supported LSP extension. For .NET developers, this is a massive improvement — C# codebases with deep type hierarchies and interfaces benefit enormously from symbol-aware navigation.&lt;/p&gt;
&lt;h2 id="profile-tests-with-copilot"&gt;Profile tests with Copilot&lt;/h2&gt;
&lt;p&gt;There&amp;rsquo;s now a &lt;strong&gt;Profile with Copilot&lt;/strong&gt; command in the Test Explorer context menu. Select a test, click profile, and the Profiling Agent automatically runs it and analyzes performance — combining CPU usage and instrumentation data to deliver actionable insights.&lt;/p&gt;
&lt;p&gt;No more manually configuring profiler sessions, running the test, exporting results, and trying to read a flame graph. The agent does the analysis and tells you what&amp;rsquo;s slow and why. Currently .NET only, which makes sense given Visual Studio&amp;rsquo;s deep .NET diagnostics integration.&lt;/p&gt;
&lt;h2 id="perf-tips-during-live-debugging"&gt;Perf tips during live debugging&lt;/h2&gt;
&lt;p&gt;Performance optimization now happens while you debug, not after. As you step through code, Visual Studio shows execution time and performance signals inline. See a slow line? Click the Perf Tip and ask Copilot for optimization suggestions right there.&lt;/p&gt;
&lt;p&gt;The Profiling Agent captures runtime data automatically — elapsed time, CPU usage, memory behavior — and Copilot uses it to pinpoint hot spots. This keeps performance work as part of your debugging flow instead of a separate task you keep postponing.&lt;/p&gt;
&lt;h2 id="fix-nuget-vulnerabilities-from-solution-explorer"&gt;Fix NuGet vulnerabilities from Solution Explorer&lt;/h2&gt;
&lt;p&gt;When a vulnerability is detected in a NuGet package, you now see a notification with a &lt;strong&gt;Fix with GitHub Copilot&lt;/strong&gt; link directly in Solution Explorer. Click through and Copilot analyzes the vulnerability, recommends the right package updates, and implements them.&lt;/p&gt;
&lt;p&gt;For teams that struggle to keep dependencies up to date (which is basically everyone), this removes the friction of &amp;ldquo;I know there&amp;rsquo;s a vulnerability but figuring out the right update path is a project in itself.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Custom agents and skills are the headline, but &lt;code&gt;find_symbol&lt;/code&gt; is the sleeper hit — it fundamentally changes how accurate Copilot can be when refactoring .NET code. Combined with live profiling integration and vulnerability fixes, this update makes Visual Studio&amp;rsquo;s AI features feel genuinely practical rather than demo-ready.&lt;/p&gt;
&lt;p&gt;Download &lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio 2026 Insiders&lt;/a&gt; to try it all out.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.112: What .NET Developers Should Actually Care About</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/vscode-1-112-dotnet-developers/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/vscode-1-112-dotnet-developers/</guid><description>VS Code 1.112 just dropped and it's packed with agent upgrades, an integrated browser debugger, MCP sandboxing, and monorepo support. Here's what actually matters if you're building with .NET.</description><content:encoded>&lt;p&gt;VS Code 1.112 just landed, and honestly? This one hits different if you&amp;rsquo;re spending your days in .NET land. There&amp;rsquo;s a lot in the &lt;a href="https://code.visualstudio.com/updates/v1_112"&gt;official release notes&lt;/a&gt;, but let me save you some scrolling and focus on what actually matters for us.&lt;/p&gt;
&lt;h2 id="copilot-cli-just-got-way-more-useful"&gt;Copilot CLI just got way more useful&lt;/h2&gt;
&lt;p&gt;The big theme this release is &lt;strong&gt;agent autonomy&lt;/strong&gt; — giving Copilot more room to do its thing without you babysitting every step.&lt;/p&gt;
&lt;h3 id="message-steering-and-queueing"&gt;Message steering and queueing&lt;/h3&gt;
&lt;p&gt;You know that moment when Copilot CLI is halfway through a task and you realize you forgot to mention something? Before, you had to wait. Now you can just send messages while a request is still running — either to steer the current response or queue up follow-up instructions.&lt;/p&gt;
&lt;p&gt;This is huge for those longer &lt;code&gt;dotnet&lt;/code&gt; scaffolding tasks where you&amp;rsquo;re watching Copilot set up a project and think &amp;ldquo;oh wait, I also need MassTransit in there.&amp;rdquo;&lt;/p&gt;
&lt;h3 id="permission-levels"&gt;Permission levels&lt;/h3&gt;
&lt;p&gt;This is the one I&amp;rsquo;m most excited about. Copilot CLI sessions now support three permission levels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default Permissions&lt;/strong&gt; — the usual flow where tools ask for confirmation before running&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bypass Approvals&lt;/strong&gt; — auto-approves everything and retries on errors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autopilot&lt;/strong&gt; — goes fully autonomous: approves tools, answers its own questions, and keeps going until the task is done&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&amp;rsquo;re doing something like scaffolding a new ASP.NET Core API with Entity Framework, migrations, and a Docker setup — Autopilot mode means you describe what you want and go grab a coffee. It&amp;rsquo;ll figure it out.&lt;/p&gt;
&lt;p&gt;You can enable Autopilot with the &lt;code&gt;chat.autopilot.enabled&lt;/code&gt; setting.&lt;/p&gt;
&lt;h3 id="preview-changes-before-delegation"&gt;Preview changes before delegation&lt;/h3&gt;
&lt;p&gt;When you delegate a task to Copilot CLI, it creates a worktree. Before, if you had uncommitted changes, you had to check Source Control to see what would be affected. Now the Chat view shows pending changes right there before you decide whether to copy, move, or ignore them.&lt;/p&gt;
&lt;p&gt;Small thing, but it saves you from that &amp;ldquo;wait, what did I have staged?&amp;rdquo; moment.&lt;/p&gt;
&lt;h2 id="debug-web-apps-without-leaving-vs-code"&gt;Debug web apps without leaving VS Code&lt;/h2&gt;
&lt;p&gt;The integrated browser now supports &lt;strong&gt;full debugging&lt;/strong&gt;. You can set breakpoints, step through code, and inspect variables — all inside VS Code. No more switching to Edge DevTools.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a new &lt;code&gt;editor-browser&lt;/code&gt; debug type, and if you already have existing &lt;code&gt;msedge&lt;/code&gt; or &lt;code&gt;chrome&lt;/code&gt; launch configurations, migrating is as simple as changing the &lt;code&gt;type&lt;/code&gt; field in your &lt;code&gt;launch.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;editor-browser&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;request&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;launch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Debug Blazor App&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://localhost:5001&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For Blazor developers, this is a game changer. You&amp;rsquo;re already running &lt;code&gt;dotnet watch&lt;/code&gt; in the terminal — now your debugging stays in the same window too.&lt;/p&gt;
&lt;p&gt;The browser also got independent zoom levels (finally), proper right-click context menus, and the zoom is remembered per website.&lt;/p&gt;
&lt;h2 id="mcp-server-sandboxing"&gt;MCP server sandboxing&lt;/h2&gt;
&lt;p&gt;This one matters more than you might think. If you&amp;rsquo;re using MCP servers — maybe you&amp;rsquo;ve set up a custom one for your Azure resources or database queries — they&amp;rsquo;ve been running with the same permissions as your VS Code process. That means full access to your filesystem, network, everything.&lt;/p&gt;
&lt;p&gt;Now you can sandbox them. In your &lt;code&gt;mcp.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;servers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;my-azure-tools&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;node&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;./mcp-server.js&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;sandboxEnabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When a sandboxed server needs access to something it doesn&amp;rsquo;t have, VS Code prompts you to grant permission. Much better than the &amp;ldquo;hope nobody does anything weird&amp;rdquo; approach.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Sandboxing is available on macOS and Linux for now. Windows support is coming — remote scenarios like WSL do work though.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="monorepo-customizations-discovery"&gt;Monorepo customizations discovery&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re working in a monorepo (and let&amp;rsquo;s be honest, many enterprise .NET solutions end up as one), this solves a real pain point.&lt;/p&gt;
&lt;p&gt;Previously, if you opened a subfolder of your repo, VS Code wouldn&amp;rsquo;t find your &lt;code&gt;copilot-instructions.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;, or custom skills sitting at the repository root. Now with the &lt;code&gt;chat.useCustomizationsInParentRepositories&lt;/code&gt; setting, it walks up to the &lt;code&gt;.git&lt;/code&gt; root and discovers everything.&lt;/p&gt;
&lt;p&gt;This means your team can share agent instructions, prompt files, and custom tools across all projects in a monorepo without everyone having to open the root folder.&lt;/p&gt;
&lt;h2 id="troubleshoot-for-agent-debugging"&gt;/troubleshoot for agent debugging&lt;/h2&gt;
&lt;p&gt;Ever set up custom instructions or skills and wonder why they&amp;rsquo;re not being picked up? The new &lt;code&gt;/troubleshoot&lt;/code&gt; skill reads agent debug logs and tells you what happened — which tools were used or skipped, why instructions didn&amp;rsquo;t load, and what&amp;rsquo;s causing slow responses.&lt;/p&gt;
&lt;p&gt;Enable it with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;github.copilot.chat.agentDebugLog.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;github.copilot.chat.agentDebugLog.fileLogging.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then just type &lt;code&gt;/troubleshoot why is my custom skill not loading?&lt;/code&gt; in chat.&lt;/p&gt;
&lt;p&gt;You can also export and import these debug logs now, which is great for sharing with your team when something isn&amp;rsquo;t working as expected.&lt;/p&gt;
&lt;h2 id="image-and-binary-file-support"&gt;Image and binary file support&lt;/h2&gt;
&lt;p&gt;Agents can now read image files from disk and binary files natively. The binary files are presented in hexdump format, and image outputs (like screenshots from the integrated browser) show up in a carousel view.&lt;/p&gt;
&lt;p&gt;For .NET developers, think: paste a screenshot of a UI bug into chat and have the agent understand what&amp;rsquo;s wrong, or have it analyze the output of a Blazor component rendering.&lt;/p&gt;
&lt;h2 id="automatic-symbol-references"&gt;Automatic symbol references&lt;/h2&gt;
&lt;p&gt;Small quality-of-life improvement: when you copy a symbol name (a class, method, etc.) and paste it into chat, VS Code now automatically converts it to a &lt;code&gt;#sym:Name&lt;/code&gt; reference. This gives the agent full context about that symbol without you having to manually add it.&lt;/p&gt;
&lt;p&gt;If you want plain text instead, use &lt;code&gt;Ctrl+Shift+V&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="plugins-can-now-be-enableddisabled"&gt;Plugins can now be enabled/disabled&lt;/h2&gt;
&lt;p&gt;Previously, disabling an MCP server or plugin meant uninstalling it. Now you can toggle them on and off — both globally and per-workspace. Right-click in the Extensions view or the Customizations view and you&amp;rsquo;re done.&lt;/p&gt;
&lt;p&gt;Plugins from npm and pypi can also auto-update now, though they&amp;rsquo;ll ask for approval first since updates mean running new code on your machine.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;VS Code 1.112 is clearly pushing hard on the agent experience — more autonomy, better debugging, tighter security. For .NET developers, the integrated browser debugging and Copilot CLI improvements are the standout features.&lt;/p&gt;
&lt;p&gt;If you haven&amp;rsquo;t tried running a full Copilot CLI session in Autopilot mode for a .NET project yet, this release is a good time to start. Just remember to set your permissions and let it cook.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_112"&gt;Download VS Code 1.112&lt;/a&gt; or update from within VS Code via &lt;strong&gt;Help &amp;gt; Check for Updates&lt;/strong&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>