<?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>Tooling | The .NET Blog</title><link>https://thedotnetblog.com/ru/tags/tooling/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ru</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 26 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ru/tags/tooling/index.xml" rel="self" type="application/rss+xml"/><item><title>VS Code 1.112: что действительно важно для .NET-разработчиков</title><link>https://thedotnetblog.com/ru/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/ru/news/emiliano-montesdeoca/vscode-1-112-dotnet-developers/</guid><description>VS Code 1.112 только что вышел и наполнен обновлениями агентов, встроенным отладчиком браузера, песочницей MCP и поддержкой монорепозиториев. Вот что действительно важно для .NET-разработчиков.</description><content:encoded>&lt;p&gt;VS Code 1.112 только что приземлился, и честно? Этот релиз ощущается иначе, если вы проводите дни в мире .NET. В &lt;a href="https://code.visualstudio.com/updates/v1_112"&gt;официальных заметках о релизе&lt;/a&gt; много всего, но позвольте мне сэкономить вам время и сосредоточиться на том, что действительно важно для нас.&lt;/p&gt;
&lt;h2 id="copilot-cli-стал-намного-полезнее"&gt;Copilot CLI стал намного полезнее&lt;/h2&gt;
&lt;p&gt;Главная тема этого релиза — &lt;strong&gt;автономность агентов&lt;/strong&gt; — предоставление Copilot больше пространства для работы без того, чтобы вы контролировали каждый шаг.&lt;/p&gt;
&lt;h3 id="управление-сообщениями-и-очередь"&gt;Управление сообщениями и очередь&lt;/h3&gt;
&lt;p&gt;Знаете тот момент, когда Copilot CLI на полпути через задачу, и вы понимаете, что забыли что-то упомянуть? Раньше приходилось ждать. Теперь вы можете просто отправлять сообщения, пока запрос ещё обрабатывается — либо для корректировки текущего ответа, либо для постановки в очередь последующих инструкций.&lt;/p&gt;
&lt;p&gt;Это огромное улучшение для длинных задач генерации &lt;code&gt;dotnet&lt;/code&gt;, когда вы наблюдаете, как Copilot настраивает проект и думаете «ой, мне ещё нужен MassTransit туда».&lt;/p&gt;
&lt;h3 id="уровни-разрешений"&gt;Уровни разрешений&lt;/h3&gt;
&lt;p&gt;Вот что меня больше всего радует. Сессии Copilot CLI теперь поддерживают три уровня разрешений:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Стандартные разрешения&lt;/strong&gt; — обычный поток, где инструменты запрашивают подтверждение перед выполнением&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Пропуск подтверждений&lt;/strong&gt; — автоматически одобряет всё и повторяет при ошибках&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Автопилот&lt;/strong&gt; — полностью автономный режим: одобряет инструменты, сам отвечает на свои вопросы и продолжает до завершения задачи&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Если вы делаете что-то вроде создания нового ASP.NET Core API с Entity Framework, миграциями и Docker-настройкой — режим Автопилот означает, что вы описываете, что хотите, и идёте за кофе. Он разберётся.&lt;/p&gt;
&lt;p&gt;Включить Автопилот можно через настройку &lt;code&gt;chat.autopilot.enabled&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="предварительный-просмотр-изменений-перед-делегированием"&gt;Предварительный просмотр изменений перед делегированием&lt;/h3&gt;
&lt;p&gt;Когда вы делегируете задачу Copilot CLI, он создаёт worktree. Раньше, если у вас были незакоммиченные изменения, приходилось проверять Source Control, чтобы увидеть, что будет затронуто. Теперь представление Chat показывает ожидающие изменения прямо перед тем, как вы решите, копировать, переместить или проигнорировать их.&lt;/p&gt;
&lt;p&gt;Мелочь, но это спасает от того момента «подождите, что у меня было в staged?».&lt;/p&gt;
&lt;h2 id="отладка-веб-приложений-без-выхода-из-vs-code"&gt;Отладка веб-приложений без выхода из VS Code&lt;/h2&gt;
&lt;p&gt;Встроенный браузер теперь поддерживает &lt;strong&gt;полную отладку&lt;/strong&gt;. Вы можете ставить точки останова, пошагово проходить код и проверять переменные — всё внутри VS Code. Больше не нужно переключаться на Edge DevTools.&lt;/p&gt;
&lt;p&gt;Появился новый тип отладки &lt;code&gt;editor-browser&lt;/code&gt;, и если у вас уже есть конфигурации запуска для &lt;code&gt;msedge&lt;/code&gt; или &lt;code&gt;chrome&lt;/code&gt;, миграция так же проста, как изменение поля &lt;code&gt;type&lt;/code&gt; в вашем &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;Для Blazor-разработчиков это переломный момент. Вы уже запускаете &lt;code&gt;dotnet watch&lt;/code&gt; в терминале — теперь и отладка остаётся в том же окне.&lt;/p&gt;
&lt;p&gt;Браузер также получил независимые уровни масштабирования (наконец-то), правильные контекстные меню по правому клику, и масштаб сохраняется для каждого сайта.&lt;/p&gt;
&lt;h2 id="песочница-для-mcp-серверов"&gt;Песочница для MCP-серверов&lt;/h2&gt;
&lt;p&gt;Это важнее, чем может показаться. Если вы используете MCP-серверы — может быть, настроили пользовательский для ваших Azure-ресурсов или запросов к базе данных — они работали с теми же правами, что и ваш процесс VS Code. То есть полный доступ к файловой системе, сети, всему.&lt;/p&gt;
&lt;p&gt;Теперь их можно изолировать в песочнице. В вашем &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;Когда изолированному серверу нужен доступ к чему-то, чего у него нет, VS Code запрашивает разрешение. Гораздо лучше подхода «надеемся, никто не сделает ничего странного».&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; Песочница доступна на macOS и Linux на данный момент. Поддержка Windows на подходе — но удалённые сценарии вроде WSL уже работают.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="обнаружение-кастомизаций-в-монорепозиториях"&gt;Обнаружение кастомизаций в монорепозиториях&lt;/h2&gt;
&lt;p&gt;Если вы работаете в монорепозитории (и будем честны, многие корпоративные .NET-решения в итоге становятся таковыми), это решает реальную проблему.&lt;/p&gt;
&lt;p&gt;Раньше, если вы открывали подпапку вашего репозитория, VS Code не находил ваш &lt;code&gt;copilot-instructions.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt; или пользовательские скиллы, находящиеся в корне репозитория. Теперь с настройкой &lt;code&gt;chat.useCustomizationsInParentRepositories&lt;/code&gt; он поднимается до корня &lt;code&gt;.git&lt;/code&gt; и обнаруживает всё.&lt;/p&gt;
&lt;p&gt;Это означает, что ваша команда может делиться инструкциями для агентов, файлами промптов и пользовательскими инструментами между всеми проектами в монорепозитории, не требуя от каждого открывать корневую папку.&lt;/p&gt;
&lt;h2 id="troubleshoot-для-отладки-агентов"&gt;/troubleshoot для отладки агентов&lt;/h2&gt;
&lt;p&gt;Когда-нибудь настраивали пользовательские инструкции или скиллы и гадали, почему они не подхватываются? Новый скилл &lt;code&gt;/troubleshoot&lt;/code&gt; читает отладочные логи агента и сообщает, что произошло — какие инструменты были использованы или пропущены, почему инструкции не загрузились и что вызывает медленные ответы.&lt;/p&gt;
&lt;p&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;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;Затем просто введите &lt;code&gt;/troubleshoot почему мой пользовательский скилл не загружается?&lt;/code&gt; в чат.&lt;/p&gt;
&lt;p&gt;Теперь также можно экспортировать и импортировать эти отладочные логи, что отлично подходит для обмена с командой, когда что-то работает не так, как ожидалось.&lt;/p&gt;
&lt;h2 id="поддержка-изображений-и-бинарных-файлов"&gt;Поддержка изображений и бинарных файлов&lt;/h2&gt;
&lt;p&gt;Агенты теперь могут читать файлы изображений с диска и бинарные файлы нативно. Бинарные файлы представлены в формате hexdump, а выводы изображений (например, скриншоты из встроенного браузера) отображаются в карусельном виде.&lt;/p&gt;
&lt;p&gt;Для .NET-разработчиков подумайте: вставьте скриншот UI-бага в чат, и агент поймёт, что не так, или пусть он проанализирует вывод рендеринга компонента Blazor.&lt;/p&gt;
&lt;h2 id="автоматические-ссылки-на-символы"&gt;Автоматические ссылки на символы&lt;/h2&gt;
&lt;p&gt;Небольшое улучшение качества жизни: когда вы копируете имя символа (класс, метод и т.д.) и вставляете его в чат, VS Code теперь автоматически преобразует его в ссылку &lt;code&gt;#sym:Name&lt;/code&gt;. Это даёт агенту полный контекст об этом символе без необходимости вручную добавлять его.&lt;/p&gt;
&lt;p&gt;Если вам нужен обычный текст, используйте &lt;code&gt;Ctrl+Shift+V&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="плагины-теперь-можно-включатьотключать"&gt;Плагины теперь можно включать/отключать&lt;/h2&gt;
&lt;p&gt;Раньше отключение MCP-сервера или плагина означало его удаление. Теперь их можно переключать — как глобально, так и для каждого рабочего пространства. Правый клик в представлении Extensions или Customizations — и готово.&lt;/p&gt;
&lt;p&gt;Плагины из npm и pypi также могут автоматически обновляться, хотя сначала запросят подтверждение, поскольку обновления означают запуск нового кода на вашей машине.&lt;/p&gt;
&lt;h2 id="итог"&gt;Итог&lt;/h2&gt;
&lt;p&gt;VS Code 1.112 явно усиленно развивает агентный опыт — больше автономности, лучшая отладка, более строгая безопасность. Для .NET-разработчиков встроенная отладка браузера и улучшения Copilot CLI — это главные новшества.&lt;/p&gt;
&lt;p&gt;Если вы ещё не пробовали запустить полную сессию Copilot CLI в режиме Автопилот для .NET-проекта, этот релиз — хорошее время для начала. Просто не забудьте настроить разрешения и дайте ему поработать.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_112"&gt;Скачайте VS Code 1.112&lt;/a&gt; или обновите изнутри VS Code через &lt;strong&gt;Help &amp;gt; Check for Updates&lt;/strong&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>