Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Мы рады объявить о доступности обновления Visual Studio 2026 августа. Этот выпуск знаменует собой начало новой эпохи для Visual Studio с глубокой интеграцией платформы искусственного интеллекта, более строгими основами и повышением производительности.
Скачайте Visual Studio 2026, чтобы воспользоваться этими новыми функциями и улучшениями.
Версия 18.9.1
Выпущено 18 августа 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| диалоговое окно предварительного просмотра команд Copilot недоступно для прокрутки, блокировки разрешений или запрета действий | Запрос обратной связи |
| Исправление для тестового агента в версии 18.9.0 |
Обновление за август 18.9.0
Выпущено 11 августа 2026 г.
GitHub Copilot
Настройте уровень рассуждений модели в соответствии с вашей задачей
Выберите низкий, средний или высокий уровень усилий на обдумывание для поддерживаемых моделей, чтобы сбалансировать качество ответа и использование токенов.
Теперь есть возможность управлять объемом рассуждений модели при решении задачи. В Visual Studio 18.9 добавлены элементы управления уровнем мыслительных усилий поддерживаемых моделей, что позволяет выбирать низкий, средний или высокий уровень усилий в зависимости от задачи и бюджета токенов.
Как работает интенсивность мышления
Некоторые модели Copilot теперь поддерживают регулировку уровня мыслительных усилий:
- Низкий уровень. Быстрое предоставление ответов при минимальном объеме рассуждений. Лучше всего подходит для простых вопросов и предложений по коду. Используется меньше токенов.
- Средний уровень. Обеспечивается баланс между глубиной рассуждений и скоростью ответа. Лучше всего подходит для повседневных задач программирования.
- Высокий — использует более глубокий анализ для решения сложных задач. Лучше всего подходит для сложных алгоритмов, архитектурных решений и сложных в отладке проблем. Расходуется больше токенов.
Регулировать уровень мыслительных усилий можно непосредственно в меню выбора моделей или в развернутом представлении Управление моделями. Низкие уровни помогают оставаться в пределах бюджета токенов, получая при этом полезную поддержку для каждой задачи.
![]()
Просмотр изменений и фиксаций с помощью агента Git
Выявляйте проблемы до создания pull request.
Вам не нужно ждать пул-реквеста, чтобы получить свежий взгляд на ваш код. Попросите агента Git просматривать ваши изменения или коммиты в процессе работы.
Проверка незафиксированных изменений
Перейдите к агенту Git в Copilot Chat и попросите его просмотреть изменения. Агент просматривает ваши незафиксированные изменения и показывает комментарии прямо в редакторе. Представление Git Changes показывает список, по которому можно быстро переходить к каждому комментарию.
Вы также можете выбрать значок проверки Copilot в окне "Изменения Git", чтобы начать проверку.
![]()
Просмотреть коммит
Прикрепите коммит как контекст в Copilot Chat и попросите агента Git проверить его. Комментарии отображаются прямо в изменённых файлах в представлении конкретного коммита, отдельно от ваших рабочих файлов.
Вы также можете запустить проверку коммита непосредственно из инфопанели Git Changes после выполнения коммита или для любого коммита в окне Git Repository.
![]()
Когда вы запускаете проверку через Copilot Chat, продолжайте общение, чтобы глубже разобраться в результатах, получить пояснения или поработать над предложенными исправлениями. Проверки работают как с GitHub, так и с репозиториями Azure DevOps и используют службу проверки кода GitHub Copilot.
Пользовательские агенты на уровне организации
Владельцы организации GitHub теперь могут добавлять пользовательские агенты во всей своей организации.
Примечание. Для использования этой функции требуется организация GitHub.
Теперь вы можете делиться настраиваемыми агентами между репозиториями в вашей организации. Владельцы организаций и предприятий в GitHub могут добавлять пользовательских агентов, которыми смогут пользоваться все пользователи в организации. Это помогает участникам вашей команды работать согласованно и обеспечивает синхронизацию функционирования Copilot с рабочим процессом организации.
Если вы администратор, см. статью Подготовка к использованию пользовательских агентов в организации или Подготовка к использованию пользовательских агентов на предприятии.
Когда вы работаете с репозиториями в организации, Visual Studio автоматически обнаруживает пользовательских агентов на уровне организации и показывает их в меню выбора агентов. Наведите указатель мыши на агента, чтобы увидеть его описание и организацию-источник. Нажмите кнопку определения, чтобы открыть файл определения агента.
![]()
Настройте пользовательских агентов на уровне организации для поддержки рабочего процесса своей команды.
Доступ к данным об использовании Copilot
Перейдите к сведениям об использовании вашего плана Copilot из контекстного окна или меню значка — как вам удобнее.
Отслеживайте использование своего плана Copilot, не выходя из рабочего процесса. В Visual Studio 18.9 проверить использование плана можно непосредственно из контекстного окна.
Нажмите на кольцевую диаграмму в правом верхнем углу поля запроса для просмотра использования в контекстном окне, а затем нажмите кнопку, чтобы открыть сведения об использовании плана полностью.
![]()
Мы также усовершенствовали окно использования и уведомления, чтобы они стали понятнее и удобнее с точки зрения возможных вариантов действий. Вы будете знать, когда приближаетесь к своему лимиту и какие у вас есть варианты, чтобы продолжить.
Улучшенное управление моделью
Закрепляйте избранные модели, сворачивайте остальные и открывайте полный обзор управления со всеми сведениями о моделях и возможностями настройки.
Находить модели и управлять ими в Visual Studio 18.9 проще. Обновленное меню выбора моделей и новое представление для управления обеспечивают улучшенный контроль над моделями Copilot.
Улучшенное меню выбора моделей. Меню выбора быстрее сканируется и проще в использовании. Закрепляйте любимые модели, чтобы они оставались вверху, и сворачивайте модели, которыми вы редко пользуетесь, чтобы уменьшить беспорядок. Вы можете сосредоточиться на самых важных моделях.
![]()
Представление для управления моделями. Выберите Управление моделями в меню выбора, чтобы открыть развернутое представление со всеми сведениями и элементами управления.
- Просматривайте информацию о стоимости, возможностях и размерах контекстного окна каждой модели.
- Управляйте своими пользовательскими моделями и моделями Copilot в одной среде.
![]()
Средства работы с Git
Сводка с несколькими файлами 📣
Просмотр изменений файлов в едином диффе для быстрого понимания.
Сводное представление различий по нескольким файлам показывает все изменённые строки из нескольких файлов в едином представлении, чтобы вы могли быстро понять масштаб коммита или pull request, не переключаясь между файлами.
![]()
Кнопка Открыть сводку изменений доступна в нескольких местах:
- Изменения Git
- Сведения о фиксации в Git → Просмотр истории ветки
- Запросы на включение изменений в окне Вид → Репозиторий Git
Список запросов на включение в настоящее время доступен только в Visual Studio Insiders с предварительной функцией Просмотр запросов на включение для репозитория Git.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Поддержка подмодулы Git 📣
Управление подмодулами Git непосредственно в Visual Studio с помощью встроенной поддержки добавления, обновления, удаления и навигации.
Одна из самых востребованных функций Git — полноценная поддержка подмодулей — теперь доступна в Visual Studio 18.9, что позволяет управлять подмодулями, не выходя из интегрированной среды разработки.
Подмодули полностью интегрированы в интерфейс Git. Теперь вы получаете:
- выделенный раздел «Подмодули» в окне репозитория Git;
- Улучшенная видимость в разделе «Изменения Git».
- Средство выбора веток и репозиториев, показывающее иерархию родительских и дочерних репозиториев.
![]()
В разделе «Подмодули» можно добавлять, обновлять и удалять подмодули. Visual Studio также автоматически обнаруживает и активирует подмодули при открытии решения или папки, не отображая их в общем списке локальных репозиториев, чтобы не загромождать его.
![]()
По умолчанию подмодули доступны только для чтения. Если вы хотите работать в подмодуле, а не только использовать его, перейдите к разделу "Сервис" → параметры → системы управления версиями → Git, найдите автоматическую активацию нескольких репозиториев и выберите "Да", включите подмодулы.
Это первый этап эволюции данной функциональности; запланированы дополнительные усовершенствования, которые станут доступны в будущих выпусках.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Worktrees: работа над несколькими ветвями одновременно 📣
Создавайте, открывайте рабочие деревья Git и управляйте ими, чтобы одновременно работать с несколькими ветвями без использования stash и повторного клонирования.
Если вам когда-нибудь приходилось откладывать незавершённую работу, чтобы проверить другую ветку, рабочие каталоги позволяют пропустить этот шаг. Каждое рабочее дерево — это отдельный рабочий каталог для того же репозитория, поэтому ваша незавершённая работа остаётся нетронутой, пока вы работаете в другом месте.
В окне Репозиторий Git щелкните правой кнопкой мыши любую ветвь и выберите Создать рабочее дерево из, чтобы создать рабочее дерево. Можно начать с новой ветви или использовать выбранную. Вы также можете создать рабочее дерево из любого коммита в графе истории. Откройте его в текущем окне или новом экземпляре Visual Studio, чтобы работать одновременно в обеих ветвях.
![]()
Рабочие деревья отображаются рядом с вашими ветвями. Вы можете переключаться между ними в списке ветвей, меню выбора ветви или меню выбора репозитория. Когда закончите, щелкните правой кнопкой мыши рабочее дерево и выберите команду Удалить рабочее дерево для очистки.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Проверяйте коммиты с Copilot
Получите конфиденциальную проверку кода от Copilot для ваших коммитов.
Проверка кода Copilot уже дает обратную связь по незафиксированным изменениям. Теперь вы можете выполнить ту же проверку на зафиксированных изменениях.
Щелкните правой кнопкой мыши любую фиксацию в окне репозитория Git и выберите "Проверить фиксацию " для проверки этой фиксации. Выберите два коммита, чтобы просмотреть все изменения между ними.
![]()
Вы также можете сослаться на коммит в Copilot Chat и попросить агента Git проверить его.
![]()
Комментарии проверки Copilot отображаются непосредственно в изменённых файлах. Отдельный коммит открывается в окне Подробности коммита. В режиме просмотра Compare Commits открывается диапазон между двумя коммитами. Выберите любой комментарий, чтобы перейти непосредственно к коду.
![]()
Отзывы остаются локальными в сеансе Visual Studio и работают с репозиториями GitHub и Azure DevOps.
Чтобы включить эту функцию, перейдите в Сервис → Параметры → GitHub → Copilot → Интеграция с системой управления версиями и включите Проверять изменения Git локально и предлагать рекомендации на основе комментариев.
Сравнение файла с рабочим деревом 📣
Сравните более раннюю версию файла с текущими локальными изменениями.
Хотите узнать, как файл изменился с момента предыдущей фиксации? Теперь вы можете сравнить любую версию файла с текущим рабочим деревом.
В Обозреватель решений щелкните правой кнопкой мыши файл и выберите Git → просмотреть журнал. Затем в истории файла щелкните правой кнопкой мыши по коммиту и выберите Сравнить с рабочим деревом.
![]()
Visual Studio открывает дифф с версией фиксации слева и рабочей версией дерева справа. Все изменения можно просмотреть с момента фиксации, включая зафиксированные и незафиксированные изменения.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Обновления проверки PR — автодополнение и хронология 📣
Задайте для автоматического завершения запрос на вытягивание и просмотрите журнал обновлений в Visual Studio.
Мы продолжаем улучшать работу с запросами на включение изменений в Visual Studio.
![]()
- Автозавершение / автоматическое слияние: настройте pull request так, чтобы он завершался автоматически после получения всех необходимых одобрений и прохождения проверок политик.
- Обновление временной шкалы: просмотр журнала запросов на вытягивание push-уведомлений, голосов и других событий на вкладке "Обзор ".
Эти обновления работают с репозиториями GitHub и Azure DevOps.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
| Основные исправления ошибок | От сообщества |
|---|---|
| Исправления TypeScript 7.0 в VS. Это обновление устраняет проблемы, о которых сообщалось ранее, связанные с IntelliSense и автоматическим импортом, доступностью быстрых исправлений, навигацией и поиском по коду, всплывающими подсказками при наведении, результатами списка задач, диагностикой Vue и расширением выделения. Компиляция при сохранении по-прежнему остается известной проблемой при включенной службе Native Language. | |
| Щелчок правой кнопкой мыши по выбранному элементу в Обозревателе решений в решении C++ не открывает контекстное меню | Запрос обратной связи |
Версия 18.8.3
Выпущено 11 августа 2026 г.
| Устранены проблемы безопасности, указанные в рекомендациях | CVE | Описание |
|---|---|---|
| Уязвимость раскрытия информации в .NET | CVE-2026-62898 | Использование после бесплатного использования в Microsoft QUIC позволяет несанкционированным злоумышленнику раскрывать информацию по сети. |
| Уязвимость обхода функции безопасности .NET | CVE-2026-62899 | Несогласованная интерпретация HTTP-запросов (контрабанда HTTP-запросов и ответов) в .NET позволяет неавторизованному злоумышленнику обойти функцию безопасности по сети. |
| Уязвимость раскрытия информации в .NET | CVE-2026-62900 | Неправильное удаление конфиденциальной информации перед хранением или передачей в .NET позволяет несанкционированным злоумышленнику раскрывать информацию по сети. |
| уязвимость .NET к отказу в обслуживании | CVE-2026-62901 | Неконтролируемое потребление ресурсов в .NET позволяет несанкционированным злоумышленнику запретить службу через сеть. |
| Уязвимость повышения привилегий в .NET | CVE-2026-62886 | Целочисленное переполнение или обходное решение в .NET позволяет несанкционированным злоумышленникам повысить привилегии локально. |
| Уязвимость повышения привилегий в .NET | CVE-2026-62871 | Внеграничная запись в .NET позволяет неавторизованному злоумышленнику повысить привилегии локально. |
| Уязвимость удалённого выполнения кода в .NET Core | CVE-2026-70354 | Внеграничная запись кучи существует в WindowsDesktop.App DirectWriteForwarder.dll, когда XpsDocumentWriter.Write(String) обнаруживает 16-разрядную итераторную оболочку. |
| Уязвимость раскрытия информации в .NET | CVE-2026-62902 | Включение функциональных возможностей из ненадежной области управления в .NET позволяет несанкционированным злоумышленникам раскрывать информацию по сети. |
| уязвимость .NET удаленного выполнения кода | CVE-2026-62897 | Целочисленное переполнение или обходное решение в .NET Framework позволяет неавторизованному злоумышленнику локально выполнять код. |
| Уязвимость повышения привилегий в .NET | CVE-2026-62909 | Неправильное обработка исключительных условий в .NET позволяет авторизованному злоумышленнику повысить привилегии локально. |
| Уязвимость Git для Windows | CVE-2026-62960 | Это обновление безопасности обновляет Git для Windows и MinGit для устранения уязвимости CVE-2026-62960. |
Предстоящее удаление отдельного компонента Git for Windows в Windows 8.1
Git для Windows заканчивает поддержку Windows 8.1, поэтому Git для Windows отдельный компонент больше не будет доступен через установщик Visual Studio на Windows 8.1.
Это изменение влияет только на дополнительную установку Git на уровне системы. Функции Git, встроенные в Visual Studio, не затрагиваются. Если вы используете этот компонент, обновите поддерживаемую версию Windows, чтобы продолжить получение текущих обновлений и исправлений безопасности Git.
Версия 18.8.2
Выпущено 28 июля 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| При обновлении расширения не удаляется старая версия, в результате чего VS загружает обе копии | Запрос обратной связи |
Версия 18.8.1
Выпущено 22 июля 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| ASP.NET .NET Framework 4.8 шаблонов больше не предлагает представления и контроллеры | Запрос обратной связи |
Обновление 18.8.0 за июль
Выпущено 14 июля 2026 г.
GitHub Copilot
Встроенные .NET и Azure навыки
Откройте встроенные .NET и Azure навыки в Visual Studio, чтобы настроить рабочий процесс агента.
В Visual Studio теперь есть созданные специалистами из команд .NET и Azure встроенные навыки, которые помогут вам тщательнее настроить свой агентский рабочий процесс и эффективнее выполнять задачи разработки. Эти навыки доступны при установке соответствующих рабочих нагрузок .NET и Azure.
Вы можете найти навыки в категории «Встроенные» в окне выбора инструментов. Наведите курсор на каждый навык, чтобы увидеть его описание и путь к нему, и используйте меню с тремя точками, чтобы открыть навык или папку, где он находится.
![]()
Встроенные навыки в настоящее время по умолчанию отключены, поэтому вы можете просмотреть их и включить только те, которые подходят для ваших задач. Это даёт вам контролируемый способ получать помощь с пошаговыми указаниями, адаптированную к предметной области, прямо там, где вы работаете. Вы также можете узнать больше о навыках .NET и навыках Azure по ссылкам.
Отслеживание использования и оповещения Copilot
Будьте в курсе использования Copilot благодаря отслеживанию в режиме реального времени и оповещениям при приближении к лимитам.
GitHub Copilot недавно перешел на оплату на основе использования, поэтому использование Copilot теперь вычисляется на основе потребления токенов, а не по запросу (подробнее можно узнать в блоге GitHub).
Чтобы вы могли использовать Copilot в Visual Studio максимально эффективно, мы постоянно совершенствуем продукт, чтобы вы могли контролировать и оптимизировать свое использование Copilot. В рамках этой работы мы обновили окно использования Copilot и добавили упреждающие оповещения при приближении к лимитам.
Что нового
Обновленное окно "Использование Copilot" в Visual Studio дает более четкое представление о текущем использовании на основе новой модели выставления счетов, что упрощает отслеживание того, насколько интенсивно вы используете Copilot в процессе разработки. Метрики использования будут обновляться в реальном времени, чтобы вы могли выявлять закономерности и соответствующим образом планировать свою работу.
В любое время откройте окно сведений об использовании в меню значка Copilot → Использование Copilot.
![]()
Visual Studio также оповещает вас об использовании упреждающим образом, чтобы у вас было время на корректировку использования, прежде чем вы достигнете каких-либо лимитов.
Вы будете видеть оповещения, когда:
- Вы приближаетесь к своему лимиту использования
- Вы достигли своего лимита использования
- Вы активировали дополнительное использование (также называемое избытком) после достижения лимита использования
Время появления оповещения о приближении к лимиту использования можно настроить, скорректировав порог предупреждения в процентах от квоты в параметрах, то есть вы можете контролировать, насколько рано будет появляться оповещение.
Продолжение следует
Это только начало. Мы постоянно совершенствуем Visual Studio, чтобы оптимизировать использование вами Copilot и дать вам более четкое представление о том, как вы используете эту технологию. В ближайших выпусках вас ждет еще больше обновлений в различных областях продукта.
Поделитесь своим мнением
Нам интересно, что мы можем сделать, чтобы вам было проще разбираться в том, как вы используете Copilot. Поделитесь своими отзывами и предложениями с нами в Сообществе разработчиков.
Попробуйте новый агент (предварительная версия)
Переключитесь на более умного и менее многословного агента Copilot.
В Copilot Chat в Visual Studio появился новый пункт Агент (предварительная версия) в списке выбора агента, основанный на том же SDK GitHub Copilot, который используется в GitHub Copilot CLI. Агент чаще справляется с задачами с первой попытки, и для того, чтобы он не сбивался с курса, требуется меньше уточнений. Кроме того, ответы стали короче, и их легче быстро просматривать.
Как попробовать
- Откройте GitHub Copilot Chat.
- Щелкните меню выбора агента внизу окна.
- Выберите Агент (предварительная версия)
![]()
Используйте его для работы, которую вы уже делаете в Visual Studio: изменения функций, исправления ошибок, рефакторинг и тому подобные повседневные задачи.
Эта функция еще находится на этапе в предварительной версии, и нам хотелось бы получить ваши отзывы. Отправьте это через Справка → Отправить отзыв → Сообщить о проблеме.
Просмотреть выделенный код с Copilot
Получайте от Copilot целенаправленную обратную связь по проверке любого выбранного вами кода.
Иногда вам не нужен полный обзор кода, просто второе мнение по конкретному блоку кода. Выберите код в редакторе, щелкните правой кнопкой мыши и выберите Действия Copilot → Review Selection.
Copilot оставляет внутристрочные комментарии к выбранному фрагменту, которые можно просмотреть и применить. Используйте значок со звездочками в любом комментарии, чтобы применить предложенный вариант кода или, если его нет, попросить Copilot создать его для вас.
![]()
В основе этого лежит GitHub Copilot code review — тот же интерфейс, который вы видите при просмотре своих изменений в окне Git Changes перед коммитом.
Пользовательские инструкции на уровне организации
Владельцы организации теперь могут добавлять пользовательские инструкции, чтобы настраивать ответы Copilot для всей организации.
Note: Эта функция требует, чтобы репозиторий принадлежал GitHub организации.
GitHub владельцы организации теперь могут добавлять пользовательские инструкции для Copilot для адаптации ответов на конкретные потребности и предпочтения всей организации. Это особенно полезно для команд, которые хотят настроить правила для использования Copilot или иметь общие инструкции, от которых могут воспользоваться все участники команды. Сведения для администраторов организации, которые хотят настроить эти инструкции, см. в разделе Добавление пользовательских инструкций для организации. Обратите внимание, что пользовательские инструкции предназначены для настройки параметров и не подходят для применения политик.
При работе с репозиториями, принадлежащими вашей организации, автоматически применяются пользовательские инструкции на уровне организации. Эти инструкции можно просмотреть в списке ссылок во время взаимодействия с Copilot и щелкнуть ссылку, чтобы просмотреть полные инструкции.
![]()
Если вы предпочитаете не использовать инструкции уровня организации или не хотите избежать потенциальных конфликтов с инструкциями на уровне пользователя, вы можете отключить эту функцию. Перейдите к Tools → Options → GitHub → Copilot → Copilot Chat и снимите флажок Использовать пользовательские инструкции на уровне организации.
Средства работы с Git
Обновления запросов на включение изменений 📣
Ответьте на комментарии к PR и откройте страницу PR в отдельной вкладке.
Проверять pull request’ы стало проще и удобнее благодаря этим обновлениям.
- Реакции Emoji на комментарии: те же реакции, что доступны в веб-версии, поддерживаются и в GitHub, и в Azure DevOps.
![]()
- Открыть pull request в новой вкладке: нажмите Открыть в новой вкладке в заголовке pull request, чтобы открыть pull request в отдельной вкладке. Расположите её рядом с кодом, чтобы сделать макет проверки более гибким.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Подключить ветви к Copilot Chat
Спросите Copilot о любой ветке, прикрепив её в окне Git Repository.
Ветви присоединяются к коммитам, изменениям и PR как к контексту, который можно добавить в Copilot Chat. Щелкните правой кнопкой мыши любую ветвь в окне репозитория Git и выберите "Добавить в чат ", чтобы включить ее в беседу.
![]()
Например, попросите Copilot рассказать мне об этой ветке, чтобы получить краткое описание, прежде чем углубляться в код.
C++
Автообнаружение MSVC Build Tools во всех установках VS
Visual Studio теперь находит закреплённые версии набора инструментов в других установках, вместо того чтобы останавливаться на первом совпадающем наборе инструментов платформы в текущей установке.
Теперь вы можете включить автоматическое обнаружение средств сборки MSVC во всех установках Visual Studio IDE и Visual Studio Build Tools на вашем компьютере, что обеспечивает корректное разрешение закреплённого
VCToolsVersion, даже если он находится в другой установке.Ранее Visual Studio выполняла поиск в других установках подходящего набора инструментов только в том случае, если в текущей установке не было набора инструментов для целевой платформы. Например, если ваш проект был нацелен на
v143и в текущем экземпляре Visual Studio уже был установлен anyv143набор инструментов, поиск прекращался на этом, даже если вы явно закрепили определённыйVCToolsVersion, который существовал только в другой установке.Теперь Visual Studio продолжает искать в других установках, чтобы найти точную версию, которую вы закрепили, даже если другая версия того же набора инструментов платформы уже установлена локально.
Как включить
Установите для
EnableVCToolsVersionDiscoveryзначениеtrueв своем проекте илиDirectory.Build.props:<PropertyGroup> <EnableVCToolsVersionDiscovery>true</EnableVCToolsVersionDiscovery> <VCToolsVersion>14.43.34604</VCToolsVersion> </PropertyGroup>Почему это важно
- Закрепление версий фактически работает: указанный параметр
VCToolsVersionучитывается независимо от того, какая установка содержит ее, даже если текущая установка уже имеет тот же набор инструментов платформы в другой версии.- Создание воспроизводимости. Закрепление известной версии набора инструментов в команде, не беспокоясь о отдельных обновлениях интегрированной среды разработки, изменяющих поведение компилятора.
- Без ручного переопределения путей: ссылки на наборы инструментов между установками разрешаются автоматически, вместо того чтобы вам приходилось вручную прописывать
VCToolsInstallDir.
| Основные исправления ошибок | От сообщества |
|---|---|
| _statusfp, запланированная перед операциями с плавающей запятой | Запрос обратной связи |
| Исправляет проблему, которая приводила к некорректной генерации кода при разыменовании указателя на базирующийся указатель. | |
| Исправляет проблему с деклтипом переменных, захваченных значением в некоторых неизменяемых лямбда-файлах. | |
| IntelliSense для C++ в v145 помечает неразрешённые директивы include и ложные синтаксические ошибки | Запрос обратной связи |
| Visual Studio зависает при остановке отладчика на точке останова, достигнутой из окна Интерпретации | Запрос обратной связи |
Версия 18.7.4
Выпущено 14 июля 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Обновлено MinGit до версии 2.54.0.2 | |
| IntelliSense для C++ в v145 помечает неразрешённые директивы include и ложные синтаксические ошибки | Запрос обратной связи |
| Устранены проблемы безопасности, указанные в рекомендациях | CVE | Описание |
|---|---|---|
| Уязвимость повышения привилегий в .NET | CVE-2026-47300 | В обработчике проверки подлинности Negotiate в ASP.NET Core существует уязвимость повышения привилегий: LdapAdapter некорректно проверяет LDAP-запросы, что позволяет аутентифицированному злоумышленнику обходить проверки авторизации. |
| Уязвимость повышения привилегий в .NET | CVE-2026-47303 | В обработчике проверки подлинности Negotiate в ASP.NET Core обнаружена уязвимость повышения привилегий, при которой LdapAdapter путает идентификаторы CN и sAMAccountName, что позволяет прошедшему аутентификацию злоумышленнику выдать себя за другого пользователя. |
| уязвимость .NET к отказу в обслуживании | CVE-2026-47302 | Уязвимость типа "отказ в обслуживании" существует в .NET XML-обработке, где обработка EncryptedXml и синтаксический анализ повторяющихся атрибутов в XmlTextReader вызывают неконтролируемое потребление ресурсов. |
| Уязвимость обхода функции безопасности .NET | CVE-2026-47304 | Уязвимость обхода функции безопасности существует в реализации шифрования XML .NET (System.Security.Cryptography.Xml), что позволяет злоумышленнику создавать XML-подписи с помощью пустого HMAC и обхода защиты подписей. |
| уязвимость .NET к отказу в обслуживании | CVE-2026-50524 | В .NET существует уязвимость типа «отказ в обслуживании», при которой некорректно сформированные пакеты TLS во время согласования SslStream в System.Net.Security приводят к сбою приложения или к потере его отклика. |
| Уязвимость обхода функции безопасности .NET | CVE-2026-50528 | В .NET существует уязвимость, позволяющая обойти функцию безопасности: реализация System.Net.Security.SslStream игнорирует привязку канала, что позволяет злоумышленнику обходить проверки авторизации в ходе защищённой связи. |
| уязвимость .NET к отказу в обслуживании | CVE-2026-50525 | Уязвимость типа "отказ в обслуживании" существует в реализации шифрования XML .NET (System.Security.Cryptography.Xml), где созданная цепочка преобразования XML вызывает неконтролируемое потребление ресурсов. |
| уязвимость .NET к отказу в обслуживании | CVE-2026-50648 | Уязвимость типа "отказ в обслуживании" существует в реализации шифрования XML .NET (System.Security.Cryptography.Xml), где созданный зашифрованный XML вызывает неконтролируемое потребление ресурсов. |
| уязвимость .NET к отказу в обслуживании | CVE-2026-50527 | Уязвимость типа "отказ в обслуживании" существует в реализации шифрования XML .NET (System.Security.Cryptography.Xml), где неправильно проверенные входные данные приводят к переполнению буфера на основе стека. |
| .NET уязвимость к незаконному изменению | CVE-2026-50526 | В процессе сборки образов контейнеров в .NET SDK существует уязвимость, допускающая подмену: предсказуемое расположение кэша, доступное для записи всем пользователям, позволяет локальному злоумышленнику внедрять вредоносные двоичные объекты в образы контейнеров, собираемые другими пользователями на той же машине. |
| уязвимость .NET к отказу в обслуживании | CVE-2026-50651 | В .NET существует уязвимость типа «отказ в обслуживании», при которой злоумышленник может переполнить HTTP/2-подключения SocketsHttpHandler кадрами SETTINGS и PING ACK, что приводит к состоянию нехватки памяти в Http2Connection. |
| Уязвимость спуфинга .NET | CVE-2026-50659 | В клиенте SMTP .NET (System.Net.Mail) существует уязвимость подмены, при которой скрытая передача команд SMTP через последовательности CRLF, разделённые между буферами, позволяет внедрять произвольные почтовые команды. |
| уязвимость .NET удаленного выполнения кода | CVE-2026-50646 | Уязвимость удаленного выполнения кода существует в Windows Presentation Foundation (WPF) при анализе специально созданных входных данных XAML, что позволяет злоумышленнику выполнять произвольный код в контексте текущего пользователя. |
| уязвимость .NET удаленного выполнения кода | CVE-2026-50649 | Уязвимость удаленного выполнения кода существует в Windows Presentation Foundation (WPF) при анализе специально созданных входных данных XAML, что позволяет злоумышленнику выполнять произвольный код в контексте текущего пользователя. |
| Уязвимость повышения привилегий в .NET | CVE-2026-50650 | Уязвимость с повышением привилегий существует в Windows Presentation Foundation (WPF) при анализе специально созданных входных данных XAML, что позволяет злоумышленнику повысить привилегии в затронутой системе. |
| уязвимость удаленного выполнения кода Visual Studio | CVE-2026-47305 | В Visual Studio существует уязвимость удалённого выполнения кода, при которой обход механизма Mark-of-the-Web (MOTW) позволяет специально сформированному файлу .vcxproj с InitialTargets или PreBuildEvent выполнять команды проекта при открытии решения. |
Версия 18.7.3
Выпущено 30 июня 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| VSCopilot ChatError: Не удается найти экземпляр службы Microsoft.VisualStudio.Copilot.ICopilotInteractionService. | Запрос обратной связи |
| Окно Copilot Chat не инициализируется из-за NullReferenceException в ThreadsViewModel.AddThreadInternalAsync | Запрос обратной связи |
Версия 18.7.2
Выпущено 23 июня 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Исправлена проблема, из-за которой чат Copilot не открывался из-за исключения RemoteInvocationException | Запрос обратной связи |
| Исправлена регрессия в std::regex, из-за которой повторяющийся шаблон с проверкой lookahead вызывал исключение вместо корректной обработки. | Запрос обратной связи |
Версия 18.7.1
Выпущено 16 июня 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Устранение плохой контрастности текста подсказки в светлой теме | Запрос обратной связи |
| Исправлена проблема с некоторыми неоднозначными квалифицированными идентификаторами, для которых не выполнялась диагностика |
Обновление 18.7.0 июня
Выпущено 9 июня 2026 г.
Интегрированная среда разработки (IDE)
Цвет темыEdit 📣
Теперь вы можете легко изменять цвета темы оформления, чтобы настроить Visual Studio под себя. Измените цвета редактора, окон инструментов и многое другое, чтобы соответствовать вашим предпочтениям.
В Visual Studio теперь есть новая страница параметров Цвета темы, которая позволяет настраивать любой цветовой токен Fluent прямо в IDE — без необходимости устанавливать расширение. Настройки сохраняются для каждой темы, поэтому каждая тема сохраняет собственный набор настроек.
![]()
Что можно сделать
- Настраивайте любой маркер Fluent на лету - цвета акцента, состояния наведении указателя мыши, хром оболочки и многое другое. Найдите нужный маркер и выберите новый цвет.
- Сброс отдельного цвета — сбросьте отдельный токен, не сбрасывая все остальные пользовательские настройки.
- Настраивайте поверх любой темы — ваши переопределения применяются поверх выбранной темы.
- Новые маркеры для разделения заголовков оболочки и окна — позволяют предоставлять заголовки оболочки и вкладок разные цвета (удобно, если вы хотите более ретро-внешний вид).
Как добраться туда
Используйте новую команду меню " Изменить цвета темы " или откройте страницу " Среда → визуальный интерфейс" → цвета темы в параметрах.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Продуктивность
Цветные эмодзи
Visual Studio теперь отображает эмодзи в полном цвете в интегрированной среде разработки, делая комментарии кода, файлы markdown и беседы чата более экспрессивными.
Теперь Visual Studio отображает эмодзи в полном цвете во всей среде разработки. Независимо от того, документируете ли вы код с помощью полезных визуальных подсказок или общаетесь в чате, эмодзи теперь отображаются во всех цветах и деталях, а не в виде монохромных контуров.
Где вы увидите цветные эмодзи
Цветные эмодзи доступны в следующих местах:
- Пометки внутри кода - расставляйте графические индикаторы возле пунктов TODO, сигналов о проблемах либо названий секций
- Файлы Markdown — просматривайте и редактируйте документы Markdown с расширенной поддержкой эмодзи
- GitHub Copilot Chat — просматривайте цветные эмодзи в ответах чата и ваших вопросах
- Окна выходных данных - журнал сборки и протоколы теперь воспроизводят значки в полноцветном виде
- Обозреватель решений — эмодзи в именах файлов и элементах проекта теперь отображаются в цвете
![]()
Почему это важно
Цветные эмодзи облегчают визуальный обзор исходного текста и ускоряют поиск ключевых фрагментов. Красный значок ❌ в комментарии заметнее, чем серый контур, а зелёный значок ✅ даёт более понятный визуальный отклик. Казалось бы, незначительная доработка существенно повышает удобство восприятия исходного текста ‑ особенно при работе с обширными проектами, где наглядные пометки заметно ускоряют ориентирование.
Воспроизведение значков опирается на актуальные технологии работы со шрифтами, обеспечивая единообразный внешний вид независимо от используемой редакции Windows; в итоге картинка на вашем экране в точности соответствует той, которую наблюдают участники команды.
GitHub Copilot
Отслеживание использования Copilot и оповещения
Будьте в курсе использования Copilot благодаря отслеживанию в режиме реального времени и оповещениям при приближении к лимитам.
GitHub Copilot недавно перешел на оплату на основе использования, поэтому использование Copilot теперь вычисляется на основе потребления токенов, а не по запросу (подробнее можно узнать в блоге GitHub).
Чтобы вы могли использовать Copilot в Visual Studio максимально эффективно, мы постоянно совершенствуем продукт, чтобы вы могли контролировать и оптимизировать свое использование Copilot. В рамках этой работы мы обновили окно использования Copilot и добавили упреждающие оповещения при приближении к лимитам.
Что нового
Обновленное окно "Использование Copilot" в Visual Studio дает более четкое представление о текущем использовании на основе новой модели выставления счетов, что упрощает отслеживание того, насколько интенсивно вы используете Copilot в процессе разработки. Метрики использования будут обновляться в реальном времени, чтобы вы могли выявлять закономерности и соответствующим образом планировать свою работу.
В любое время откройте окно сведений об использовании в меню значка Copilot → Использование Copilot.
![]()
Visual Studio также оповещает вас об использовании упреждающим образом, чтобы у вас было время на корректировку использования, прежде чем вы достигнете каких-либо лимитов.
Вы будете видеть оповещения, когда:
- Вы приближаетесь к своему лимиту использования
- Вы достигли своего лимита использования
- Вы активировали дополнительное использование (также называемое избытком) после достижения лимита использования
Время появления оповещения о приближении к лимиту использования можно настроить, скорректировав порог предупреждения в процентах от квоты в параметрах, то есть вы можете контролировать, насколько рано будет появляться оповещение.
Продолжение следует
Это только начало. Мы постоянно совершенствуем Visual Studio, чтобы оптимизировать использование вами Copilot и дать вам более четкое представление о том, как вы используете эту технологию. В ближайших выпусках вас ждет еще больше обновлений в различных областях продукта.
Поделитесь своим мнением
Нам интересно, что мы можем сделать, чтобы вам было проще разбираться в том, как вы используете Copilot. Поделитесь своими отзывами и предложениями с нами в Сообществе разработчиков.
Предложения для следующего редактирования на большом расстоянии
GitHub Copilot теперь может предлагать изменения в любом месте файла, а не только рядом с курсором.
Предложения по следующим правкам (next edit suggestions, NES) в GitHub Copilot расширяют возможности завершений кода Copilot: Copilot не просто вставляет код в месте, где находится курсор, а предлагает правки для внесения поблизости, прогнозируя, что бы вы изменили дальше. Это отличное дополнение к завершениям кода, но область его действия была ограничена узким диапазоном вокруг текущей позиции курсора. На практике изменения, которые необходимо внести, часто находятся гораздо дальше в файле.
Теперь Copilot может предлагать правки в любом месте файла благодаря функции предложений следующих правок на большом расстоянии. Вместо того чтобы ограничиваться изменениями рядом с курсором, Copilot может прогнозировать и предлагать правки во всем файле, помогая поддерживать единообразие и вносить связанные изменения, даже если они далеко друг от друга.
![]()
Если вы хотите узнать больше о внутреннем устройстве предложений правок на расстоянии, прочитайте эту запись в блоге с подробным разбором обучения и оценки модели. В настоящее время эта функциональность по умолчанию отключена. Чтобы опробовать эту функцию, перейдите в раздел Инструменты → Параметры → Текстовый редактор → Встроенные подсказки и установите флажок Включить предложения расширенного диапазона. Опробуйте эту возможность и поделитесь с нами своими впечатлениями!
Проверка доверия для серверов MCP
Обнаруживает все изменения конфигураций и ресурсов сервера MCP и запрашивает повторное утверждение перед запуском.
Серверы MCP расширяют возможности Copilot, но обеспечивают их безопасность. Visual Studio теперь включает проверку доверия для серверов MCP, уровень безопасности, который определяет, когда конфигурация или ресурсы сервера изменились с момента последнего утверждения и предложит повторно утвердиться перед продолжением.
Принцип работы
Доверие проверяется в двух точках во время запуска сервера:
- Доверенная конфигурация - Перед запуском серверного процесса текущая конфигурация сервера сравнивается с ранее утверждённой эталонной конфигурацией. Если конфигурация изменилась, вам будет предложено подтвердить доверие в диалоговом окне.
- Доверие к ресурсам — после запуска сервера и загрузки его компонентов (инструментов, промптов, ресурсов, инструкций) их цифровой отпечаток сравнивается с последним доверенным отпечатком. Если ресурсы изменились, в диалоговом окне доверия показано, в чём заключаются расхождения между старой и новой версиями.
![]()
Решения доверия
При появлении запроса можно:
- Примите изменения — доверяет один раз и обновляет базовые показатели для будущих сравнений.
- Всегда доверять — для этого сервера запрос больше не появится.
- Отклонить изменения — прерывает запуск сервера и оставляет его в состоянии, отклоненном доверием. Доверие повторно проверяется при следующей попытке активации.
Серверы, к которым вы подключаетесь в первый раз, неявно доверенны при первой активации, диалог не отображается. Текущая конфигурация и отпечатки ресурсов сохраняются в качестве начального базового уровня для последующего обнаружения изменений.
Проверка доверия также автоматически пропускается, если сервер является встроенным, для реестра MCP задана политика RegistryOnly (то есть он заранее одобрен политикой организации), вы ранее выбрали для этого сервера вариант «всегда доверять» или отключили эту функцию.
Эта функция включена по умолчанию. Вы можете управлять им на Tools → параметры → GitHub → Copilot → Copilot Chat → диалоговое окно "Показать доверие" перед запуском инструментов с обновленного сервера MCP.
Средства работы с Git
Просматривайте и утверждайте запросы на включение изменений в IDE 📣
Просматривайте изменения в запросах на включение, оставляйте комментарии и утверждайте их, не покидая Visual Studio.
Получили пул-реквест на ревью или обратную связь, которую нужно обработать самостоятельно? Независимо от того, находится ли ваш репозиторий на GitHub или в Azure DevOps, вы можете работать с ним, не покидая Visual Studio.
Просмотр и открытие запросов на включение изменений
Выберите любой запрос на включение изменений, чтобы открыть встроенное представление просмотра, не переключаясь на ветку. Найдите запросы на вытягивание в окне Git Repository (View → Git Repository), Git Changes или Git → GitHub (или Azure DevOps) >Просмотреть запросы на вытягивание.
![]()
- Описание PR, изменённые файлы, коммиты, связанные элементы и рецензенты в одном представлении
- Переключение между активными PR без затрагивания вашей рабочей ветки
- Просмотр сведений о коммитах и изменений в отдельных коммитах в PR
Комментирование и обсуждение
Оставляйте отзывы прямо в режиме просмотра различий и продолжайте обсуждение, не переключаясь в браузер.
![]()
- Комментарии к конкретным строкам, ответы и завершение обсуждения
- Комментарии по каждому файлу, показанные в списке изменений
- В комментариях отображаются встроенные изображения и форматированный текст, как в браузере
Утверждение, завершение и слияние
Когда будете готовы, утвердите и завершите PR в Visual Studio. Действия для голосования и завершения доступны из любого представления, поэтому вы можете утверждать, просматривая изменения.
- Утвердите запрос на вытягивание, используя дополнительные варианты голосования в раскрывающемся списке Azure DevOps
- Просматривайте проверки статуса, конфликты слияния и обязательные одобрения на вкладке "Обзор"
- Завершите или объедините запрос на включение изменений с возможностью преобразовать его в черновик, отменить или закрыть
Вы можете настроить эту функцию в Инструменты → Параметры → Предварительные возможности:
- Комментарии к запросам на слияние
- Просмотреть запросы на включение изменений для репозитория Git
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Добавить PR-запросы в Copilot Chat
Прикрепите контекст pull request напрямую к Copilot Chat.
Copilot Chat уже знает о ваших коммитах и изменениях, а теперь вы тоже можете добавить pull-реквесты в обсуждение.
Щелкните правой кнопкой мыши pull request в окне Git Repository и выберите Add to Copilot Chat, чтобы добавить его контекст, включая описание PR, измененные файлы и комментарии. Вы также можете напрямую сослаться на запрос на включение изменений в поле ввода чата, набрав
#и идентификатор запроса на включение изменений.Например, попросите Copilot: «Подведи итоги по этому запросу на включение изменений», чтобы быстро получить общее представление без необходимости читать каждый файл.
![]()
Убедитесь, что Сервис → Параметры → Предварительные возможности → Просмотр запросов на включение для репозитория Git включен.
C++
Агент модернизации GitHub Copilot для C++
Сценарии обновления MSVC для модернизации GitHub Copilot завершили общедоступную предварительную версию и теперь общедоступны.
Агент модернизации GitHub Copilot — это инструмент на базе ИИ в Visual Studio, который помогает модернизировать и обновлять ваши приложения. Мы рады сообщить о том, что наши первые сценарии C++, которые помогают обновить проекты, чтобы использовать последнюю версию средств сборки Microsoft C++ (MSVC) завершили общедоступную предварительную версию и теперь общедоступны.
Оставаясь в курсе последних версий MSVC, вы получаете доступ к новым функциям, улучшениям производительности и обновлениям системы безопасности. Агент модернизации для C++ упрощает этот процесс, анализируя проект, выявляя проблемы совместимости и выполняя четкий план обновления, чтобы обеспечить плавное переход на последнюю версию MSVC. Вы можете запустить его в автоматизированном режиме, чтобы сократить усилия вручную или в интерактивном режиме, чтобы просмотреть и утвердить оценку, план и шаги выполнения.
Как приступить к работе
- В Visual Studio откройте проект C++, который компилируется с помощью MSVC.
- Запустите агент модернизации с помощью одного из следующих методов:
- Щелкните правой кнопкой мыши решение или проект в Обозреватель решений и выберите Modernize, or
- Откройте окно Copilot Chat и введите
@Modernizeсвой запрос на обновление.- Сообщите агенту
@Modernize, что вы хотите обновить до последней версии MSVC.
![]()
Благодаря многим пользователям, которые оценили агент модернизации GitHub Copilot на своих проектах C++ во время общедоступной предварительной версии! Ваши отзывы способствовали улучшению опыта, и мы рады продолжать строить эту основу для поддержки более сценариев модернизации C++ в будущем. Сообщите нам, что вы хотите увидеть дальше, поделившись своими предложениями и отзывами по адресу Сообщество разработчиков.
Поддержка PackageReference в проектах C++ 📣
C++ .vcxproj проекты теперь поддерживают экспериментальную поддержку NuGet PackageReference, как в командной строке, так и в Visual Studio IDE.
Теперь NuGet PackageReference поддерживается для проектов C++ Visual Studio (.vcxproj). Эта функция сейчас экспериментальна и отключена по умолчанию.
Чтобы включить эту возможность в проектах на C++, задайте для свойства
EnableNativePackageReferenceSupportзначениеtrueв группе свойств Globals вашего проекта или в файле Directory.Build.props. Затем можно добавить зависимостиPackageReferenceтак же, как и для своих проектов .NET.PackageReference позволяет ссылаться на пакеты NuGet непосредственно в файле проекта и автоматически восстанавливать и включать их в сборку. Это более современный способ управления зависимостями по сравнению с более старым подходом packages.config. Дополнительные сведения о PackageReference см. в документации NuGet о PackageReference и руководстве по миграции с packages.config на PackageReference.
Эта функция основана на существующей поддержке, добавленной для проектов C++/CLI, предназначенных для современных версий .NET.
Область и совместимость:
- Поддерживаются: проекты на собственном C++ (.vcxproj) и проекты C++/CLI, ориентированные на .NET Core или .NET 5+.
- Не поддерживается: проекты C++/CLI, предназначенные для .NET Framework. Для этих проектов можно продолжать использовать старый подход packages.config для зависимостей NuGet.
- Не поддерживается: проекты C++, ссылающиеся на проекты C++/CLI или проекты C#. Мы изучаем поддержку этого сценария в будущем обновлении. Тем временем можно воспользоваться одним из следующих обходных путей, чтобы PackageReference заработал:
- Установка
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>и<SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>для элемента<ProjectReference>позволит NuGet игнорировать его и избежать проблем с восстановлением и сборкой.- Задайте для
AssetTargetFallbackзначение, включающее целевые платформы, совместимые с подключенным проектом C#. Например:<PropertyGroup> <AssetTargetFallback>net472;net10.0</AssetTargetFallback> </PropertyGroup>.📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
| Основные исправления ошибок | От сообщества |
|---|---|
| Сбой компоновщика MSVC версии 14.51 в IncrCalcPtrs | Запрос обратной связи |
| Релизная сборка MSVC CL.exe приводит к внутренней ошибке компилятора в plutovg-font.c | Запрос обратной связи |
| CHPE /d2hybrid:emit_guest_references вызывает ICE | Запрос обратной связи |
| Исправлена проблема, из-за которой наименование VC Redistributable возвращалось к более старой версии. | |
| Исправление порядка содержимого в окне Copilot Chat после обновления VS |
Версия 18.6.3
Выпущено 9 июня 2026 г.
| Устранены проблемы безопасности, указанные в рекомендациях | CVE | Описание |
|---|---|---|
| Уязвимость к повреждению памяти SQLite | CVE-2025-6965 | Существует уязвимость в версиях SQLite до 3.50.2, где количество статистических терминов может превышать количество доступных столбцов. Это может привести к повреждению памяти. |
| уязвимость пакета SDK .NET для повышения привилегий | CVE-2026-45490 | dotnet.exe workload elevate — произвольное создание или усечение файла через именованный канал LogFile позволяет несанкционированному злоумышленнику локально повысить привилегии. |
| Уязвимость подмены в .NET Core | CVE-2026-45491 | Путем перехода по каналу Symlink в System.Formats.Tar при извлечении записей tar можно записывать произвольные файлы. |
| Уязвимость ASP.NET Core, связанная с отказом в обслуживании | CVE-2026-45591 | DoS-атака через переполнение стека из-за глубоко вложенных массивов MessagePack в SignalR и Blazor Server. |
Версия 18.6.2
Выпущено 27 мая 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Публикация через Web Deploy завершается ошибкой в Visual Studio Community 2026 Insiders для устаревшего проекта ASP.NET | Запрос обратной связи |
| Исправлена ошибка для агента Claude Opus 4.5: необработанное исключение в AskInConversationAsync: StreamJsonRpc.RemoteInvocationException: Недопустимые символы в пути | Запрос обратной связи |
| Устранение сбоев сборки для компилятора — макросы с вложенными скобками внутри VA_OPT неправильно материализованы при импорте из единицы заголовка |
Версия 18.6.1
Выпущено 20 мая 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Arm64: не удается задать точки останова vs2026 | Запрос обратной связи |
Обновление 18.6.0 за май
Выпущено 12 мая 2026 г.
Интегрированная среда разработки (IDE)
Системные тёмная/светлая темы 📣
Автоматически переключать темы Visual Studio при переходе системы между светлым и тёмным режимами, чтобы ваша IDE оставалась в синхронизации с окружением.
Вы можете предпочесть светлую, более контрастную тему в течение дня и темную тему ночью. Visual Studio теперь автоматически переключается между выбранными светлыми и темными темами при изменении системных параметров, сохраняя интегрированную среду в синхронизации с вашей средой.
Как использовать его
- Откройте Инструменты → Параметры → Среда → Визуальный интерфейс
- Настройка цветовой темы для использования системного параметра
- Выбор темы "Свет системы" и "Темная тема системы"
При смене темы Windows среда Visual Studio автоматически применяет соответствующую тему.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
GitHub Copilot
Просмотр и управление навыками агента
Просматривайте, редактируйте и находите все навыки агента Copilot в окне чата.
Теперь вы можете просмотреть все навыки агента в одном месте. Щелкнув значок инструментов в правом нижнем углу окна чата, вы можете открыть выделенную панель навыков, которая перечисляет все навыки, обнаруженные из рабочей области и профиля пользователя, что упрощает просмотр доступных на первый взгляд.
На панели вы можете управлять навыками напрямую, не покидая Visual Studio:
- Изменение навыка — щелкните меню с тремя точками (⋯) для любого навыка, чтобы открыть и изменить его непосредственно в VS.
- Открыть местоположение файла — используйте то же меню, чтобы перейти прямо к файлу навыка на диске.
- Поиск навыка — используйте панель поиска в верхней части, чтобы быстро найти определенный навык по имени или ключевому слову.
![]()
Это основывается на поддержке навыков агента, представленной ранее, что дает вам более удобный способ просмотра и поддержания навыков. Попробуйте и поделитесь своими отзывами!
Сводная разница по нескольким файлам для изменений в Copilot
Просматривайте все изменения Copilot в нескольких файлах в едином сводном представлении с детальными функциями принятия и отмены.
Когда Copilot редактирует несколько файлов, вам больше не нужно просматривать каждый из них отдельно. В новом представлении сводки diff с несколькими файлами отображаются все изменения в одном месте.
Нажмите кнопку Открыть сводку изменений в рабочем наборе Copilot Chat после того как Copilot завершит редактирование. Вы увидите одну вкладку со всеми измененными файлами и их диффами вместе.
![]()
Вы можете принять или отменить изменения на разных уровнях:
- Во всех файлах одновременно
- На основе каждого отдельного файла
- Для каждого отдельного фрагмента диффа
Вы также можете открыть любой файл отдельно, чтобы просмотреть его полный контекст.
![]()
Используйте элементы управления в левом верхнем углу, чтобы:
- Свернуть все содержимое файла , чтобы просмотреть только заголовки файлов для быстрого обзора
- Перемещение между блоками диффа с помощью кнопок «следующий» и «предыдущий» для быстрого просмотра изменений
Это представление упрощает понимание того, что изменил Copilot в вашей кодовой базе, и дает вам точный контроль над тем, какие изменения сохранить.
Индикатор окна контекста
Посмотрите, сколько контекста использует Copilot, и оптимизируйте его с помощью функции суммирования одним щелчком.
При чате с Copilot он отслеживает журнал беседы, вложенные файлы и другие контексты, чтобы дать вам соответствующие ответы. Это называется окном контекста и имеет ограничение. После заполнения Copilot может перестать отслеживать предыдущие части беседы.
Теперь вы можете точно увидеть, сколько пространства из окна контекста вы использовали с новым индикатором.
Найдите значок кольца в правом верхнем углу окна запроса Copilot Chat. Эта мини-кольцевая диаграмма заполняется по мере роста беседы, показывая вам на первый взгляд, сколько контекста вы использовали.
Щелкните индикатор, чтобы увидеть:
- Точный процент используемого контекста
- Подробное описание того, что способствует контексту
- Кнопка "Сжать беседу" для упрощения беседы и освобождения места
![]()
При низком уровне контекста нажмите кнопку "Сводка ", чтобы сжать предыдущие части беседы. Это позволяет сохранять чат, не теряя важный контекст или запуская новую беседу.
![]()
Планирование перед сборкой с помощью режима планирования
Создайте и выполните итерацию планов реализации перед внесением изменений в код.
Иногда необходимо продумать подход, прежде чем переходить к коду. Новый режим чата Planning позволяет совместно работать с Copilot в плане реализации без внесения изменений в базу кода.
Принцип работы
![]()
При выборе режима Planning Copilot выполняет двухэтапный процесс:
- Изучение и уточнение — Copilot использует средства только для чтения, чтобы понять базу кода и задаёт уточняющие вопросы. Для простых задач он немедленно проектирует план.
- Драфт и уточнение - Copilot создает подробный план реализации, который можно просмотреть, обсудить и уточнить вместе.
![]()
Когда вы будете готовы, нажмите кнопку "Реализовать план ", чтобы передать его в режим агента для выполнения.
![]()
Планы сохраняются в формате markdown
Copilot сохраняет каждый план как файл Markdown в вашем репозитории по адресу
.copilot/plans/plan-{title}.md. Этот файл является одним источником истины. Его можно изменить непосредственно в редакторе или уточнить его с помощью чата. Copilot обнаруживает изменения и поддерживает план в актуальном состоянии.Когда следует использовать режим планирования
- Большие функции . Разбиите сложную работу на четкие шаги перед написанием кода.
- Неизвестные кодовые базы — позвольте Copilot сначала изучить и объяснить, прежде чем предлагать изменения.
- Совместная работа группы — предоставление общего доступа к планам в виде файлов markdown для проверки перед реализацией
Средства работы с Git
Добавить коммит в Copilot Chat
Присоединяйте контекст коммита к Copilot Chat напрямую из среды IDE.
Вы проверяете коммит и хотите, чтобы Copilot помог понять его, выявить проблемы или основать на нём новые изменения? Вместо поиска идентификатора коммита и вставки его в чат теперь можно щелкнуть правой кнопкой мыши по коммиту и добавить его непосредственно в контекст Copilot Chat.
Эту команду можно найти на следующих поверхностях:
- История Git (Просмотр истории веток Git>)
- История файла (щелкните правой кнопкой мыши файл в Обозреватель решений, а затем Git > Просмотр истории)
- Annotate (Blame) ( щелкните правой кнопкой мыши в редакторе, а затем Git > Annotate (Blame))
Вы также можете выбирать несколько фиксаций для одновременного прикрепления их к чату.
![]()
Copilot получает коммит как контекст, поэтому вы можете задать такие вопросы: объясни это изменение, это вызывает какие-либо проблемы, или внести аналогичное изменение для другого файла.
![]()
Инструкции по сообщению коммита перемещены
Индивидуальные инструкции для сообщений коммитов теперь используют файл инструкций Copilot вместо настроек Visual Studio.
Если вы использовали пользовательские инструкции текстового ввода Commit message custom instructions в разделе GitHub → Copilot → интеграция с системой управления версиями для настройки сообщений фиксации, создаваемых Copilot, этот параметр более не будет применяться. В дальнейшем инструкции по оформлению сообщений коммитов управляются через файл пользовательских инструкций Copilot.
Это приводит инструкции коммит-сообщений в соответствие с тем, как пользовательские инструкции Copilot работают в репозитории, сохраняя все в одном месте.
Настройка пользовательских инструкций
Добавьте комментарий к коммиту в файл инструкций Copilot вашего репозитория. Полные сведения о настройке см. в разделе "Добавление инструкций по репозиторию".
![]()
C++
Улучшенная оптимизация итеративных сборок C++
Улучшены сценарии оптимизации для сборок C++, когда GitHub Copilot для анализа производительности сборки в Windows выявляет потенциальные улучшения, которые могут быть заметны только в итеративных сборках.
При использовании GitHub Copilot для анализа производительности сборки в Windows Copilot может обнаружить регрессию при анализе полной пересборки. В таких случаях Copilot теперь повторно запускает сопоставимую инкрементную сборку. Это позволяет лучше отразить реальный выигрыш от таких оптимизаций, как использование предварительно скомпилированных заголовков и рефакторинг заголовков, которые могут казаться медленнее при полной пересборке, но значительно ускоряют ваши повседневные рабочие процессы.
Спросите у @BuildPerfCpp в чате GitHub Copilot, как оптимизировать время сборки GitHub Copilot производительность сборки для Windows
GitHub Copilot производительность сборки для Windows использует Build Insights для выявления и устранения проблем с производительностью сборки в проектах C++ с помощью MSVC. Этот агент анализирует процесс сборки, подсказывает, что можно оптимизировать, и вносит нужные изменения, тем самым ускоряя данный процесс:
- Ускорьте синтаксический анализ заголовков за счет создания предварительно скомпилированных заголовков и оптимизации путей включения (например, удаления неиспользуемых включений).
- Рефакторинг функций для ускорения синтаксического анализа функций или упразднения потребности в нем.
- Модернизация кода C++, чтобы использовать новые функции языка, ускоряющие компиляцию.
- Оптимизация параметров сборки для параллельного создания нескольких сборок и использования оптимальных параметров компоновщика.
Начало работы
- Убедитесь, что режим агента GitHub Copilot включен в интегрированной среде разработки.
- Откройте проект C++ .
- Попросите @BuildPerfCpp в окне GitHub Copilot Chat для оптимизации времени сборки.
Примечание. Build Insights должна быть запущена для сбора данных о производительности сборки. Ей также необходимо получить разрешения, необходимые для того, чтобы собирать данные о трассировке ETL. Один раз примите запрос UAC, чтобы разрешить технологии Build Insights собирать из MSVC данные о событиях ETW.
Попросите @BuildPerfCpp в чате GitHub Copilot, чтобы оптимизировать время сборки.
Поддержка Segment Heap для C++
Новые проекты C++ для MSBuild и CMake теперь по умолчанию используют сегментную кучу, что помогает приложениям воспользоваться современными функциями Windows для управления памятью и обеспечения безопасности.
Visual Studio теперь по умолчанию включает поддержку Segment Heap для новых проектов C++. Сегментная куча — это современная реализация кучи в Windows, которая повышает производительность, масштабируемость и безопасность по сравнению с устаревшей кучей NT. Это изменение помогает приложениям применять эти преимущества и подготавливает их к будущим возможностям платформы.
Это поведение можно настроить в свойствах проекта в разделе "Средство манифеста" → входные и выходные данные. Существующие проекты не изменяются автоматически, но могут использовать те же параметры.
Средства сборки MSVC версии 14.51
Улучшена поддержка C++23, производительность и множество исправлений ошибок.
Средства сборки Microsoft C++ (MSVC) версии 14.51 теперь доступны и устанавливаются по умолчанию с рабочими средами для настольных приложений и игр C++. Чтобы проверить, установлен ли он, просто убедитесь, что один или оба из этих компонентов выбраны в установщике.
- Средства сборки MSVC для x64/x86 (последняя версия)
- Средства сборки MSVC для ARM64/ARM64EC (последняя версия)
Вы также можете выбрать один из компонентов, помеченных номером версии 14.51, чтобы закрепить установку на эту версию.
![]()
Номер версии, напечатанный cl.exe и link.exe, будет не менее 14.51.36231.
Стабильный выпуск версии 14.51 будет получать исправления в течение 9 месяцев, как описано в документе Новая модель выпуска и жизненный цикл поддержки Microsoft C++ Build Tools .
Ниже приведен полный список нововведений.
Соответствие стандартам C++
Команда фронтенда продолжает внедрение возможностей CPP23 и CPP20 и исправление ошибок совместимости.
- Реализации C++23: Подробные сведения см. в записи блога Поддержка CPP23 в MSVC Build Tools 14.51.
- Улучшения Consteval: Несколько исправлений для обработки функции
consteval, constexprnew/deleteв модулях, резервные массивы в инициализаторах списков,/experimental:constevalVfuncVtableповедение теперь включено по умолчанию, и улучшена диагностика ошибок для неудачных выражений констант.- Улучшения корутины: Корутин связан с глобальными рефакторингами и нерекомендуемыми экспериментальными заголовками корутин.
- Модернизация синтаксического анализатора: Рекурсивный нисходящий синтаксический анализатор теперь обрабатывает
[[attributes]], с дальнейшими улучшениями в восстановлении после ошибок и удалении устаревших методов доступа к маркерам.- Улучшения языка C: Добавлена
_Atomicподдержка квалификатора, удалена неправильная диагностика для элементов гибкого массива C99 и добавлена__typeof__поддержка типов функций.Создание кода
Оптимизатор серверной части получил значительные инвестиции во многих областях:
- Оптимизации на основе профилей с использованием выборок: Поддержка оптимизаций на основе профиля, использующего выборки, с помощью вспомогательных инструментов. Дополнительные сведения см. в следующей записи блога.
- Улучшения оптимизации статического одноцелевого назначения (SSA): Реализованы десятки новых шаблонов алгебраического упрощения, включая шаблоны для тернарных операторов, арифметические шаблоны и min/max.
- Common Subexpression Elimination (CSE): Улучшение csE нагрузки
[x + C]через соединения if/else, избыточные хранилища и улучшены многобайтовые проверки псевдонимов.- Скалярная замена агрегатов (SROA): Более агрессивная распаковка структур.
- Оптимизации циклов: Исправление знаковых проверок линейной функции (LFTR) и оптимизация циклов с использованием счётчиков, когда основная индуктивная переменная используется после завершения цикла.
- Встраивание: Расширенное ограниченное встраивание вызова и улучшено распространение информации о типах параметров при встраивании.
- Распространение копирования: Несколько улучшений распространения копирования для целых констант и последовательных копий.
- Сокращение силы: Реализовано сокращение преобразований в качестве оптимизации уменьшения силы.
- Предикаты и потоки переходов: Улучшение оптимизаций с использованием предикатов для устранения проверок границ, включая более эффективное использование предикатов из минимальных паттернов.
- Макет стека: Теперь компилятор предпочитает сохранять регистры, сохраненные вызываемой функцией, на стеке, а не использовать теневые слоты, уменьшая накладные расходы на пролог и эпилог функции.
- PGO: Улучшены компромиссы размера и скорости на уровне функций для компенсации нерепрезентативных профилей и улучшения оптимизации PGO.
- Ограничение указателей: Добавлена поддержка семантики ограничения указателя для включения дополнительных оптимизаций псевдонимов.
- Оптимизации сопоставления шаблонов: Новые шаблоны для
MSUB/MADDсоздания,ADC/SBBдля условного добавления и вычитания, и вариантыCMOVE/NE.- Intel APX: Предварительная поддержка Intel APX (Advanced Performance Extensions) в цепочке инструментов MSVC. Эта поддержка включается через параметр компилятора
/feature:APXдля использования различных возможностей APX, таких как расширенные регистры общего назначения (EGPR), новое место назначения данных (NDD), отсутствие обновления флагов (NF), новые условные инструкции ISA и оптимизированные операции сохранения и восстановления регистров. Они задокументированы по адресу https://www.intel.com/content/www/us/en/developer/articles/technical/advanced-performance-extensions-apx.html.Другие изменения в создании кода:
- Параметр
/volatileMetadataкомпилятора больше не включен по умолчанию для x64 и x86; используйте/volatileMetadataявно для выдачи переменных метаданных.ARM64 и SVE
- Поддержка SVE (масштабируемое расширение вектора): Основная новая функция, которая предоставляет SVE ARM в MSVC, включая поддержку фронтенда для скалярных и агрегированных типов SVE, построение встроенных функций, сохранение и восстановление регистров вызываемой функции, передачу параметров вариативной функции, установку заголовочных файлов и поддержку tryblock/funclet. Были устранены многочисленные ошибки ICE и неправильной компиляции.
- Усадочная упаковка: Исправлены несколько проблем, включая информацию о фрагменте разворачиваемой области, ошибки генерации кода, связанные с прерыванием chkstk X15, и области усадки с несколькими точками входа.
- Качество кода: Новые шаблоны, оптимизация
CSEL pow2, 0 + ORR → CSET + ORR_SHIFT, удаление лишнихNEON_DUPRпослеNEON_INSR, шаблоны ARM NEON для x264, улучшение слияния инструкций, повторное назначение регистров после глобальных регистров и настройка выравнивания функций.- ПАКЕТ SDK ДЛЯ DIA: Полная поддержка SVE в интерфейсе отладки, включая
RtlpGetSveContextPointersиIDiaStackWalkHelper3.SIMD и векторизация
- Векторизатор SLP: Улучшения векторизации уровня суперсловного параллелизма (SLP):
- Векторизация скалярной редукции
- Поддержка векторных инструкций общего назначения и расширенных размеров
- Оптимизации перестановок и поддержка выборки для превышенного размера
- Улучшения векторизатора: Перемещение проверок перекрытия указателей внутреннего векторизованного цикла на родительские циклы, поддержка циклов для подсчета символов, поддержка разрозненного доступа к памяти для 2-байтовых типов данных и улучшение эвристики для низких значений счетчика итераций на ARM64.
- AVX/SSE: AVX512
memcpy/memset, AVX2memcmpпереопределение, AVX10.2 и векторизованные шаблоны битмаски для x264.Компоновщик и PDB
- DIA: Безопасность при инициализации потоков COM и поддержка SVE.
- Фаззинг PDB: Запущен фаззинг PDB в ночных сборках.
- SPGO: Оптимизации, управляемые профилем на основе образцов, доступны для использования.
Стандартная библиотека (STL)
В GitHub репозиторий microsoft/STL отслеживает состояние с высоким уровнем детализации; см. статью Changelog для средств сборки MSVC 14.51. Новые доступные и примечательные функции библиотеки:
- P0429R9 -
<flat_map>- P1222R4 -
<flat_set>- P2255R2 — характеристики типа для определения привязывания ссылок к временным объектам
- P2590R2 — явное управление временем жизни
- P2674R1 -
is_implicit_lifetimeДругие заметные изменения:
- Мы основательно переработали
<regex>, чтобы устранить давние проблемы корректности и производительности, которые присутствуют с момента его первоначальной реализации в VS 2008 с пакетом обновления 1 (SP1). После почти двух десятилетий переполнение стека, наконец, исправлено!- Мы продолжали улучшать и добавлять алгоритмы STL с векторизацией SIMD, используя SSE4.2 и AVX2 для x64/x86, а недавно выпущенные в MSVC Build Tools 14.51 NEON для ARM64/ARM64EC.
- Мы реализовали 18 решений вопросов LWG.
- Мы удалили устаревшие функции, не являющиеся стандартными, например TR1,
<hash_map>,<hash_set><experimental/filesystem>stdext::checked_array_iteratorи .stdext::unchecked_array_iteratorВсе это было возможно благодаря нашим удивительным GitHub участникам.
AddressSanitizer (ASan)
- Поддержка ARM64: Улучшена поддержка ASan для ARM64 с полным комплектом библиотек, исправлениями ошибок перехвата и устранением ложных срабатываний.
- SanitizerCoverage: Исправлена обработка блок-списков, проблемы кодегена и объявления пересылки, чтобы обеспечить вызов инициализаторов sancov.
- Производительности: Кэшированные кучи для улучшения производительности во время операций теневой памяти.
Модули и IFC
- Обновление версии IFC: Интерфейс MSVC создает файлы IFC в соответствии со спецификацией IFCверсии 0.44.
- Исправление параллелизма: Исправлена ошибка гонки состояния после освобождения памяти при параллельном разрешении отладочных записей IFC.
Статический анализ
- Консолидация EspX: Объединены EspX и его расширения, такие как CppCoreCheck, в одну библиотеку DLL, упрощая развертывание.
- Исправления ошибок: Исправлены ложные срабатывания при разыменовании местоположения "inexact", а также ряд внутренних ошибок компилятора (ICE) при использовании параметра /analyze.
ARM64EC & ARM64X
- Поддержка сопрограмм. Устранена проблема отсутствия точек входа для вспомогательных функций сопрограмм и ramp-функций.
- ICF: Улучшена идентичная оптимизация свертывания COMDAT (ICF) в двоичных файлах ARM64X.
- Изменяемый XMM: Исправлено назначение изменяемого XMM в ARM64EC.
Diagnostics
- Исправлена ошибка, из-за которой предупреждение C4319 не испускается при компиляции кода на C.
- Удалены неправильные диагностические сообщения для элементов гибкого массива C99.
- Предупреждение C4789 улучшено для уменьшения ложных срабатываний.
Информация об отладке
- Включено удаление отладочной информации для уменьшения размера PDB.
Устранены проблемы с билетами
В этом выпуске были исправлены следующие проблемы, сообщаемые клиентом:
- builtin_bit_cast: внутренняя ошибка компилятора
- Оператор typeof не работает с типами функций
- Ложное срабатывание must_inspect_result
- statusfp выполняется перед операциями с плавающей запятой
- ССЫЛКА. Ошибка LNK2001: неразрешенный внешний символ после обновления до VS 17.14.5
- REX.B NOP интерпретируется процессором как ''XCHG EAX,R8d'', но VS 2026 дизассемблирует её как NOP
- /permissive- и шаблон приводят к ошибке C3688: недопустимый суффикс литерала _s
- Некорректная инициализация статических локальных переменных при динамической отладке CPP
- ARM64 — операции вычитания и сравнения переменных типа ULONGLONG используют W-регистры
- Тернарное логическое выражение min/max работает некорректно в сочетании с продвижением целочисленных типов
- Ошибка LNK2001 при импорте статических элементов класса/структуры из модуля в составе DLL
- Указатель на элемент базового класса в качестве аргумента шаблона
- Ограничения не фиксируют удаление оператора new в шаблонных классах
- В C++ с помощью deducing this можно изменить захват в немодифицируемой лямбде
- Операция CopyElision не выполняется при инициализации через список инициализации
- Ошибка компиляции std::enable_if после обновления с версии 17.13 до 17.14
- Проблема при определенных условиях с оператором остатка от деления в вариативных шаблонах с флагом /permissive- после версии 19.32
- Ошибка MSVC C1001: внутренняя ошибка компилятора (файл msc1.cpp, строка 1589)
- Отсутствие ADL в стандартном инициализаторе элементов из-за локальной свободной функции
- FUNCSIG пуст для auto-лямбды, присвоенной std::function
- Предупреждение C5287 "Операнды относятся к разным типам перечислений" даже при явном приведении типов
- C2106 "=": левый операнд должен быть l-значением Visual Studio 2026 Insider [11206.111]
- cl: внутренняя ошибка компилятора в относительно простом коде с побитовыми операциями
- Пустой массив из составных литералов приводит к внутренней ошибке компилятора
- Ошибка C2593, вызванная статическим оператором [] в режиме C++23
- неустранимая ошибка C1001: внутренняя ошибка компилятора
- Некорректное создание кода для оператора &= в версии 17.14
- Неверный математический результат при использовании boost::rational и Google Test
- Внутренняя ошибка компилятора в VS 2022 17.10+
- Внутренняя ошибка компилятора при попытке компиляции простой программы C++
- Захват неперемещаемого объекта по ссылке в лямбде не работает начиная с MSVC 17.4
- msdia140.dll версии 14.50.35719.0: CDiaSymbol::get_virtual всегда возвращает значение false
- MSVC 19.44.35207.1: ошибка C2352 при вызове метода базового класса
- MSVC 19.51 неправильно компилирует ffmpeg для ARM64
- Вычитание указателей на последовательные члены структуры одного и того же типа в MSVC 2026 приводит к неожиданному значению
- Сбой MSVC при наличии 65 536 и более шаблонных параметров в пакете параметров при использовании CTAD
- Проблемы с обновлением Visual Studio 2022 версии 17.14.15. ССЫЛКА: неустранимая ошибка LNK1000
- Оптимизатор x64 версии 19.50 создает неправильный код с /O2 и /EHs
- Компилятор Visual Studio ошибочно оптимизирует ветвь в коде при использовании наборов инструментов версии 143 и 145
- VS 2026 создает неправильный код FP
- Лямбда-выражение с параметром deducing this несвязанного типа ошибочно допускается
- InitAll в VS 2026 при инициализации указателя в векторе
- Предварительное объявление типа не работает при специализации, если имя предварительно объявленного типа неоднозначно
- Внутренняя ошибка компилятора при использовании CTAD для шаблона псевдонима с std::array
- Внутренняя ошибка компилятора при использовании условно копируемых типов
- Отклоняет корректное квалифицированное имя типа, содержащее лямбда-выражение в decltype
- Скрытая генерация некорректного кода: регрессия в механизме свертывания констант при захвате переменных в лямбда-выражениях (версия 143 и 145)
- ВНУТРЕННЯЯ ОШИБКА КОМПИЛЯТОРА: MSVC 19.50.35615 для x64
- Ошибка оптимизации Arm64 для expf
- Внутренняя ошибка компилятора при определении элемента статических данных в шаблоне (C++17), чей конструктор принимает определенные аргументы
- Программа CL.exe завершила работу с кодом -529706956
- Отклоняет допустимый вызов оператора
- Правило вывода аргументов для шаблона-псевдонима не работает в C++20
- Встроенный шаблон дружественной функции не может получить доступ к аргументам шаблона этого класса (C2065)
- Двоичное левостороннее выражение свёртки в возвращаемом типе приводит к ошибке компиляции
- Явное инстанцирование шаблона переменной вызывает внутреннюю ошибку компилятора при использовании предварительно компилированного заголовка
- Интерфейс командной строки: встроенное пространство имен не работает
- Интерфейс командной строки: ::typeid нельзя использовать для встроенных типов
- Предложение requires с нетиповым шаблонным параметром непоследовательно генерирует странную ошибку компилятора
- consteval не компилируется
- Ложное срабатывание C7602, ошибка в ограничении параметра константного шаблона
- Не удается выделить память кучи во время компиляции
- Невозможно выполнить предварительное объявление класса во внутреннем разделе модуля (C++20)
- Невозможно передать одну consteval-функцию в качестве аргумента другой consteval-функции
- Невозможно использовать указатель на немедленную функцию внутри константного выражения
- Вывод аргументов шаблона класса для шаблона псевдонима завершается сбоем.
- Сгенерированный компилятором код для некоторых сопрограмм C++ вызывает неожиданные предупреждения и указывает на отрицательные номера строк
- Константное выражение не считается константой в немедленной функции
- Код consteval не компилируется в MSVC
- Ошибка C2100 неверна для необобщённых лямбда-выражений
- Ошибка C2514: невозможно создать шаблон класса
- Ошибка C7535 из-за rvalue-ссылки, когда конструктор делегирует другому конструктору
- Внутренняя ошибка компилятора при индексации многомерного C-массива, переданного как NTTP, в MSVC версии 14.44.3520
- Предложения if constexpr и requires некорректно проверяют наличие элементов
- Включение заголовочного файла с #pragma system_header из внешнего каталога include приводит к тому, что вся единица трансляции рассматривается как внешний заголовочный файл
- Внутренняя ошибка компилятора при манипуляциях с указателем на немедленную функцию
- Внутренняя ошибка компилятора при специализации на типах с плавающей запятой
- Вызов функции, возвращаемой лямбда-выражением consteval, приводит к ошибке C7595
- MSVC не может скомпилировать шаблонную лямбду C++20 со спецификатором consteval
- MSVC некорректно дедуплицирует два разных указателя на элементы (&Case01::a, &Case02::num), переданные как нетиповые шаблонные параметры auto
- MSVC отклоняет корректную программу, использующую наследование функции преобразования из типа закрытия без захвата
- Отсутствие предупреждения C4706 при присваивании объекту std::unqiue_ptr, используемому как условие
- При удалении токенов-заполнителей с /Zc:preprocessor некорректно удаляются окружающие пробелы
- Ограничение requires в функции-элементе воспринимает вызов базового класса как статический вызов
- Сообщение о повреждении стека в среде выполнения при использовании std::visit
- source_location() возвращает неправильное значение
- std::is_constructible выдает неверный ответ для массивов в C++20
- std::source_information::current() выдает разное местоположение в контексте consteval
- std::source_location::current().function_name() возвращает пустую строку при использовании в качестве стандартного значения аргумента
- Не удается вызвать одну consteval-функцию из другой
- Использование зависимого квалифицированного имени в качестве стандартного аргумента для ограниченного параметра типа шаблона ломает компилятор MSVC
- Когда ASSERTE получает выражение с "", это приводит к внутренней ошибке компилятора
- Ложноположительная ошибка C3640 при попытке получить указатель на чистую виртуальную функцию
- Вызов неверной перегрузки из-за rvalue-ссылки, вызывающий рекурсию
- Вывод аргументов шаблона класса выбирает неверный конструктор
- Регрессия: доступ к элементу массива для результата тернарного оператора ошибочно возвращает prvalue
- 20 модулей C1001: внутренняя ошибка компилятора
- Ссылка на массив рассчитывается некорректно, что приводит к нарушению прав доступа или обращению по неверному адресу памяти
- Не удается выполнить частичную специализацию шаблона в модуле C++20
- Не удалось специализировать шаблон функции для абстрактного типа после вызова SFINAE для типа
- Внутренняя ошибка компилятора в MSVC 14.44.35207
- Внутренняя ошибка компилятора при использовании неправильного типа возврата в определяемой пользователем шаблонной функции преобразования
- Внутренняя ошибка компилятора при компиляции кода сопрограммы C++20
- Недопустимая операция: ошибка оптимизации FP
- Ложная ошибка C2102 при инициализации статического inline constexpr-члена с частичным списком именованных инициализаторов
- Проверки упрочнения STL (_MSVC_STL_HARDENING) не устраняются в ходе оптимизации (2)
- Специализация шаблонных функций и расхождения компиляторов при обработке decltype
- Регрессия в VS 17.12: внутренняя ошибка компилятора со структурированными привязками и лямбда-выражением при инстанцировании шаблона переменной constexpr
- Когда в списке захвата лямбда-выражения присутствует выражение, генерирующее исключение,
noexcept(<lambda expression>)выдает неверный результат- Регрессия в VS2026: лямбда-выражение не может обращаться к локальной константе
- Ошибочная ошибка компилятора C2872 при сборке с C++23 Preview
- CLI и C++23: многомерные управляемые массивы не работают
- #pragma warning(disable) не работает во вложенных заголовках, используемых в качестве единиц заголовков
- Для анонимных объединений в неименованных пространствах имен ошибочно требуется использовать static
- Ошибочная инициализация констант __declspec(selectany) в контексте модулей C++
- Ошибка компиляции модулей при использовании using-объявления из другого модуля
- Ошибка C2355 ошибочно возникает, когда локальный класс определен в статической функции-члене
- C4389 возникает при сравнении члена битового поля шириной в один бит со значением типа bool
- Не удается инициализировать массив элементами, созданными с помощью consteval-функций
- Компилятор аварийно завершает работу с ошибкой C1001 при использовании CTAD во вложенном типе с зависящим от шаблона noexcept
- Ошибка компилятора при использовании определенных пользователем constexpr-литералов в выражении requires
- CTAD не компилируется при использовании назначенного инициализатора
- Удалённая функция отключает ADL в непосредственном контексте
- Имена элементов перечисления, публично импортированные в объявление класса с помощью объявления using-enum (using enum), теряются при пересечении границ модулей
- Ошибка C3535: невозможно вывести тип для 'auto' из перегруженной функции
- Ошибка C7595: вызов немедленной функции не является константным выражением
- Ошибка при синтаксическом анализе объявления функции, принимающей указатель на функцию и имеющей пустой список инициализации в качестве аргумента по умолчанию
- Лишняя пустая строка в выводе при использовании /E и #warning
- Ложноположительное предупреждение C4305 при использовании стандартного нетипового шаблонного параметра
- Выражение свертки не может полностью раскрыть пакет во вложенном шаблоне после исправления ошибки C7515
- Специализация функции и концепты вызывают неоднозначность при вызове перегруженной функции
- Внутренняя ошибка компилятора при использовании Boost.PFR с модулями CPP (vs-17.14.0-preview1)
- Внутренняя ошибка компилятора при компиляции mp-units
- Внутренняя ошибка компилятора при использовании модулей и конструкции if consteval
- Внутренняя ошибка компилятора с руководством по выведению аргументов шаблона
- ICE: writer.cpp:542 случилось невозможное при использовании folly + modules
- Идентификатор не найден во вложенном выражении свертки
- В MSVC V145 баг срабатывал при использовании членов этого же класса в ограничениях в шаблонах внутри классов
- Взаимодействие между no_unique_address и has_unique_object_representations работает некорректно
- Внутренняя ошибка компилятора при связывании модуля C++20
- Внутренняя ошибка компилятора при использовании модулей CPP
- Внутренняя ошибка компилятора. (файл компилятора "D:\a_work\1\s\src\vctools\Компилятор\CxxFE\sl\p1\c\trees.c", строка 19104)
- Ошибка в выражениях свёртки пакетов в миксинах
- MSVC: вложенная структура, зависящая от шаблонных параметров внешнего класса, не может быть использована как NTTP внутри области видимости этого класса (C2993)
- MSVC не может скомпилировать рабочий код, использующий шаблонное метапрограммирование
- Вложенные лямбда-выражения вызывают ошибку в MSVC при использовании структурированной привязки с меткой
- Примечание к предупреждению C4477 некорректно для size_t, redux
- Сбой разрешения перегрузки для нетиповых параметров шаблона типа enum
- Проблема с пакетом параметров со ссылкой на C-массив
- Не удается вывести тип аргумента для std::optional
- Объединения несовместимы по расположению в памяти, несмотря на наличие совместимых элементов данных
- Универсальный сбой CL.exe (код выхода: -1073741819) при использовании вложенных std::filesystem::path в C++17+
- Деструктор является частным, но компилятор разрешает создание объекта в стеке
- Очевидная ошибка парсера C++ — выдаёт C2143 и C2451 (+ необязательно C2530 и C3531), если выражение цикла «range-for» внутри шаблонной функции содержит лямбду
- Ошибка C3520 при раскрытии пакета шаблонных параметров внутри шаблона функции-члена шаблонного класса
- Невозможно использовать экземпляр шаблонного псевдонима, если синтаксический анализатор впервые встречает его инстанцирование внутри шаблонного класса
- Внутренняя ошибка компилятора в последних версиях MSVC при компиляции определённого выражения свёртки
- Внутренняя ошибка компилятора, связанная с указателем на функцию-член, множественным наследованием и constexpr-функцией-посредником.
- Внутренняя ошибка компилятора при использовании лямбда-выражения и constexpr-ссылки в Visual Studio 2026 (CL.exe версии 19.50.35722 для x64)
- Лямбда-выражение не может иметь доступ к локальной константе
- Внутренняя ошибка компилятора MSVC 14.50.35503 [Visual Studio 2026 Insiders]
- Сбой разрешения перегрузки при специализации шаблона класса
- Регрессия (ошибка компиляции) при использовании модулей и fmtlib
- Неправильный результат, если структура содержит элемент [[no_unique_address]]
- Использование списка инициализации в качестве аргумента шаблона при наличии несовместимой перегрузки приводит к ошибке C2440
- Предупреждение C4864 ошибочно выдается при вызове переопределенных нешаблонных функций-членов шаблонного базового класса
- IntelliSense и компилятор сообщают о том, что не та переменная является константной
- Тернарный оператор не распространяет временный операнд в результирующую rvalue-ссылку
- Использование сложного спецификатора типа для обращения к перечислению, базовый тип которого отличен от int, приводит к ошибкам C3432 и C3433
- MSVC ошибочно предупреждает, что гибкие члены массива в C99 — это нестандартное расширение (массивы нулевого размера)
- Неправильное движение кода ARM64 /EHa
- Проблема ARM64 со статическими инициализаторами и деструкторами и /OPT:ICF
- ARM64EC. Сбой при вызове функции C++ в библиотеке DLL, содержащей pragmas OpenMP, из приложения C# через DllImport
- Библиотека DLL пересылки arm64x не поддерживает DATA
- ASAN_VCASAN_DEBUGGING нарушена в версии 17.14.3( предварительная версия 1.0)
- Битовые поля с булевым типом в начале не работают в режиме программирования на C
- Сбой компилятора с fabsf в цикле с оптимизацией (/O2 /Ob /Ot) и /fp:precise
- Некорректный результат вычитания указателей при constexpr
- Динамическая отладка строковых литералов со значением null
- CLI C2668: неоднозначный вызов в .NET 9 и более поздних версиях
- Повторное выбрасывание исключения .NET в CLI приводит к сбою в .NET Framework 4.8 в x64
- C1001: внутренняя ошибка компилятора с 64-разрядными оптимизированными сборками последних VIM с помощью VS 17.14
- C1090: сбой вызова API PDB, код ошибки "3"
- C2034 (о чрезмерно широких битовых полях) не должно быть ошибкой в режимах C++
- C4319 не выводится при компиляции кода C
- Проблемы, связанные с C4756 в VS 2022
- совместное размещение локальных переменных и параметров с пересекающимся временем жизни в версии 14.40.33814 и более поздних
- CTime выдает ошибку в часовых поясах позади GMT. Изменения в VS 15.8 вызвали регрессию
- CTime::CTime выдает ошибку с годом 1900
- висячий указатель в файле cpp atlmfc Visual Studio occsite.cpp
- Инициализаторы элементов по умолчанию для битовых полей не работают при импорте структуры (или класса) из модуля
- Ошибочное предупреждение C5061: использование оператора запятой в качестве подстрочного выражения не рекомендуется
- EXE, скомпилированный с помощью ASAN (а библиотеки ASAN и DLLs иногда зависают во время выхода)
- Неудача в оптимизации избыточной последовательности DUP и SMOV (ARM64)
- Неустранимая ошибка C1001: внутренняя ошибка компилятора
- Garbage Collector выполняет сборку мусора во время выполнения вызова метода для ссылочного класса в C++/CLI.
- Guarded_by_ в статической локальной переменной сообщает об ошибке синтаксиса заметки
- Недопустимый код принимается из-за ссылки rvalue, приводящей к рекурсии
- Неправильное объединение литералов строк Юникода
- Неправильное написание битового кода
- Неправильная инициализация вложенного агрегатного члена значением, не связанным с данным членом
- Неверные инструкции, созданные в AVX2
- Неправильная генерация switch-case на целевой архитектуре arm64
- Неправильный вывод аргументов шаблона для функции, вызываемой с аргументом this из внешней, с квалификатором ref, функции-члена.
- Внутренняя ошибка компилятора для тернарного выражения с не копируемым типом и вызовом
- внутренняя ошибка компилятора в msvc 14.50.35717
- Внутренняя ошибка компилятора в type_traits и оператор bool в производном классе
- Внутренняя ошибка компилятора для ARM64 в предварительной версии VS 2026 18.0 Insiders
- Ошибка компилятора при включении Code Analysis (/analyze) с вариативными шаблонами и SAL
- Внутренняя ошибка компилятора при использовании OpenMP и try/catch в одной и той же функции с активированным /clr
- Внутренняя ошибка компилятора C/C++ оптимизирующего компилятора версии 19.50.35710 для ARM64
- Внутренняя ошибка компилятора C/C++ Optimizing Compiler версии 19.50.35722 для ARM64
- Внутренняя ошибка компилятора с параметрами шаблона C++ и отсутствующим ключевым словом шаблона
- Драйверы KASAN не могут ссылаться на широкие строковые функции (wcscat, wcscpy, wcsncpy)
- Ключевые слова НЕЛЬЗЯ переводить в случае ошибок, предупреждений или предложений.
- лямбда-вложенный деклтип лямбда-триггеров C2011
- Компоновщик не должен выдавать предупреждение для различающихся icall push thunks в коде Arm64EC, если они эквивалентны
- Длинные восьмерично отформатированные строки вызывают DoS-атаку на машину пользователя и вызывают C1060
- Статическая библиотека MFC сообщает об утечке памяти
- Microsoft.VCToolsVersion.v143.default.txt в версии 17.2 не обновляется с версии 17.1
- Ошибка компиляции
svset_neonq(arm_neon_sve_bridge.h) с 19.50.35722 для архитектуры ARM64- Неправильное компилирование цикла SVE AArch64 (версия 19.50.35722 для ARM64)
- Отсутствующий вызов деструктора при включении /Zc:nrvo (/O2 и /std:c++20)
- Неправильное использование _BitScanForward результата может завершиться сбоем компилятора
- Модули: утечка using-директив из экспортированных функций
- MSDIS неправильно декодирует некоторые инструкции xchg как nop
- MSVC не удается привязать функцию noexcept к шаблону, созданному с помощью подписи noexcept
- MSVC не удалось создать INCP (и друзья) — версия 19.50.35722 для ARM64
- MSVC не удалось создать MLA/MAD (версия 19.50.35722 для ARM64)
- MSVC не удается оптимизировать идиом LASTA (версия 19.50.35722 для ARM64)
- MSVC создает неверное предупреждение C6001
- MSVC x64: _mm_shuffle_ps неправильно удалён в результате оптимизации после vcvtpd2ps при /O1 или /O2
- Новая функция динамической отладки CPP иногда вызывает ошибку ссылки 1136
- вывод noexcept не функционирует (CWG 2355)
- Не реализована обязательная оптимизация копирования в тернарном операторе
- Наблюдение за недетерминированными выходными данными при создании UCRT для сборок CHPE
- Оптимизация отсутствует при UB-безопасном отрицании
- Регрессия производительности при вычислении хэша с пользовательской хэш-функцией при переключении на msvc 17.14.7
- Сбой среды выполнения инструментирования PGO в ARM64
- Оператор размещения new[] в <vcruntime.h> должен быть помечен _MSVC_CONSTEXPR
- Плохое создание кода x64 для диапазона для цикла в массиве элементов
- Необработанные строковые литералы имеют ограничение ~16380 символов
- Анализатор SAL2 не может обрабатывать shared_locks для заметки Guarded_by
- Список исключений санитарного охвата сломан
- Покрытие санитизатора приводит к некачественной генерации кода для двоичных файлов C++
- Ошибка оптимизации КОДА SIMD
- специализация шаблонной функции с использованием static требует указания данного спецификатора, но clang предупреждает, что это не рекомендуется
- SSA CSE перепутывает разные указатели
- Модули стандартной библиотеки: механизм генерации случайных чисел выдает ложную ошибку C2512
- Локальная статическая эпоха потока имеет неверное смещение TLS при использовании /dynamicdeopt, что приводит к сбоям
- std:c17 и неизбитые массивы != LOVE
- Объединение строковых литеральных строк с различными префиксами кодирования завершается ошибкой
- Функция шаблона не найдена
- Оператор Ternary ненужно требует конструктора копирования
- Непредвиденная ошибка C7595 сообщена
- Непредвиденный результат при компиляции функции consteval
- Неиспользуемая константа во время компиляции в сборке выпуска x64 приводит к нарушению доступа в компиляторе во время этапа связывания
- При использовании набора инструментов 17.14 один из наших проектов создает ошибку связи LNK1120
- Компилятор VCPP 17.6 Preview 1 для ARM64EC вызывает внутреннюю ошибку при обработке ключевого слова __vectorcall
- VisualCppTools.14.50.35724 PdbCopy.Exe Arm64 сбой копирования Pdb
- Предполагается, что локальная переменная volatile не изменяется на x64
- Переменная переменная, не считываемая после записи
- Проблема с генерацией кода в VS 17.14.13: регистрация SIMD для x64 настроена неправильно
- VS18.0 Insiders MSVC ICE в карте сообщений MFC класса с виртуальной базой
- Ошибка оптимизации vs2022
- Предупреждение MSVC VS2026 C4865 неправильно сообщает об изменении базового типа с /Zc:enumTypes
- пакет Windows SDK не хватает директивы #include
<utility>в файле atlcom.h- Сбой компилятора x64 при компиляции исходного файла Mesa с оптимизацией
- Сбой эмулятора x64 происходит, когда поток ARM64EC вызывает корутину x64, которая вызывает другую корутину ARM64EC
- Использование Copilot показывает неправильную лицензию, и отсутствуют данные о премиум-запросах
| Основные исправления ошибок | От сообщества |
|---|---|
| Неправильное движение кода ARM64 /EHa | Запрос обратной связи |
| [Регрессия] сбой, характерный для ARM64, в MSVC 19.50.35728 для ARM64 | Запрос обратной связи |
| Исправить decltype члена, объявленного как mutable и заключённого в скобки, внутри функции-члена с квалификатором const. | |
| Исправьте проблему, из-за чего возникает ошибка C2106 при использовании определенных тернарных выражений в LHS назначения | |
| Исправлена ложная ошибка C2106 в некоторых случаях инициализации с участием членов типа массива. | Запрос обратной связи |
| Обновление установщика для включения последнего обслуживающего обновления Windows SDK версии 10.0.26100 (10.0.26100.8249) и Windows SDK версии 10.0.28000 (10.0.28000.1839) |
Версия 18.5.3
Выпущено 12 мая 2026 г.
| Устранены проблемы безопасности, указанные в рекомендациях | CVE | Описание |
|---|---|---|
| Уязвимость к повреждению памяти SQLite | CVE-2025-6965 | Существует уязвимость в версиях SQLite до 3.50.2, где количество статистических терминов может превышать количество доступных столбцов. Это может привести к повреждению памяти. |
| Уязвимость подмены в .NET Core | CVE-2026-32175 | В .NET Core существует уязвимость подмены, когда платформа неправильно обрабатывает специально сформированные файлы. |
| Уязвимость повышения привилегий в .NET | CVE-2026-32177 | Переполнение буфера в куче в .NET позволяет несанкционированному злоумышленнику локально повысить привилегии. |
| Уязвимость повышения привилегий в .NET | CVE-2026-35433 | Неправильная проверка входных данных в .NET позволяет неавторизованному злоумышленнику повысить привилегии локально. |
| Уязвимость ASP.NET Core, связанная с отказом в обслуживании | CVE-2026-42899 | Цикл с неустранимым условием выхода ("бесконечный цикл") в ASP.NET Core позволяет несанкционированным злоумышленнику запретить службу через сеть. |
Версия 18.5.2
Выпущено 28 апреля 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| [После обновления до версии 18.5] Ввод клавиатуры может перестать отвечать после использования функции "Поиск в файлах" | Запрос обратной связи |
| Последняя установка VS 2026 Insiders (11709.129) удаляет инструменты сборки 14.50. | Запрос обратной связи |
| Клод Opus 4.7 перестал работать после последнего обновления | Запрос обратной связи |
| [C++] Недопустимая генерация кода для switch(*optional) в 64-разрядной версии Visual Studio 2026 | Запрос обратной связи |
| Устранены проблемы безопасности, указанные в рекомендациях | CVE | Описание |
|---|---|---|
| ASP.NET Core уязвимость на повышение привилегий | CVE-2026-40372 | Неправильная проверка криптографической подписи в ASP.NET Core позволяет авторизованному злоумышленнику повысить привилегии по сети. |
Версия 18.5.1
Выпущено 21 апреля 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| F# Пустые строки в кодовых выражениях приводят к FS045 | Запрос обратной связи |
| Добавление пользовательского интерфейса для отображения процесса мышления модели | Запрос обратной связи |
Обновление за апрель 18.5.0
Выпущено 14 апреля 2026 г.
Интегрированная среда разработки (IDE)
Обновления схемы редактора JSON
Редактор JSON обновлен для поддержки дополнительных функций схемы JSON.
Редактор JSON теперь поддерживает новые спецификации схемы JSON, предоставляя доступ к современным функциям схемы, таким как
$defs,$anchorи улучшенная поддержка словаря.Ранее редактор поддерживал только черновик схемы JSON 4 и черновик 7. Теперь можно использовать следующее:
Это означает улучшенное средство IntelliSense и проведение проверок при работе со схемами, которые используют последние спецификации.
GitHub Copilot
Используйте навыки агента 📣
Агенты Copilot в Visual Studio теперь автоматически обнаруживают и применяют навыки, заданные в вашем репозитории или профиле пользователя.
Агенты Copilot в Visual Studio теперь могут автоматически обнаруживать навыки. Навыки агентов представляют собой многократно используемые наборы инструкций для обработки конкретных задач, включая запуск конвейера сборки, генерацию шаблонного кода или соблюдение стандартов кодирования команды. Однократное определение навыка обеспечивает экономию времени и согласованность поведения в рамках рабочего процесса. Примеры от сообщества представлены в разделе awesome-copilot.
Навыки обнаруживаются в следующих местах:
- Навыки рабочей области или проекта (хранятся в репозитории):
.github/skills/,.claude/skills/,.agents/skills/.- Персональные навыки (хранятся в профиле пользователя):
~/.copilot/skills/,~/.claude/skills/,~/.agents/skills/.Чтобы создать навык, выполните приведенные действия.
- Создайте каталог для навыка рабочей области или каталог для личного навыка.
- Создайте подкаталог для вашего навыка. Выделите отдельный каталог для каждого навыка (например,
.github/skills/github-issues/).- Создайте файл
SKILL.mdв данном каталоге. Используйте формат спецификации agentskills.io/specification.- При необходимости добавьте скрипты, примеры или дополнительные ресурсы в каталог навыка.
После создания навыка в одном из указанных каталогов агент самостоятельно определяет момент его использования. При активации навыка отображается соответствующая индикация в чате для информирования о его применении.
![]()
Более удобные процессы для просмотра и создания навыков в Visual Studio будут доступны в будущих выпусках. Протестируйте навыки агента и поделитесь своими отзывами.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Интеграция с облачным агентом
Запускайте новые сессии облачного агента прямо из Visual Studio.
Облачные агенты, включая агента программирования Copilot, запускаются на удаленной инфраструктуре для изолированного и масштабируемого выполнения. Теперь вы можете запустить новые сеансы агента облака непосредственно из Visual Studio.
![]()
Для активации выберите Cloud в средстве выбора агента окна чата с последующим указанием требуемой задачи. Облачный агент сначала запрашивает разрешение на открытие задачи в вашем репозитории, а затем создает pull request для её решения. Во время подготовки PR можно продолжать работать над другими задачами в Visual Studio либо закрыть Visual Studio и вернуться позже. Когда pr будет готов, вы получите уведомление и сможете просмотреть его в Visual Studio или в браузере.
![]()
В настоящее время облачный агент в Visual Studio работает с помощью агента программирования Copilot. Чтобы использовать его, убедитесь, что вы находитесь в репозитории GitHub и что Copilot имеет разрешение на создание проблем в этом репозитории. Попробуйте эту службу и сообщите нам свое мнение.
Создание собственных пользовательских агентов 📣
Определите настраиваемые агенты, адаптированные к рабочему процессу вашей команды, с помощью файлов .agent.md в репозитории или профиле пользователя.
Пользовательские агенты помогают создавать специализированные агенты Copilot для рабочего процесса вашей команды. Доступные возможности включают осведомленность о рабочей области, понимание кода, использование инструментов, выбранной модели и соединений MCP с внешними источниками знаний, такими как внутренняя документация, системы дизайна, API и базы данных.
Пользовательские агенты определяются файлами
.agent.mdв репозитории или профиле пользователя. Агенты, относящиеся к рабочей области или проекту, хранятся в.github/agents/репозитория. Рассмотрим пример.your-repo/ └── .github/ └── agents/ └── code-reviewer.agent.mdАгенты пользовательского уровня по умолчанию размещаются в
%USERPROFILE%/.github/agents/. Это расположение можно изменить в Tools → Параметры → Copilot Chat → каталог пользовательских агентов.Чтобы создать пользовательский агент, создайте
.agent.mdфайл непосредственно в одном из расположений выше или нажмите + кнопку в средстве выбора агента и следуйте инструкциям.
![]()
После создания настраиваемый агент отображается в списке агентов для последующего использования.
Несколько замечаний:
- При отсутствии указания модели агент использует модель, выбранную в средстве выбора модели.
- Имена инструментов зависят от GitHub Copilot платформ. Проверьте средства, доступные в Visual Studio, чтобы убедиться, что агент работает должным образом.
- Репозиторий awesome-copilot содержит конфигурации агентов, внесённые сообществом, которые вы можете использовать в качестве начальных точек. Проверьте имена инструментов перед их использованием в Visual Studio.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Настраиваемые сочетания клавиш Copilot📣
Настройте сочетания клавиш на клавиатуре для принятия встроенных предложений от Copilot.
Теперь можно настроить сочетания клавиш для принятия встроенных предложений Copilot. Доступна настройка клавиш для принятия полного предложения, следующего слова или следующей строки в стандартных параметрах клавиатуры.
Процедура установки предпочтительных сочетаний клавиш:
- Перейдите в раздел "Средства → параметры → среда → клавиатуры".
- Выполните поиск команды, которую вы хотите настроить:
Edit.AcceptSuggestionEdit.AcceptNextWordInSuggestionEdit.AcceptNextLineInSuggestion- Удалите существующую привязку клавиши.
- Назначьте новое сочетание клавиш в области Inline Suggestion Active.
![]()
Например, на приведенном ниже изображении изменяется сочетание клавиш по умолчанию с Tab на Ctrl+Tab. Новое сочетание клавиш отображается на панели подсказок.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
IntelliSense имеет приоритет над Copilot 📣
IntelliSense теперь имеет приоритет над завершениями Copilot, и вы видите только одно предложение за раз.
Мы получили ваш отзыв: одновременное отображение автозавершения IntelliSense и Copilot может отвлекать. Теперь редактор приоритизирует список IntelliSense и отображает только одно предложение за раз.
список
Если IntelliSense активен, Visual Studio временно подавляет завершения Copilot, чтобы вы могли сосредоточиться на текущем выборе. После закрытия или подтверждения выбора IntelliSense, завершения Copilot возобновляются. Данный механизм активирован по умолчанию. Обновите вашу VS до последней версии и продолжайте писать код, как обычно. Сообщите нам о ваших отзывах!
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Новая панель истории чата📣
Просматривайте и выполняйте навигацию по сеансам чата Copilot с помощью новой панели истории чата.
Функционал истории чата перенесен из выпадающего списка в отдельную специализированную панель. Реализовано отображение заголовка чата, предварительного просмотра последнего сообщения и времени последнего обновления сеанса для быстрого поиска и повторного открытия предыдущих диалогов.
![]()
Расширенные возможности управления историей чата запланированы в рамках дорожной карты развития. Мы будем рады вашей обратной связи, поэтому отправьте заявку в сообщество разработчиков и сообщите нам, что бы вы хотели видеть в дальнейшем.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Отладка и диагностика
Авторасшифровка в текстовом визуализаторе
Легко декодировать текст с помощью Copilot.
Мы представляем функцию автоматического обнаружения и форматирования в визуализаторе текста. Это улучшение предназначено для упрощения рабочего процесса отладки, автоматически определяя формат кодирования или сжатия строки и применяя необходимые преобразования в одном щелчке мыши.
![]()
Просто нажмите кнопку автообнаружения и форматирования в правом верхнем углу визуализатора текста. Работает на базе Copilot, эта функция мгновенно определяет и преобразует сложные данные (например, GZip-сжатые Base64) в удобочитаемый текст, устраняя необходимость ручного декодирования или использования внешних инструментов.
Проблема агента для решения
Решение ошибок агентического типа помогает находить и устранять ошибки с помощью интерактивного руководства ИИ с доказательством на этапе выполнения.
Мы представляем новый рабочий процесс агента отладчика в Visual Studio, который проверяет ошибки в реальном поведении среды выполнения вместо того, чтобы полагаться на статический анализ предположений. Этот процесс включает в себя весь цикл работы агента, от понимания и воспроизведения проблемы до инструментирования приложения, выявления первопричины проблемы и проверки исправления путем внедрения решения в реальном времени.
Вы можете начать с проблемы в GitHub или Azure DevOps, или просто описать ошибку или поведение кода на естественном языке. Используя эти данные, агент отладчика сопоставляет проблему непосредственно с локальным источником и предлагает шаги для ее устранения. В отличие от статических подходов, в процессе отладки предусмотрена возможность взаимодействия с агентом, благодаря чему вы можете предоставить дополнительную информацию, обсудить свою теорию или доработать исправление в реальном времени.
![]()
Как работает агентный цикл:
- Context Injection — укажите ссылку на проблему или опишите ошибку в режиме отладчика в Copilot Chat (вы можете переключать режимы с помощью раскрывающегося списка в левом нижнем углу чата). Агент связывает отчет с вашим локальным кодом.
- Автономный дубликатор — агент анализирует описание ошибки, а при отсутствии шагов для ее воспроизведения создает минимальный сценарий, чтобы автоматически запустить проблему.
- Гипотезы и инструментирование — генерирует гипотезы об отказах и снабжает ваше приложение точками трассировки и условными точками останова для фиксации состояния во время выполнения программы.
- Проверка при выполнении — агент запускает сеанс отладки и анализирует данные телеметрии в реальном времени для выявления причины возникновения проблемы.
- Целенаправленная коррекция — предлагает точное решение проблемы в конкретной точке сбоя вместо обширного рефакторинга.
- Завершающая проверка человеком — вы еще раз запускаете сценарий и подтверждаете внедрение исправления в рабочей среде вместе с агентом.
C++
C++ средства редактирования кода для режима агента
Средства редактирования кода C++ для режима агента GitHub Copilot теперь доступны по умолчанию.
Мы рады поделиться тем, что средства редактирования кода C++ для режима GitHub Copilot агента теперь доступны по умолчанию. Эти средства помогают Copilot более эффективно перемещать базу кода C++ при рефакторинге или изменении кода.
Copilot может с включением этих средств:
- Сопоставление иерархий наследования классов
- Следуйте цепочкам вызовов функций
Чтобы приступить к работе, выполните приведенные действия.
- Откройте проект C++ и убедитесь, что IntelliSense настроен.
- Включите определенные средства с помощью значка Tools в Copilot Chat.
![]()
После включения Copilot автоматически использует эти средства при ответе на вопросы или предложения изменения кода.
Copilot, использующий инструменты C++ для анализа и изменения кода в нескольких файлах
Для получения наилучших результатов используйте модели ИИ, поддерживающие вызовы инструментов. Узнайте больше о сравнении моделей ИИ в документации GitHub
| Основные исправления ошибок | От сообщества |
|---|---|
| VS 2026 зависает во время выгрузки проектов | Запрос обратной связи |
| Copilot терминал иногда не запускает команды из очереди, пока вкладка терминала не будет выведена на передний план. | Запрос обратной связи |
| ASan supression не работает | |
| Улучшена производительность среды выполнения ASan в приложениях, которые в значительной степени используют COM, смешанные языковые привязки и API распределителя Win32 |
Версия 18.4.4
Выпущено 14 апреля 2026 г.
| Устранены проблемы безопасности, указанные в рекомендациях | CVE | Описание |
|---|---|---|
| уязвимость .NET к отказу в обслуживании | CVE-2026-26171 | Уязвимость существует в классе EncryptedXml, где неконтролируемое потребление ресурсов может дать злоумышленнику возможность выполнять атаку типа "отказ в обслуживании". |
| Уязвимость спуфинга .NET | CVE-2026-32178 | Неправильная нейтрализация специальных элементов в .NET позволяет неавторизованному злоумышленнику выполнять спуфинг через сеть. |
| Уязвимость к повреждению памяти SQLite | CVE-2025-6965 | Существует уязвимость в версиях SQLite до 3.50.2, где количество статистических терминов может превышать количество доступных столбцов. Это может привести к повреждению памяти. |
| Уязвимость раскрытия информации в Visual Studio | CVE-2026-32631 | Уязвимость раскрытия информации существует в MinGit из-за утечки хэша NTLM на ненадежный сервер. |
Версия 18.4.3
Выпущено 31 марта 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Copilot чат завершается ошибкой с invalid_request_body: для схемы github_push_files требуется дополнительное значениеProperties=false | Запрос обратной связи |
| Исправлена ошибка Visual Studio при загрузке проекта VS |
Версия 18.4.2
Выпущено 24 марта 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Исправлена страница поддержки прокси для Visual Studio 2026 | Запрос обратной связи |
Версия 18.4.1
Выпущено 17 марта 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Vs многократно необходимо обновить учетные данные при входе в учетную запись GitHub с лицензией Copilot | Запрос обратной связи |
| Переключатели командной строки Devenv /Run on /Runexit не работают. | Запрос обратной связи |
| Исправлена проблема совместимости AddressSanitizer с Xbox Game OS | Запрос обратной связи |
| Добавление поддержки Agent Skills для режима агента Copilot |
Обновление за март 18.4.0
Выпущено 10 марта 2026 г.
Интегрированная среда разработки (IDE)
Улучшения редактора JSON
Редактор JSON теперь является частью редактора Core.
Улучшения в редакторе JSON
Редактор JSON устанавливается вместе с основным редактором
В предыдущих версиях для получения редактора JSON требовалось установить рабочую нагрузку "Веб-разработка". В этом выпуске редактор JSON уже является частью основного редактора, что позволяет использовать возможности редактирования JSON без установки рабочей нагрузки "Веб-разработка". Это изменение упрощает процесс установки для тех пользователей, которым необходимы функции редактирования JSON, но не нужен полный набор инструментов для веб-разработки.
Продуктивность
Обогащенные копирование/вырезание HTML
Копирование и вырезание фрагментов кода с расширенным форматированием.
Visual Studio теперь поддерживает формат буфера обмена HTML при вырезании или копировании кода из редактора. Вы можете вставить цветной код в веб-версии приложений Office, Azure DevOps рабочие элементы или другие элементы управления на основе HTML.
![]()
Функция сохраняет подсветку синтаксиса и форматирование при вставке кода в HTML-приложения, упрощая демонстрацию и обмен фрагментами кода. Он включен по умолчанию. Чтобы настроить его, перейдите в раздел "Средства → параметры" → текстовый редактор → "Дополнительно ", где можно проверить или снять флажок "Копировать форматированный текст" при копировании или вырезать и задать максимальную длину.
GitHub Copilot
Создание собственных пользовательских агентов 📣
Определите настраиваемые агенты, адаптированные к рабочему процессу вашей команды, с помощью файлов agent.md.
Пользовательские агенты позволяют создавать специализированных агентов Copilot, адаптированных к рабочему процессу вашей команды. Они имеют полный доступ к осведомленности рабочей области, пониманию кода, средствам, предпочитаемой модели и подключениям MCP к внешним источникам знаний, таким как внутренняя документация, системы проектирования, API и базы данных.
Пользовательские агенты задаются как файлы типа
.agent.mdв репозитории. Например,your-repo/ └── .github/ └── agents/ └── code-reviewer.agent.md
![]()
Успешно созданные пользовательские агенты будут отображаться в средстве выбора агента в любое время.
Несколько замечаний:
- Если модель не указана, агент использует все, что выбрано в средство выбора моделей.
- Имена инструментов зависят от GitHub Copilot платформ. Проверьте средства, доступные в Visual Studio, чтобы убедиться, что агент работает должным образом.
- Репозиторий awesome-copilot содержит конфигурации агентов, внесённые сообществом, которые вы можете использовать в качестве начальных точек. Проверьте имена инструментов перед их использованием в VS.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Инструмент Find_symbol для режима агента
Новое средство Find_symbol для режима агента GitHub Copilot помогает получить доступ к сведениям о символах в базе кода.
Мы представляем новое средство find_symbol для режима агента GitHub Copilot, обеспечивающее навигацию по символам с учетом языковых особенностей непосредственно в агенте. Средство find_symbol позволяет:
- Поиск всех ссылок на символы в проекте
- Доступ к метаданным, таким как сведения о типах, объявлениях и области видимости
![]()
После включения инструментов Copilot автоматически использует их, как при ответах на вопросы, так и при предложении изменений кода.
![]()
Поддерживаемые языки включают C++, C#, Razor и TypeScript, а также любой другой язык, для которого установлено поддерживаемое расширение протокола LSP.
Для получения наилучших результатов напишите четкие запросы и используйте модели ИИ, поддерживающие вызовы инструментов. Узнайте больше о сравнении моделей ИИ в документации GitHub
Управление MCP корпоративного уровня
Легко защитить данные с помощью расширенных функций управления MCP.
Использование сервера MCP в Visual Studio теперь учитывает политики списка разрешений, заданные GitHub. Администраторы могут указать, какие серверы MCP разрешены в своих организациях.
При настройке списка разрешений можно подключиться только к утвержденным серверам MCP. Если вы пытаетесь подключиться к неавторизованному серверу, появится сообщение об ошибке, объясняющее, что сервер не разрешен.
Это помогает организациям контролировать, какие серверы MCP обрабатывают конфиденциальные данные и поддерживают соответствие политикам безопасности.
Отладка и диагностика
Рекомендации по умным часам
Copilot теперь предлагает выражения с учетом контекста в окне Watch.
Copilot теперь предлагает предложения с поддержкой контекста непосредственно в окнах "Watch". Просто поместите курсор в текстовое поле, и Copilot предлагает соответствующие выражения на основе текущего контекста отладки.
![]()
Это позволяет быстрее создавать отслеживаемые параметры, уменьшить количество догадок и упростить контроль наиболее важных значений во время выполнения, тем самым обеспечивая большую скорость и точность процесса отладки.
Тесты профиля с Copilot
Легко протестировать профиль с помощью Copilot.
Мы добавили новую команду Profile с помощью команды Copilot в контекстное меню Test Explorer, что упрощает профилирование определенного теста только щелчком мыши.
![]()
При выборе агента профилирования он автоматически запускает выбранный тест и проводит анализ его производительности, в котором для получения полезной аналитики сочетаются данные об использовании ЦП и данные инструментирования.
По умолчанию команда использует Instrumentation профилирование и в настоящее время поддерживается в .NET. Если требуется более глубокий анализ, можно запустить выбранный тест непосредственно из окна чата Copilot и выбрать дополнительные средства профилирования.
Советы по производительности, основанные на профилировании в реальном времени
Советы по улучшению производительности при отладке с агентом профилировщика.
Оптимизация производительности теперь выполняется во время отладки, а не после нее. Советы относительно производительности при проведении отладки и агент профилировщика позволяют быстро проанализировать производительность в процессе выполнения кода, благодаря чему ценная аналитика предоставляется в нужное время.
![]()
По мере пошагового выполнения кода, Visual Studio показывает время выполнения и сигналы производительности в инлайне для каждого шага. При обнаружении медленной линии или метода , например вялого запроса LINQ, вспомогательного средства с большим количеством вычислений или любого шага, который занимает больше времени, чем ожидалось, просто щелкните Perf Tip и попросите Copilot предложения по оптимизации на месте.
В процессе отладки агент профилировщика автоматически собирает данные о времени выполнения: затраченное время, использование ЦП и особенности работы памяти. Copilot использует эти данные для точного определения горячих точек производительности и предлагает целевые исправления, делая оптимизацию частью вашего регулярного процесса отладки, вместо того, чтобы откладывать ее на потом.
.NET
Исправление уязвимостей с помощью Copilot
Устраняйте уязвимости в пакетах NuGet легко и точно с помощью Copilot.
Исправьте уязвимости пакета NuGet без усилий с помощью Copilot непосредственно из Обозреватель решений. Когда Copilot обнаруживает уязвимость, вы получите немедленное уведомление. Перейдите, и Copilot автоматически обновляет зависимости нужным образом.
Больше не нужно вручную анализировать уязвимости или искать подходящие версии пакетов. Copilot анализирует уязвимость и рекомендует целевые исправления, которые обеспечивают безопасность зависимостей, не нарушая рабочий процесс. Вы можете устранить проблемы, связанные с безопасностью, сразу же после их обнаружения, а не в какое-то другое время.
Это позволяет напрямую интегрировать инструменты обеспечения безопасности в ваши повседневные рабочие процессы. Меньше отвлекайтесь на анализ уязвимостей и уделите больше времени безопасной разработке.
![]()
C++
MSVC Build Tools версии 14.51 Preview
Средства сборки Microsoft C++ версии 14.51 Preview теперь доступны для разработчиков C++.
Первая предварительная версия 14.51 средств сборки Microsoft C++ (MSVC) теперь доступна для разработчиков C++. Этот выпуск включает несколько новых функций и улучшений производительности среды выполнения. Мы рекомендуем ознакомиться с предварительными версиями MSVC, чтобы адаптироваться к критическим изменениям и проблемам с отчетами. Предварительные версии MSVC не получают исправления обслуживания, поэтому не следует использовать в рабочих средах.
Установка средств сборки MSVC версии 14.51 (предварительная версия)
Чтобы установить, выберите MSVC Build Tools for x64/x86 (preview) или MSVC Build Tools for ARM64/ARM64EC (preview) в зависимости от целевой архитектуры установщика Visual Studio. Эти компоненты находятся в рабочей нагрузке Разработка классических приложений на C++ и на вкладке Индивидуальные компоненты.
![]()
В разделе "Отдельные компоненты" можно дополнительно установить библиотеки с защитой от Spectre, а также MFC, ATL или поддержку C++/CLI для MSVC версии 14.51 Preview.
![]()
Интерфейс компилятора
MSVC продвигается в соответствии с C++23, и исправлено 133 ошибки из Сообщество разработчиков. Дополнительные сведения будут представлены в будущих записях блога и заметках о выпуске.
Внутренний код компилятора
Средства сборки MSVC версии 14.51 улучшили производительность среды выполнения по сравнению с версией 14.50 в наборе тестов SPEC CPU 2017 на следующую величину в различных сценариях сборки:
- +6.5% целое число, Arm64, PGO
- +1.1% числа с плавающей запятой, Arm64, PGO
- +4.4% целое число, Arm64, VS Defaults
- +1.4% с плавающей запятой, Arm64, параметры по умолчанию VS
- +5.0% целое число, X64, PGO
- +1.9% с плавающей запятой, X64, PGO
- +4.3% Целое число, X64, VS Defaults
- +1.8% Floating Point, X64, VS Настройки по умолчанию
Улучшения оптимизации:
- Улучшен векторизатор SLP, чтобы рассмотреть более альтернативные варианты, например использование частичных векторов или использование размера вектора больше целевой ширины перед сопоставлением с целевой шириной вектора позже.
- Улучшена обработка SROA непрямого доступа, крупных структур и преобразования типов.
- Разрешено векторизатору цикла выполнять проверки среды выполнения.
- Добавлена ликвидация логического или короткого замыкания при безопасном режиме.
- Улучшено использование инструкций условного перемещения.
- Улучшена оптимизация встроенных векторов AVX.
- Более агрессивное встраивание по умолчанию для функций с небольшим количеством использования.
- Улучшенная компиляторная оптимизация memset/memcpy для AVX.
- Улучшено распространение копирования по границам блоков.
- Добавлена развёртка внешних циклов и циклов с несколькими выходами.
Обновления стандартной библиотеки
- Полный список изменений стандартной библиотеки для Инструментов сборки MSVC версии 14.51 можно найти в журнале изменений STL. Журнал изменений отслеживает все изменения, объединённые в microsoft/STL main, хотя недавно объединённые изменения могут ещё не отражаться в этой конкретной предварительной версии. Эти изменения по-прежнему будут отражены в будущих предварительных версиях или последнем выпуске 14.51.
AddressSanitizer
- Улучшено качество нашей экспериментальной поддержки ASan ARM64 путем устранения нескольких проблем с созданием кода и средой выполнения.
Известные проблемы
Issue #1: Существует ошибка при настройке целевых объектов CMake с помощью генератора Visual Studio (MSBuild).
Решение:
- Откройте командную строку разработчика для инсайдеров VS (или командную строку разработчика для используемой вами версии Visual Studio) от имени администратора.
- Выполните следующие команды, которые создают новую папку и копируют файл из другого расположения в него:
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
- Запустите сборку, чтобы убедиться, что она работает
Проблема 2. Сборки командной строки в PowerShell еще не настроены для предварительной версии. Исправление будет развернуто в будущей предварительной версии.
Основные исправления ошибок
| Основные исправления ошибок | От сообщества |
|---|---|
| Серьезная задержка IntelliSense после обновления до Visual Studio 2026 | Билет обратной связи |
| VS2026 создает неправильный код FP | Билет обратной связи |
| "Операция недопустима из-за текущего состояния объекта" при открытии файла с расширением "неизвестно" | Билет обратной связи |
| NoWarn в PackageReference игнорируется. Начиная с Visual Studio 18.3.0. | Билет обратной связи |
| В некоторых случаях Visual Studio 2026 не отображает значения переменных при наведении во время отладки. | Запрос обратной связи |
| Исправление ошибки в оптимизаторе MSVC, ведущее к неправильной генерации ассемблерного кода | |
| VisualCppTools. 4.50.35724 PdbCopy.Exe Arm64 Pdb Copy аварийное завершение | Билет обратной связи |
| Обновите MinGit и Git для Windows для поддержки нового параметра allowNTLMAuth |
Версия 18.3.3
Выпущено 10 марта 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Исправление ошибки в оптимизаторе MSVC, ведущее к неправильной генерации ассемблерного кода |
| Устранены проблемы безопасности, указанные в рекомендациях | CVE | Descritpion |
|---|---|---|
| уязвимость .NET к отказу в обслуживании | CVE-2026-26130 | Уязвимость типа "отказ в обслуживании" существует в ASP.NET Core из-за неконтролируемого потребления ресурсов. |
| Уязвимость повышения привилегий в .NET | CVE-2026-26131 | Уязвимость повышения привилегий существует в .NET из-за неправильной авторизации. |
| Уязвимость раскрытия информации в Visual Studio | CVE-2025-66413 | Уязвимость раскрытия информации существует в MinGit из-за утечки хэша NTLM на ненадежный сервер. |
Версия 18.3.2
Выпущено 24 февраля 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Оптимизация компилятора и генерация кода, вызывающие нарушение доступа, появились с инструментарием версии 145. | Запрос обратной связи |
| Исправление ошибки в оптимизаторе MSVC, ведущее к неправильной генерации ассемблерного кода |
Версия 18.3.1
Выпущено 18 февраля 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Исправление значения переменной при наведении курсора во время отладки | Запрос обратной связи |
| Исправление для отображения отсутствующих связанных xaml-файлов в обозревателе решений | Запрос обратной связи |
| Терминал GitHub Copilot перехватывает фокус | Запрос обратной связи |
| Добавление поддержки создания и анализа с помощью агента производительности сборки для конкретных проектов | |
| Исправлена ошибка в оптимизаторе MSVC, которая вызывает плохое создание кода сборки |
Обновление 18.3.0 февраля
Выпущено 10 февраля 2026 г.
Интегрированная среда разработки (IDE)
Выполнить проверки отзыва сертификата
Visual Studio теперь оповещает вас об обнаружении проблем с цифровым сертификатом во время сетевых вызовов.
Visual Studio теперь проверяет цифровые сертификаты для сетевых вызовов и позволяет узнать, возникла ли проблема.
При обнаружении проблемы вы увидите диалоговое окно с подробными сведениями об ошибке сертификата. Вы можете отменить или продолжить подключение.
![]()
Мы рекомендуем включить эту функцию, но ее можно отключить в параметрах → tools → Environment → Security → Certificates.
![]()
Компактное размещение в Обозреватель решений
Интервал между элементами в Обозреватель решений теперь можно настроить в соответствии с вашими предпочтениями для улучшения удобочитаемости.
В 2026 году в Visual Studio был введен дополнительный интервал между элементами в Обозреватель решений для улучшения доступности. Это упрощает работу с мышью, снижая вероятность случайных кликов. Однако мы понимаем, что некоторые предпочитают более компактное отображение, чтобы видеть больше элементов сразу.
Для учета различных предпочтений Visual Studio теперь позволяет настроить интервал между элементами в Обозревателе решений. Доступны стандартные интервалы и компактный вариант отображения.
На изображении ниже показана разница между стандартным расположением (слева) и компактным (справа):
![]()
Перейдите к Tools → Options → Environment → Visual Experience и включите Использовать компактный интервал в Обозреватель решений, чтобы перейти в компактное представление. Изменения вступают в силу сразу после активации этого параметра.
Набор средств M365 Agent
2 новых шаблона добавлены в набор средств агентов M365.
Мы добавили новый шаблон агента Совместной работы Teams, чтобы помочь вам создавать агенты, которые повышают совместную работу в Microsoft Teams. Эти агенты используют Teams SDK и безопасные RSC-шаблоны для помощи в повседневной работе: в чатах Teams, каналах и на собраниях. Они могут резюмировать беседы, автоматизировать процессы, извлекать задачи, отвечать на вопросы и повышать продуктивность прямо в рабочем пространстве команды. Шаблон включает готовую основу и лучшие практики для поддержания организованности и продуктивности вашей команды.
шаблон
в Visual Studio
Также добавлен шаблон Travel Agent, демонстрирующий создание интеллектуального туристического ассистента. Агент отвечает на вопросы о путешествиях, помогает разобраться в корпоративных правилах поездок и находит рейсы и отели, соответствующие требованиям организации. Эти новые примеры доступны в разделе Просмотр примеров меню ATK.
Агент путешествий использует Azure OpenAI и API получения Microsoft 365 для доступа к корпоративным документам и политикам, хранящимся в SharePoint или OneDrive для бизнеса, предоставляя контекстные и соответствующие политике рекомендации по путешествиям непосредственно в Microsoft Teams.
шаблон турагента
![]()
Продуктивность
Быстрая прокрутка 📣
Теперь вы можете прокручиваться быстрее, удерживая клавишу ALT при прокрутке колесика мыши.
Прокрутка больших файлов теперь быстрее и проще. Удерживайте клавишу ALT при прокрутке колесика мыши, чтобы быстро перемещаться при просмотре кода или чтении документации.
Вы можете настроить скорость быстрой прокрутки в Средства → Параметры → Текстовый редактор → Дополнительно → Чувствительность сенсорной панели и колесика мыши.
![]()
Эта функция помогает перейти к разделу, который вам нужен без большого количества прокрутки. Попробуйте!
Благодарим Aymen Hamadi за предложение этой функции и всех, кто проголосовал за нее!
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Hide-символы в файлах 📣
Вы теперь можете отключить отображение символов под файлами в Обозреватель решений.
Проводник решений (Обозреватель решений) отображает символы, такие как классы, методы и свойства, под файлами, чтобы помочь вам навигировать по коду. Некоторым пользователям это загромождало представление, так как каждый файл имеет значок развертывания (например, папки и проекты). Теперь эту функцию можно отключить для более чистого внешнего вида.
Вот как символы отображались раньше:
![]()
Чтобы скрыть символы под файлами, перейдите в раздел Инструменты → Параметры → Проекты и решения → Общие и снимите флажок Показывать символы в файлах обозревателя решений. Обозреватель решений затем будут отображаться только файлы без дополнительных символов:
![]()
Благодарим Escalante Adriano за предложение этой функции и всех, кто проголосовал за нее!
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Новые функции предварительного просмотра в Markdown 📣
Просмотр содержимого, доступного только для предварительного просмотра, и увеличение/уменьшение масштаба в редакторе Markdown Visual Studio.
Visual Studio редактор Markdown предоставляет больше контроля над предварительным просмотром.
- Вы можете переключаться между несколькими режимами: Разделенный экран (отображается и редактор, и предварительный просмотр), Предварительный просмотр (открывается только предварительный просмотр) и Редактирование в Markdown (показывается только редактор). Режим "Предварительный просмотр" помогает сосредоточиться на отображаемом содержимом, что особенно удобно для больших изображений и сложных схем Mermaid.
- При предварительном просмотре схемы Mermaid используйте элементы управления масштабом, расположенные в левом верхнем углу экрана. Эти функции упрощают просмотр больших схем и дополнительных сведений.
![]()
Протестируйте новые элементы управления и поделитесь своими впечатлениями!
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Незначительное сжатие строк
Включите синтаксическое сжатие строк, чтобы более эффективно использовать вертикальное пространство экрана.
Сжатие строк Syntactic дает больше вертикального пространства в редакторе. Строки без букв или чисел сжимаются на 25%, что позволяет одновременно видеть больше кода без ущерба для удобочитаемости. Регулярные линии остаются одинаковой высотой. На правой стороне рисунка показано включенное сжатие. Обратите внимание, как можно увидеть больше строк на том же пространстве по сравнению с левой стороной.
![]()
Включите эту функцию в Сервис → Параметры → Текстовый редактор → Дополнительно, отметив сжатие пустых строк и сжатие строк, не содержащих буквенно-цифровых символов. Эта популярная функция в Power Tools для производительности теперь встроена в Visual Studio.
Прокрутка средней кнопкой мыши 📣
Нажмите вниз на колесико прокрутки и переместите мышь, чтобы быстро прокручивать документ.
Теперь можно разблокировать полный потенциал средней кнопки мыши для ускорения навигации. Нажмите вниз на колесико прокрутки и переместите мышь, чтобы быстро прокручивать документ. Это упрощает просмотр больших файлов без использования традиционных полос прокрутки или повторяющегося прокручивания колесом.
![]()
Эта функция отключена по умолчанию в версии 18.3 Insiders 2 и должна быть включена с помощью инструментов → параметров → текстовый редактор → расширенный → средний щелчок для прокрутки. Попробуйте поделиться своими отзывами с нами!
Спасибо всем, кто проголосовал за эту функцию!
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Уже левый отступ в редакторе 📣
Уменьшите пространство левого поля, вырезав пространство, занятое значком быстрых действий.
Левое поле в редакторе кода уменьшилось, благодаря чему у вас будет больше горизонтального пространства, в котором можно разместить код. Мы переместили значок "Быстрые действия" (в виде лампочки или отвертки) из этого поля в редактор, в котором он появляется в строке с кодом, если его можно исправить или выполнить рефакторинг.
Слева: более узкое левое поле со значком быстрых действий, справа: предыдущее положение
Чтобы попробовать работу, перейдите к разделу "Сервис" → параметры → текстового редактора → "Дополнительно" и проверьте значок "Показать быстрые действия" в редакторе.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
GitHub Copilot
Управление MCP корпоративного уровня
Легко защитить данные с помощью расширенных функций управления MCP.
Использование сервера MCP в Visual Studio теперь учитывает политики списка разрешений, заданные GitHub. Администраторы могут указать, какие серверы MCP разрешены в своих организациях.
При настройке списка разрешений можно подключиться только к утвержденным серверам MCP. Если вы пытаетесь подключиться к неавторизованному серверу, появится сообщение об ошибке, объясняющее, что сервер не разрешен.
Это помогает организациям контролировать, какие серверы MCP обрабатывают конфиденциальные данные и поддерживают соответствие политикам безопасности.
Сервер NuGet MCP
Provides способ обновления пакетов с известными уязвимостями и может получать сведения о пакетах в режиме реального времени для GitHub Copilot.
MCP сервер NuGet встроен в систему, но требует однократной активации для использования. Дополнительные сведения см. в документации по MCP серверу NuGet.
Начало работы
Чтобы включить сервер NuGet MCP, выполните следующие действия в Visual Studio 2026:
- Откройте окно GitHub Copilot Chat и убедитесь, что вы вошли в систему.
- Щелкните значок инструментов на нижней панели инструментов, чтобы открыть меню "Инструменты".
- Найдите сервер MCP с именем Nuget и установите флажок, чтобы включить его.
![]()
Устранение уязвимостей пакета
Сервер NuGet MCP помогает выявлять и устранять уязвимости пакетов в проекте. Чтобы использовать сервер MCP для устранения уязвимостей, введите следующий запрос в окне Copilot Chat GitHub:
Исправление уязвимостей пакета
Сервер MCP анализирует зависимости проекта и предлагает обновления пакетов с известными уязвимостями.
Обновление всех пакетов
Сервер NuGet MCP также может обновить пакеты до последних совместимых версий. Чтобы использовать сервер MCP для обновления всех пакетов, введите следующий запрос в окне Copilot Chat GitHub:
Обновите все мои пакеты до последних совместимых версий
Сервер MCP анализирует целевые платформы проекта и предлагает обновления последней версии пакетов, совместимых с вашим проектом.
Обновление пакета до определенной версии
Сервер NuGet MCP может обновить определенный пакет до указанной версии. Для этого введите следующий запрос в окне Copilot Chat GitHub:
Обновите пакет [PackageName] до версии [VersionNumber]
Support
Если у вас возникли проблемы с сервером NuGet MCP или есть другие отзывы, откройте проблему в репозитории NuGet GitHub. Укажите запрошенную информацию в шаблоне проблемы, чтобы лучше понять и решить проблему или предложение.
Предпросмотр markdown из Copilot Chat
Просматривайте любое содержимое Markdown, созданное в Copilot Chat, непосредственно в редакторе Markdown Visual Studio.
Теперь вы можете просмотреть любое содержимое Markdown, созданное Copilot Chat непосредственно в редакторе Markdown Visual Studio. Ранее эта функция была доступна только для схем русалок.
![]()
Когда Copilot Chat создает содержимое markdown, нажмите кнопку Preview в правом верхнем углу окна чата, чтобы просмотреть отрисованный предварительный просмотр. После этого можно изменить и сохранить содержимое markdown по мере необходимости. Это позволяет быстро визуализировать и работать с файлами markdown без ручного копирования и вставки.
Щелкните, чтобы принять завершение кода
Примите завершение кода до позиции курсора с помощью одного щелчка мыши.
Хотели ли вы когда-нибудь принять автодополнение одним щелчком мыши? Новая функция Принятие щелчком позволяет щелкнуть мышью на предложении автозаполнения и принять его в позиции курсора. При наведении курсора на автодополнение, фрагмент кода подсвечивается, демонстрируя, что он будет принят.
![]()
Эта функция дает вам больше контроля над тем, насколько автодополнения вы хотите принять, что упрощает интеграцию предложений в ваш код. Если вы предпочитаете использовать клавиатуру, вы можете нажать CTRL + +, чтобы принять по одному слову, или CTRL + СТРЕЛКА ВНИЗ+ по одной строке.
Попробуйте функцию принятия по щелчку и поделитесь своим мнением.
Цветные завершения кода
Теперь завершения кода цветируются с выделением синтаксиса для повышения удобочитаемости.
Завершение кода из GitHub Copilot или IntelliCode теперь окрашено с выделением синтаксиса, чтобы быстро проанализировать предлагаемый код. Раньше завершение отображалось одним цветом, из-за чего было сложнее различать переменные, функции и другие элементы кода. Чтобы попробовать цветовую настройку, можно перейти к разделу "Сервис" → параметры → текстового редактора → завершения кода и проверить использование цветного текста для завершения кода.
![]()
Чтобы отличить предложения от реального кода, автодополнения отображаются с пониженной прозрачностью и курсивом. Чтобы настроить стили, перейдите в раздел "Средства → параметры → среда → шрифты и цвета" и измените элемент завершения кода .
Поделитесь своим мнением о новой подсветке!
Обновления памяти Copilot 📣
Сделайте Copilot адаптируемым под ваши нужды, обучив его вашим стандартам кодирования и лучшим практикам - создавая согласованность, которая сохраняется между сеансами!
Научите Copilot стандартам вашего программирования и лучшим практикам проекта при помощи памяти. После сохранения Copilot последовательно применяет ваши предпочтения во всех сеансах чата, что делает его действительно ориентированным на проект.
![]()
Как работают воспоминания Copilot
Памяти используют интеллектуальную технологию для обнаружения ваших предпочтений, когда вы общаетесь в чате. Когда вы исправляете поведение Copilot, укажите стандарт или попросите помнить что-то, появится запрос на подтверждение. Выберите сохранить настройки в личных инструкциях (
%USERPROFILE%/copilot-instructions.md) или в инструкциях вашего репозитория (/.github/copilot-instructions.md).Каждый раз, когда вы общаетесь, вы обучаете Copilot лучше реагировать и документируете лучшие практики для себя и вашей команды.
Благодарим Peter Matthews за предложение этой функции и всех, кто проголосовал за нее!
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Доступ к пользовательским подсказкам с помощью слэш-команд
Быстро используйте свои избранные пользовательские подсказки с помощью слэш-команд в Copilot Chat.
Теперь вы можете быстрее вызывать ваши любимые пользовательские запросы с помощью команд с косой чертой в Copilot Chat. Вместо того, чтобы вводить
#и искать нужный вариант среди всех доступных упоминаний, введите/, и ваши пользовательские запросы появятся в верхней части списка IntelliSense. Запросы пользователя отмечены значком закладки, а у системных запросов по умолчанию нет значка, и они отображаются ниже.
![]()
Мы также добавили две новых команды с косой чертой, благодаря которым вам будет проще создавать пользовательские инструкции и запросы:
/generateInstructions: генерирование для вашего проекта пользовательских инструкций на уровне репозитория. Не знаете, как написать файл пользовательских инструкций для своего репозитория? Эта команда предоставляет всё необходимое. Она автоматически генерирует файлcopilot-instructions.mdдля вашего проекта, используя его контекст, например стиль написания кода и настройки./savePrompt: извлечение из текущего потока запроса, предназначенного для многократного использования, и его сохранение в файле с запросами. Используйте эту команду при вводе запроса, который хотите использовать многократно, чтобы в дальнейшем без труда обращаться к нему посредством команд/.Попробуйте новые слэш-команды уже сегодня и поделитесь своими впечатлениями!
Отладка и диагностика
Подсказки данных в визуализаторе IEnumerable
Глубокая инспекция объектов непосредственно в визуализаторе IEnumerable.
Теперь в визуализаторе IEnumerable для проверки объектов при отладке можно использовать подсказки по данным. Наведите курсор на любую ячейку в сетке, чтобы увидеть весь объект, соответствующий этому значению, пользуясь таким же инструментом подсказок по данным, как в окне редактора и окне наблюдения.
![]()
Благодаря этому вам будет намного проще выполнять отладку коллекций со сложными или вложенными типами. Независимо от того, работаете ли вы с
List<T>объектов домена или со словарем, включающим структурированные значения, достаточно один раз навести курсор, чтобы отобразить все свойства объекта.
Анализ стека вызовов
Анализ стека вызовов по одному щелчку, чтобы понять состояние среды выполнения приложения.
Мы вводим функцию "Анализ стека вызовов с помощью Copilot", которая поможет ответить на простой, но критически важный вопрос при отладке: что сейчас делает мой поток или приложение? Новая кнопка Analyze Call Stack в окне стека вызовов позволяет отправлять текущее состояние отладки в Copilot одним щелчком, открыв окно чата с помощью анализа состояния приложения. Без догадок.
![]()
Copilot понимает синхронные и асинхронные стеки вызовов и аннотирует соответствующие кадры. Независимо от того, ожидает ли ваше приложение асинхронную задачу или при асинхронном выполнении в нем произошел сбой, если вы щелкните по кадру с аннотацией, то отобразится четкое объяснение, почему выполнение приостановлено, чего ожидает поток и почему это произошло.
Благодаря этому из статического списка фреймов стек вызовов превращается в интерактивный инструмент для отладки. Вместо ручного восстановления асинхронных потоков Copilot помогает быстро понять поведение среды выполнения и вернуться к устранению реальной проблемы.
Агент профилировщика с поддержкой модульного теста
Агент профилировщика расширяется до рабочих процессов модульного тестирования.
Мы расширили функциональность агента профайлера с поддержкой модульного тестирования. Теперь вы можете проверить, удалось ли повысить производительность, используя имеющиеся модульные тесты. Благодаря этому вы чаще сможете выполнять такую проверку, чтобы вам было проще отслеживать и оптимизировать производительность. Агент обнаруживает соответствующие модульные тесты для проверки путей кода, наиболее существенно влияющих на производительность, в дополнение к тестам BenchmarkDotNet.
Если подходящих тестов не существует, он автоматически создает упрощенный артефакт измерения, чтобы собрать тестовые показатели и сравнить результаты после оптимизации.
![]()
Благодаря подходу, в основе которого лежит модульное тестирование, агент профилировщика также поддерживает сценарии C++, в которых тесты на соответствие эталонным показателям не всегда практичны, но модульные тесты уже имеются.
Агент профилировщика анализирует данные о производительности, выявляет узкие места, генерирует или улучшает модульные тесты или тесты на соответствие эталонным показателям, дает рекомендации по целенаправленной оптимизации и подтверждает улучшение показателей в рамках управляемого цикла. Вам доступны все возможности агента профилировщика, теперь на основе модульных тестов, которые применяются к большему количеству языков и проще адаптируются к различным проектам.
Рабочий стол
Агент WinForms Expert
Агент кода теперь включает специальные инструкции по разработке WinForms, созданные экспертами в команде.
Агент WinForms Expert — это комплексное руководство, которое помогает решить сложные проблемы разработки WinForms. Она охватывает несколько критически важных областей:
Код конструктора и обычный код: проекты WinForms имеют два разных контекста кода — созданный конструктором код сериализации и современную бизнес-логику. Агент знает, какие функции C# можно использовать в каждом контексте.
Современные шаблоны .NET: агент полностью обновлён для .NET 8-10, включая:
- Шаблоны привязки данных MVVM с помощью комплекта инструментов сообщества.
- Шаблоны Async/await с правильными перегрузками метода InvokeAsync.
- Поддержка темного режима и готовность к высокому DPI.
- Ссылочные типы, допускающие значение NULL (NRT), находятся в нужных местах.
Рекомендации по макету. Получите рекомендации по использованию TableLayoutPanel и FlowLayoutPanel для адаптивных макетов с поддержкой DPI, которые работают в разных размерах экрана и коэффициентах масштабирования.
Управление сериализацией CodeDOM: изучите критические правила сериализации свойств в конструкторе WinForms, чтобы избежать распространенных ошибок с
[DefaultValue]атрибутами иShouldSerialize*()методами.Обработка исключений. Используйте правильные шаблоны для асинхронных обработчиков событий и обработки исключений на уровне приложения, чтобы предотвратить сбои процесса.
Инструкции агента подробно описаны, охватывая все соглашения об именовании элементов управления и требования к специальным возможностям. Это похоже на то, что старший архитектор WinForms просматривает каждую строку кода.
.NET
источники аудита NuGet
Visual Studio теперь поддерживает источники аудита для обнаружения уязвимостей пакетов с помощью NuGet Audit.
Необходимо провести аудит пакетов NuGet на наличие уязвимостей без использования nuget.org в качестве источника пакетов? Теперь можно настроить отдельные источники аудита.
Visual Studio теперь позволяет настроить источники аудита для аудита NuGet. Эти источники обнаруживают уязвимости пакетов независимо от источников пакетов. Дополнительные сведения см. в документации по источникам аудита.
Пользовательский интерфейс NuGet диспетчер пакетов
В пользовательском интерфейсе NuGet диспетчер пакетов отображаются уязвимости, обнаруженные из настроенных источников аудита.
В этом примере частный фид используется в качестве источника пакетов, но обнаружена известная уязвимость, так как настроен источник проверок.
![]()
Настройка источников аудита
Чтобы настроить источники аудита, перейдите к Tools → Options → NuGet диспетчер пакетов → Sources.
Источники аудита предоставляют данные уязвимости в процессе восстановления, не выступая в качестве источников пакетов. Если вы не настраиваете источники аудита, NuGet Audit использует вместо этого источники пакетов.
Чтобы настроить источник аудита, выберите "Использовать отдельные источники для аудита уязвимостей". В этой таблице отображается таблица для управления источниками аудита, аналогичной таблице источников пакетов.
![]()
Чтобы использовать nuget.org в качестве источника аудита, используйте стандартный URL-адрес индекса:
https://api.nuget.org/v3/index.json
![]()
Устаревание функции Web Live Preview
Предварительная версия веб-трансляции устарела и удалена.
Мы признали устаревшей и удалили веб-просмотр в реальном времени в Visual Studio 2026. Если необходимо изменить ASP.NET Web Forms, используйте встроенный конструктор веб-форм.
Дополнительные сведения см. в документации ASP.NET Web Forms Designer.
Улучшения для Горячая перезагрузка
Более быстрый и надёжный Razor Горячая перезагрузка с поддержкой автоматического перезапуска для неполных изменений.
Мы внесли несколько улучшений в работу функции Горячая перезагрузка в Visual Studio.
Улучшена производительность и надежность Горячая перезагрузка для файлов Razor.
Благодаря совместному размещению компилятора Razor внутри процесса Roslyn, редактирование .razor-файла во время Горячая перезагрузка стало гораздо быстрее и эффективнее (учитывая предыдущие отзывы о том, что Blazor Горячая перезагрузка мог занимать десятки секунд). Это изменение также повышает общую надежность при использовании Горячая перезагрузка.
Меньше заблокированных изменений (уменьшение «грубого редактирования»)
Мы расширили, какие изменения кода разрешены во время Горячая перезагрузка. Некоторые изменения, которые ранее запускали грубое редактирование (изменения, требующие перестраивания и перезапуска), теперь внедряются без проблем. Ниже приведены некоторые примеры изменений, которые больше не являются грубым изменением:
- Переименование файла
- Редактирование кода, содержащего лямбда-выражения со значениями параметров по умолчанию
- Редактирование спецификаторов доступа к свойствам с помощью ключевого слова field
Автоматический перезапуск при «грубом редактировании»
Горячая перезагрузка теперь может автоматически перезапустить процесс приложения, если производится неподдерживаемое изменение ("грубое редактирование"), вместо завершения всего сеанса отладки.
Чтобы включить эту возможность, отредактируйте файл проекта и добавьте в него это объявление свойства.
<PropertyGroup> <HotReloadAutoRestart>true</HotReloadAutoRestart> </PropertyGroup>Это также можно указать в файле Directory.Build.props. Эта оптимизированная функция автоматического перезапуска применяется для тех типов проектов, в которых возможен быстрый перезапуск процесса (например, некоторые проекты Aspire или веб-проекты), что позволяет продолжить выполнение отладки с минимальными перерывами.
Это перезапуск, основанный на процессе. Если выполняется отладка 4 проектов, то будут перестроены и повторно запущены только проекты с внесенными изменениями, а также все связанные с ними проекты.
Улучшения редактора Razor
Более быстрый и интеллектуальный редактор Razor в Visual Studio, ко-хостинг повышает скорость и надежность, а также многое другое.
Список серьезных изменений, реализованных в редакторе Razor, приведен ниже.
Производительность & надежность (совместное размещение)
Теперь компилятор Razor и инструменты работают совместно на сервере Roslyn LSP, что значительно ускоряет процесс обновления файлов Razor (например, изменения Горячая перезагрузка применяются гораздо быстрее) и повышает надежность во время редактирования.
Упрощение действия кода тега (вклад сообщества)
Добавлено новое исправление кода, которое позволяет преобразовать пустой тег компонента в самозакрывающийся тег при отсутствии контента или обязательных дочерних элементов (предоставлено Питером Юхасом). Например,
<Component Attribute="Value"> </Component>можно упростить до<Component Attribute="Value" />.Извлечение блока стилей в файл .razor.css
Теперь вы можете использовать действие кода, чтобы перенести встроенный раздел
<style>из компонента Razor в отдельный файл .razor.css. Это упрощает изоляцию специфичных для компонента стилей Изоляция CSS платформы Blazor путем автоматического создания или обновления соответствующего файла .razor.css для компонента.@bind:event Intellisense
Повышена эффективность функции Razor IntelliSense для предоставления подсказок по завершению для значений
@bind:<event>(предоставлено Питером Юхасом). В процессе использования двусторонней привязки данных с пользовательскими событиями (например,@bind="Value" @bind:event="oninput"в Blazor) редактор теперь автоматически дополняет действительные имена событий, такие как oninput или onchange.Усовершенствования форматирования
Реализованный в редакторе Razor новый механизм форматирования был значительно улучшен и расширен. Редактор Razor теперь лучше учитывает параметры стилей форматирования для C# (например, интервалы и отступы из конфигурации Visual Studio) внутри файлов Razor и разрешает различные причуды форматирования, которые существовали в предыдущих версиях (особенно вокруг смешанного содержимого HTML/C#).
Усовершенствования подсказок при отладке
Улучшены всплывающие подсказки отладчика в файлах Razor. Visual Studio теперь более надежно отображает значения переменных и предварительные версии объектов при наведении указателя мыши на переменные или компоненты в файле Razor во время сеанса отладки, что упрощает проверку данных во время выполнения.
Переход к определению для Тег-хелперов
Используя новые возможности совместной работы, теперь можно перейти к определениям помощников тегов ASP.NET Core MVC и их атрибутов прямо из файлов Razor. Нажав на клавишу F12 (или Ctrl+Click) на вспомогательной функции тега (например,
<input asp-for=" ">или любом использовании вспомогательной функции тега MVC), вы перейдете к определению его исходного кода. Эта давно ожидаемая функция значительно упрощает понимание и изучение работы тег-хелперов в проектах.Общие исправления для IntelliSense
Устранены несколько проблем, возникавшие при использовании IntelliSense в редакторе Razor. Фрагменты HTML (например, ввод
div+Tabдля расширения блока<div>) теперь стабильно отображаются в файлах Razor (ранее они в некоторых случаях не отображались). Автозавершение для атрибутов и параметров компонентов с дефисами (например, атрибутовdata-*или параметров компонентов Blazor с дефисами) стало более надежным, поэтому в таких случаях предложения и дополнения работают так, как и ожидалось.Оптимизация компилятора Razor
Значительно улучшена производительность компилятора и оптимизировано использование памяти для проектов Razor и Blazor. Решения с большим количеством компонентов Razor должны компилироваться быстрее и потреблять меньше памяти. Эти улучшения ускоряют редактирование и создание страниц Razor и являются ответом на предыдущие замечания, которые касались чрезмерного потребления памяти и невысокой скорости инкрементного компилирования в крупных приложениях Blazor.
Устаревший редактор Razor для ASP.NET Core
Устаревший редактор Razor для ASP.NET Core полностью заменен современным редактором Razor, работающим в режиме совместного размещения. Устаревший редактор больше недоступен.
Параметр в разделе "Инструменты" > "Параметры" для включения устаревшего редактора Razor больше не используется и будет удален в одной из будущих версий Visual Studio.
Умная генерация тестов .NET
Создавайте и усовершенствуйте модульные тесты быстрее с помощью интеллектуального создания тестов GitHub Copilot.
Visual Studio теперь включает более интеллектуальное создание тестов с GitHub Copilot. Вы можете быстро создавать и настраивать тесты, чтобы увеличивать охват и уровень доверия к вашему коду. Этот процесс целенаправленного тестирования работает с C# и такими популярными платформами, как xUnit, NUnit и MSTest.
![]()
Независимо от того, запускаете ли вы новый проект или улучшаете существующий, тестирование с GitHub Copilot помогает быстрее писать тесты и упрощает их интеграцию в ваш рабочий процесс. Просто введите @Test в Copilot Chat GitHub, опишите, что необходимо проверить, и Copilot создает тестовый код.
C++
Модернизация Приложения для C++
Модернизация приложения GitHub Copilot для C++ теперь доступна в публичной предварительной версии.
Мы рады сообщить, что приложение GitHub Copilot для модернизации C++ теперь доступно в Общедоступном Предварительном Просмотре.
Модернизация приложения GitHub Copilot для C++ обновляет ваши проекты C++ для использования последних версий MSVC и устраняет проблемы, связанные с обновлением.
Нашу документацию user можно найти в Microsoft Learn.
Начало работы
- Установите Visual Studio 2026 версии 18.3 или более поздней версии с выбранной рабочей нагрузкой C++.
- Откройте проект MSBuild (.sln) или CMake, использующий MSVC для создания Windows.
- Попросите @Modernize в окне Copilot Chat GitHub обновить ваш проект для использования MSVC версии 14.50. Запустите агент Modernize через контекстное меню, щелкнув правой кнопкой мыши по решению в Обозревателе решений, или выберите Project → Перенастроить решение в верхнем меню.
![]()
Модернизация Приложения
Модернизация приложения GitHub Copilot для C++ теперь доступна в закрытом предварительном просмотре.
Мы рады сообщить, что модернизация приложения GitHub Copilot для C++ теперь находится в приватной предварительной версии. Модернизация GitHub приложение Copilot для C++ помогает перенести проекты C++ в последнюю версию средств сборки Microsoft C++ (MSVC).
окно
с планом, созданным для устранения предупреждений и ошибок после обновления до последней версии MSVC
Хотите попробовать? Зарегистрируйтесь в закрытой предварительной версии на aka.ms/cppagents.
Код для режима редактирования агента
Инструменты редактирования кода C++ для режима агента GitHub Copilot теперь доступны в предварительном частном просмотре.
Мы с радостью сообщаем, что инструменты редактирования кода C++ для Режима Агента GitHub Copilot теперь находятся в общедоступной предварительной версии. Эти средства помогают Copilot более эффективно перемещать базу кода C++, поэтому при рефакторинге или изменении кода вы получаете лучшие предложения. Теперь Copilot может:
- Поиск всех ссылок на символы в проекте
- Доступ к метаданным, таким как сведения о типах, объявлениях и области видимости
- Сопоставление иерархий наследования классов
- Следуйте цепочкам вызовов функций
Чтобы приступить к работе, выполните приведенные действия.
- Убедитесь, что режим агента GitHub Copilot включен в интегрированной среде разработки.
- Откройте проект C++ .
- Перейдите к Tools → Options → GitHub → Copilot и включите средства Enable C++ для использования Copilot.
- Перезапустите интегрированную среду разработки или решение.
- Включите определенные средства с помощью значка Tools в Copilot Chat.
![]()
Примечание. Имена инструментов и пользовательский интерфейс могут изменяться во время общедоступной предварительной версии.
После включения инструментов Copilot автоматически использует их при ответах на вопросы или при предложении изменений в коде.
Copilot, использующий инструменты C++ для анализа и изменения кода в нескольких файлах
Для получения наилучших результатов напишите четкие запросы и используйте модели ИИ, поддерживающие вызовы инструментов. Узнайте больше о сравнении моделей ИИ в документации GitHub
Производительность сборки для Windows
GitHub Copilot производительность сборки для Windows теперь доступна в общедоступной предварительной версии.
Мы рады сообщить, что производительность GitHub Copilot для Windows теперь доступна в публичной предварительной версии.
GitHub Copilot производительность сборки для Windows
GitHub Copilot производительность сборки для Windows использует Build Insights для выявления и устранения проблем с производительностью сборки в проектах C++ с помощью MSVC. Этот агент анализирует процесс сборки, подсказывает, что можно оптимизировать, и вносит нужные изменения, тем самым ускоряя данный процесс:
- Ускорьте синтаксический анализ заголовков за счет создания предварительно скомпилированных заголовков и оптимизации путей включения (например, удаления неиспользуемых включений).
- Рефакторинг функций для ускорения синтаксического анализа функций или упразднения потребности в нем.
- Модернизация кода C++, чтобы использовать новые функции языка, ускоряющие компиляцию.
- Оптимизация параметров сборки для параллельного создания нескольких сборок и использования оптимальных параметров компоновщика.
Начало работы
- Убедитесь, что режим агента GitHub Copilot включен в интегрированной среде разработки.
- Откройте проект C++ .
- Попросите @BuildPerfCpp в окне GitHub Copilot Chat для оптимизации времени сборки.
Примечание. Build Insights должна быть запущена для сбора данных о производительности сборки. Ей также необходимо получить разрешения, необходимые для того, чтобы собирать данные о трассировке ETL. Один раз примите запрос UAC, чтобы разрешить технологии Build Insights собирать из MSVC данные о событиях ETW.
Попросите @BuildPerfCpp в чате GitHub Copilot, чтобы оптимизировать время сборки.
Extensibility
Экспериментальный экземпляр перемещен
Добавлены команды "Запуск экспериментального экземпляра" и "Сброс экспериментального экземпляра" в меню "Расширения".
Команды запуска и сброса экспериментального экземпляра теперь находятся в меню "Расширения" → "Разработка расширений". Вам больше не нужно использовать сочетания клавиш меню "Пуск" Windows для запуска или сброса экспериментального экземпляра Visual Studio.
![]()
Эти команды проще найти и они помогают вам избежать случайного запуска экземпляров с корневыми суффиксами, предназначенных только для разработки расширений Visual Studio.
При желании вы можете по-прежнему использовать старые ярлыки по ссылке
[installdir\vssdk].
Основные исправления ошибок
| Основные исправления ошибок | От сообщества |
|---|---|
| Обновлен установщик Visual Studio, чтобы включить последний выпуск пакета SDK для Windows версии 10.0.26100 (10.0.26100.7705). | Запрос обратной связи |
| Столбцы таблиц в репозитории Git больше не изменяются | Запрос обратной связи |
| Элементы TFVC в папках проекта не находятся под управлением версий. | Запрос обратной связи |
Версия 18.2.2
Выпущено 10 февраля 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Исправлена ошибка в оптимизаторе MSVC, вызвавшей плохое создание кода сборки. |
| Устранены проблемы безопасности, указанные в рекомендациях | CVE | Descritpion |
|---|---|---|
| Уязвимость удаленного выполнения кода в Github Copilot и Visual Studio | CVE-2026-21256 | Это обновление безопасности устраняет уязвимость, вызванную ненадлежащей нейтрализацией специальных элементов, используемых в команде ('внедрение команд') в GitHub Copilot и Visual Studio, что позволяет несанкционированному злоумышленнику выполнять код по сети. |
| Уязвимость обхода компонентов безопасности Github Copilot и Visual Studio | CVE-2026-21257 | Это обновление системы безопасности устраняет уязвимость, где ненадлежащая нейтрализация специальных элементов, используемых в команде ('инъекция команд') в GitHub Copilot и Visual Studio, позволяет авторизованному злоумышленнику повысить уровень привилегий через сеть. |
| Уязвимость обхода функции безопасности .NET | CVE-2026-21218 | Это обновление системы безопасности устраняет уязвимость, при которой неправильная обработка отсутствующего специального элемента в .NET и Visual Studio позволяет авторизованному злоумышленнику выполнять подмену по сети. |
Версия 18.2.1
Выпущено 20 января 2026 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Отсутствует компонент Microsoft.VCRedistVersion.v143.default.props в VS2026. | Запрос обратной связи |
| Неустранимая ошибка C1001: внутренняя ошибка компилятора | Запрос обратной связи |
Обновление за январь 18.2.0
Выпущено 13 января 2026 г.
GitHub Copilot
Сервер NuGet MCP
Provides способ обновления пакетов с известными уязвимостями и может получать сведения о пакетах в режиме реального времени для GitHub Copilot.
MCP сервер NuGet встроен в систему, но требует однократной активации для использования. Дополнительные сведения см. в документации по MCP серверу NuGet.
Начало работы
Чтобы включить сервер NuGet MCP, выполните следующие действия в Visual Studio 2026:
Откройте окно GitHub Copilot Chat и убедитесь, что вы вошли в систему.
Щелкните значок инструментов на нижней панели инструментов, чтобы открыть меню "Инструменты".
- Найдите сервер MCP с именем Nuget и установите флажок, чтобы включить его.
![]()
Устранение уязвимостей пакета
Сервер NuGet MCP помогает выявлять и устранять уязвимости пакетов в проекте. Чтобы использовать сервер MCP для устранения уязвимостей, введите следующий запрос в окне Copilot Chat GitHub:
Исправление уязвимостей пакета
Сервер MCP анализирует зависимости проекта и предлагает обновления пакетов с известными уязвимостями.
Обновление всех пакетов
Сервер NuGet MCP также может обновить пакеты до последних совместимых версий. Чтобы использовать сервер MCP для обновления всех пакетов, введите следующий запрос в окне Copilot Chat GitHub:
Обновите все мои пакеты до последних совместимых версий
Сервер MCP анализирует целевые платформы проекта и предлагает обновления последней версии пакетов, совместимых с вашим проектом.
Обновление пакета до определенной версии
Сервер NuGet MCP может обновить определенный пакет до указанной версии. Для этого введите следующий запрос в окне Copilot Chat GitHub:
Обновите пакет [PackageName] до версии [VersionNumber]
Support
Если у вас возникли проблемы с сервером NuGet MCP или есть другие отзывы, откройте проблему в репозитории NuGet GitHub. Укажите запрошенную информацию в шаблоне проблемы, чтобы лучше понять и решить проблему или предложение.
.NET
Модернизация приложения GitHub Copilot
Динамический трехэтапный рабочий процесс для обновлений .NET.
Мы представили трехэтапный подход, который поможет вам оценить, спланировать и выполнить обновление .NET с более подробными сведениями и видимостью. В файле Assessment перечислены устаревшие пакеты NuGet, целевые версии, количество проектов, а также изложена информация о сложности обновления и анализе API.
Файл плана теперь динамически формируется на основе этой оценки, благодаря чему план обновления соответствует состоянию проекта. Мы также заменили хороший старый документ о ходе выполнения на файл выполнения задач, который обновляется по мере их выполнения.
Все три файла полностью динамические, редактируются и синхронизируются на всех этапах данного процесса, благодаря чему модернизация выполняется более прозрачно и совместно от начала до конца.
C++
Версии MSVC начиная с Visual Studio 2022
MSVC Build Tools версии 14.30-v14.43 теперь доступны в Visual Studio 2026.
Чтобы упростить перенос существующих проектов C++ в Visual Studio 2026, теперь мы включаем Microsoft средства сборки C++ (MSVC) версии 14.30-14.43 в установщике Visual Studio 2026 на вкладке Individual components. Эти версии первоначально поставляются в Visual Studio 2022 года.
В результате этого изменения пользователи Visual Studio 2022 (версия 17.0-v17.14) могут продолжать использовать существующую версию компилятора при обновлении до Visual Studio 2026. Просто установите нужную версию и загрузите проект в последнюю версию интегрированной среды разработки, чтобы приступить к работе.
Поддержка новых версий MSVC также будет добавлена в помощник по настройке Visual Studio в будущем обновлении.
Основные исправления ошибок
| Основные исправления ошибок | От сообщества |
|---|---|
| В публикации веб-сайтов отсутствует опция FTP. | Запрос обратной связи |
| Окно форматирования документа для печати не закрывается (VS2026) | Запрос обратной связи |
| Исправлена проблема, из-за которой некоторые тернарные выражения с функциями преобразования к ссылочному типу считаются rvalues вместо lvalues. | Запрос обратной связи |
| Отладчик и Visual Studio 18.1.1 завершаются аварийно | Запрос обратной связи |
Версия 18.1.1
Выпущено 16 декабря 2025 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Внутренняя ошибка компилятора в msvc 14.50.35717 | Запрос обратной связи |
| VS2026 (18.0.0) отсутствует возможность установки средств LTSC C++ | Запрос обратной связи |
| После обновления расширения VS2026 не работают | Запрос обратной связи |
| Исправлена эта проблема, из-за которой пользователи ReSharper испытывают более длительное время запуска в Visual Studio 2026, чем в Visual Studio 2022. | Запрос обратной связи |
| В окнах инструментов нет пункта "Закрыть" в контекстном меню. | Запрос обратной связи |
| Наблюдение за недетерминированными выходными данными при создании UCRT для сборок CHPE | Запрос обратной связи |
| Поиск нарушается в окне реестров MCP | Запрос обратной связи |
| Исправлена проблема, из-за которой ARM64 Enclave VCRuntime не удавалось связать правильно. | |
| Обновлен установщик Visual Studio, чтобы включить последний выпуск обслуживания пакета SDK 10.0.26100 Windows (10.0.26100.7175). |
Обновление за декабрь 18.1.0
Выпущено 9 декабря 2025 г.
Интегрированная среда разработки (IDE)
Управление проверкой подлинности MCP
Теперь вы можете управлять учетными данными аутентификации для серверов MCP в единой среде в Visual Studio.
Теперь вы можете управлять учетными данными проверки подлинности для серверов MCP в одном месте в Visual Studio, включая учетные данные из хранилища ключей Visual Studio, такие как учетные записи Microsoft и GitHub. Доступ к этой возможности осуществляется в новом интерфейсе управления серверами MCP.
![]()
Инструкции по серверу MCP
Теперь вы можете просматривать файлы инструкций, которые могут поставляться с серверами MCP, непосредственно в Visual Studio.
Инструкции сервера MCP — это быстрый системный ответ, который сервер отправляет на хост, показывая вам, как использовать инструменты данного сервера. Теперь эти файлы инструкций можно просмотреть непосредственно в Visual Studio. Просто откройте новый интерфейс работы с управлением серверами MCP, чтобы ознакомиться с ними.
![]()
Запросы MCP и выборка
Поддержка запросов MCP и новый пользовательский интерфейс для проведения опросов и выборки в чате.
MCP в Visual Studio теперь поддерживает запросы. Протокол контекста модели (Model Context Protocol, MCP) позволяет серверам запрашивать у вас дополнительные сведения через клиент во время взаимодействия. Этот поток помогает управлять взаимодействием с пользователем и общим доступом к данным, пока серверы собирают требуемые сведения.
Теперь вы можете реагировать на запросы выборки и элиситации MCP прямо в окне чата — это упрощает и облегчает работу.
![]()
![]()
Управление серверами MCP
Более простой, более унифицированный UX для управления серверами MCP в Visual Studio.
Управление серверами MCP в Visual Studio теперь проще с помощью единого интерфейса. Благодаря упрощенному пользовательскому интерфейсу управления вы сможете быстрее настраивать серверы, просматривать их состояние и проверять подлинность.
![]()
Для начала работы щелкните "Настроить" во всплывающем элементе для любого из серверов в окне выбора инструментов.
![]()
GitHub Copilot
Предварительная версия GitHub Cloud-агента
Делегируйте задачи облачному агенту, а Copilot пусть обрабатывает рутинную работу, пока вы сосредоточены.
Теперь GitHub Cloud Agent доступен в предварительной версии. Вы можете выгрузить повторяющиеся или трудоемкие задачи, такие как очистка пользовательского интерфейса, рефакторинг, обновление документов и многофайловые изменения, в облачный агент и просмотреть изменения позже.
Включение облачного агента
Чтобы включить облачный агент, выполните следующие действия.
Щелкните раскрывающийся список значков Copilot.
Выберите Настройки и параметры → Кодирующий агент (Предварительный просмотр).
- Перезапустите Visual Studio.
Note: Агент облака требует подключения решения к репозиторию GitHub.
Принцип работы
После включения можно делегировать задачи непосредственно из Visual Studio. Облачный агент подготавливает изменения для вашего рассмотрения, поэтому вы можете сосредоточиться на создании и отладке ядра проекта вместо утомительной обработки изменений.
Мы активно совершенствуем этот интерфейс на основе ваших отзывов. Скоро в Visual Studio появятся прямые ссылки на pull request, что позволит проще проверять изменения, внесенные агентом, не нарушая ваш рабочий процесс.
Это важно
Активируйте GitHub Copilot бесплатно и разблокируйте эту и другие функции ИИ. Никаких пробных периодов. Не нужна кредитная карта. Только ваша учетная запись GitHub.
Отладка и диагностика
Умное устранение неполадок точек останова
Copilot теперь автоматически исправляет несвязанные точки останова, чтобы ускорить отладку.
Поддержка Copilot для свободных точек останова была доступна в течение некоторого времени, используя возможность выбрать Спросить Copilot в всплывающей подсказке, но в Dev18 она получает значительное обновление. Ранее Copilot считывает сообщение об ошибке и предлагает следующие действия.
![]()
Теперь он выполняет более глубокую автоматическую проверку файла, проверку загруженных модулей и символов, определение правильного модуля и загрузку нужных символов.
![]()
Это улучшение также расширяет охват за рамки проблем с символами. Copilot теперь помогает устранить проблемы, вызванные неправильной подсистемой отладки, точками останова, отключенными JMC или управляемыми оптимизациями, устаревшими двоичными файлами и т. д. Большинство проблем с непривязанными точками останова теперь можно исправить с помощью одного щелчка, что делает весь процесс работы более быстрым и надежным.
Debugger Copilot использует окно Output
Помощь Debugger Copilot использует контекст окна вывода для интеллектуальной отладки.
В Dev 18 помощь Copilot в отладчике была обновлена, чтобы использовать данные о выполнении программы из окна вывода во время отладки. При анализе исключения Copilot запрашивает разрешение на доступ к контексту окна вывода по мере необходимости.
В примере ниже помощник по работе с исключениями использует контекст окна вывода для обеспечения более точных и полезных ответов.
![]()
Этот контекст теперь доступен в режиме отладки, включив более широкие аналитические сведения для вспомогательного средства исключения, анализа переменных, проверки кода и других сценариев отладки. Объединяя аналитические сведения о коде и среде выполнения, это обновление повышает качество ответов вспомогательных исключений, помогает быстрее определить первопричины, рекомендует точные исправления и выделяет соответствующий код. Результатом является более надежная, эффективная и контекстная отладка в нескольких рабочих процессах отладки.
.NET счетчики для агента профилировщика
Profiler Agent предоставляет более глубокую аналитику ASP.NET благодаря поддержке новых счетчиков .NET.
Агент профилировщика Copilot теперь использует счетчики .NET для сценариев ASP.NET, что дает более подробную информацию о производительности приложения. Наряду с анализом ЦП и памяти теперь вы получаете:
Проект обнаружения черт для более умной и контекстно-зависимой диагностики
Анализ, управляемый счетчиками, позволяет быстрее устранять проблемы с производительностью ASP.NET
- Расширенная сквозная аналитика для определения узких мест с большей точностью
Пример результатов с помощью средства счетчиков:
![]()
Это обновление делает агент профилировщика более мощным для приложений ASP.NET, помогая выявлять проблемы рано, понимать первопричины и принимать меры уверенно.
Анализ исключений в контексте репозитория GitHub
Exception Analysis теперь использует контекст репозитория GitHub для предоставления интеллектуальной аналитики отладки с учетом контекста.
Мы усовершенствовали помощник исключений с контекстом репозитория, что предоставляет более богатые сведения для более быстрой и точной отладки. Средство помощи при исключениях теперь осуществляет перекрестные ссылки на ваш открытый репозиторий, включая прошлые ошибки, проблемы, pull requests и исторические исправления, чтобы предоставить рекомендации, непосредственно относящиеся к вашей базе исходного кода.
Эта функция поддерживает как GitHub, так и репозитории Azure DevOps.
![]()
Теперь вы получите интерфейс отладки с высокой точностью с учетом контекста, адаптированный к репозиторию.
Рабочий стол
Агент WinForms Expert
Агент кода теперь включает специальные инструкции по разработке WinForms, созданные экспертами в команде.
Агент WinForms Expert — это комплексное руководство, которое помогает решить сложные проблемы разработки WinForms. Она охватывает несколько критически важных областей:
Код конструктора и обычный код: проекты WinForms имеют два разных контекста кода — созданный конструктором код сериализации и современную бизнес-логику. Агент знает, какие функции C# можно использовать в каждом контексте.
Современные шаблоны .NET: агент полностью обновлён для .NET 8-10, включая:
Шаблоны привязки данных MVVM с помощью комплекта инструментов сообщества.
Шаблоны Async/await с правильными перегрузками метода InvokeAsync.
- Поддержка темного режима и готовность к высокому DPI.
- Ссылочные типы, допускающие значение NULL (NRT), находятся в нужных местах.
Рекомендации по макету. Получите рекомендации по использованию TableLayoutPanel и FlowLayoutPanel для адаптивных макетов с поддержкой DPI, которые работают в разных размерах экрана и коэффициентах масштабирования.
Управление сериализацией CodeDOM: изучите критические правила сериализации свойств в конструкторе WinForms, чтобы избежать распространенных ошибок с
[DefaultValue]атрибутами иShouldSerialize*()методами.Обработка исключений. Используйте правильные шаблоны для асинхронных обработчиков событий и обработки исключений на уровне приложения, чтобы предотвратить сбои процесса.
Инструкции агента подробно описаны, охватывая все соглашения об именовании элементов управления и требования к специальным возможностям. Это похоже на то, что старший архитектор WinForms просматривает каждую строку кода.
Основные исправления ошибок
| Основные исправления ошибок | От сообщества |
|---|---|
| Обозреватель решений больше не отображает узел решения | Запрос обратной связи |
| Исправлена проблема, блокирующая установку расширения в пользовательском действии MSI. | Запрос обратной связи |
| Комплект CompletionsPackage не всегда удавалось загрузить, при этом пользователю показывалось диалоговое окно с ошибкой. | Запрос обратной связи |
| Исправлена генерация Ad Hoc Android APK с помощью диспетчера архивов. | Запрос обратной связи |
| Сообщение о фиксации, сгенерированное ИИ, приводит к сбою VS при изменении макета окна | Запрос обратной связи |
| Неустранимая ошибка C1001: внутренняя ошибка компилятора | Запрос обратной связи |
| В редких случаях появлялось сообщение об ошибке с объявлением "Пакет 'GlobalHubClientPackage' не был загружен правильно", что приводило к сбоям в работе различных функций Visual Studio. | Запрос обратной связи |
| Запуск установщика VsixInstaller и установщика Visual Studio после завершения работы системы. | Запрос обратной связи |
| Исправлен сценарий, в котором восстановление NuGet завершается сбоем при использовании централизованного управления пакетами с плавающими версиями и фильтрами решений. | |
| Создание DesktopWindowXamlSource в приложении Win32 прерывается внешним образом при запуске приложения | Запрос обратной связи |
| Visual Studio 2026 Code Analysis не поддается настройке | Запрос обратной связи |
| Сбой эмулятора x64, когда поток ARM64EC вызывает корутину x64, которая вызывает другую корутину ARM64EC. | Запрос обратной связи |
| Исправлена ошибка в автоматическом векторизаторе, когда может показаться, что только часть цикла была достоверно выполнена. | |
| Не удается найти средства сборки VS2026 версии 143 | Запрос обратной связи |
| Средний щелчок, чтобы закрыть вкладку, не работает, если вкладка не загружена | Запрос обратной связи |
Версия 18.0.2
Выпущено 24 ноября 2025 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Исправлен сбой, который повлиял на программы C++, использующие OpenMP. | Запрос обратной связи |
| Visual Studio 2026 Insiders DataTips нечитаемы | Запрос обратной связи |
| Изменение плагина системы управления версиями вызывает всплывающее окно | Запрос обратной связи |
| Сообщение с информацией о переименовании зависает на экране | Запрос обратной связи |
Версия 18.0.1
Выпущено 19 ноября 2025 г.
| Основные исправления ошибок | От сообщества |
|---|---|
| Проблемы с обновлением Visual Studio 2022 17.14.15 — LINK: неустранимая ошибка LNK1000 | Запрос обратной связи |
| (2026) Настройка переноса слов постоянно сбрасывается после открытия просмотра различий. | Запрос обратной связи |
| Исправлена ошибка некорректной генерации кода с тернарными выражениями, содержащими выражения с массивами различных типов. | Запрос обратной связи |
| [VS18] Отладчик не закрывает поток std, перенаправленный в файл | Запрос обратной связи |
| Существенное зависание отладчика на первой точке останова в решении, содержащем множество элементов. | Запрос обратной связи |
| Блоклист покрытия санитайзера неисправен | Запрос обратной связи |
| Неверные инструкции, созданные в AVX2 | Запрос обратной связи |
| C4319 не генерируется при компиляции кода C | Запрос обратной связи |
| C++/CLI — встроенное пространство имен не работает | Запрос обратной связи |
| Профилировщик производительности не загружает символы правильно для неуправляемого кода в C++/CLI | Запрос обратной связи |
| Добавляет поддержку Xcode 26.1 для .NET для рабочих нагрузок iOS/ tvOS/ macOS/ MacCatalyst / MAUI. См. заметки о выпуске версии 26.1.10494 для рабочей нагрузки. | |
| Индекс Columnstore, содержащий ошибку векторного столбца | Запрос обратной связи |
Обновление 18.0.0 ноября
Выпущено 11 ноября 2025 г.
Интегрированная среда разработки (IDE)
Вы имели в виду? 📣
Вы больше не будете путаться в файлах! Copilot интеллектуально обнаруживает намерение и предлагает лучшие совпадения при поиске в Visual Studio.
Вы когда-либо забывали имя файла, когда писали код? Новая функция Did You Mean в Visual Studio поможет вам! При поиске с помощью All-In-One Search, если Copilot обнаруживает лучшее совпадение, чем верхний результат, возможно, из-за опечатки или нечеткой памяти, он предложит, что вы имели в виду.
Правильное написание отлично работает с поиском «всё в одном», который вы можете открыть, нажав CTRL+SHIFT+P. При вводе термина поиска Copilot анализирует ваш запрос и предлагает более релевантный термин, если находит такой, который более точно соответствует вашему намерению. Эта функция полезна, если поиск не дает результатов или если первые результаты не соответствуют вашему намерению.
![]()
![]()
Функция Возможно, вы имели в виду ускоряет поиск за счет того, что вам не приходится тратить время на исправление опечаток или в точности вспоминать имена, благодаря чему поиск становится проще и интуитивнее.
Did You Mean (preview) теперь доступен в Visual Studio и автоматически включен для всех применимых пользователей. В настоящее время эта функция работает с общедоступными GitHub репозиториями, и мы активно работаем над расширением его охвата в будущих обновлениях. Попробуйте эту функцию прямо сейчас и сообщите нам свое мнение! Вы также можете изменить параметр в Сервис → Параметры → GitHub → Copilot → Поиск → Включить поддержку поиска кода 'Вы имели в виду' в универсальном поиске (предварительная версия).
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Код покрытия 📣
Впервые покрытие кода доступно в изданиях Visual Studio Community и Professional — гарантия того, что ваш код хорошо протестирован, стала проще как никогда!
Теперь вы можете проанализировать, какие фрагменты вашего кода выполняются тестами, прямо в интегрированной среде разработки! Раньше эта функция была доступна только в выпуске Enterprise Edition, но теперь мы также добавили ее в редакции Community и Professional, благодаря чему убедиться в том, что код хорошо протестирован, стало как никогда просто.
![]()
Что нового
Встроенные инструменты для анализа покрытия кода помогают выяснить, насколько эффективно тестирование, показывая, какая часть вашего кода покрывается модульными тестами и другими тестами кода.
Интеграция CI/CD позволяет автоматически анализировать покрытие в рамках непрерывных интеграционных рабочих процессов.
Как использовать эту возможность
Чтобы выполнить анализ покрытия для вашего набора тестов, в меню Тест выберите Анализ покрытия кода для всех тестов.
Можно также выполнить анализ покрытия кода по отношению к выбранным тестам. Для этого необходимо щелкнуть правой кнопкой мыши в Обозревателе тестов.
- В окне Результаты покрытия кода будут представлены результаты — процентная доля, соответствующая каждой сборке, каждому классу и методу.
- Visual Studio выделяет проверенные строки непосредственно в редакторе, что позволяет быстро определить, какие из них покрыты, а какие нет.
Благодаря этой функции больше разработчиков получат доступ к важнейшему инструменту, благодаря чему вы будете в большей степени уверены в качестве вашей работы.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Новый внешний вид и ощущения 📣
Visual Studio теперь имеет обновленный интерфейс, выровненный с системой проектирования пользовательского интерфейса Fluent. Это обновление привносит современную и целостную эстетику в интегрированную среду разработки, улучшая удобство использования, восприимчивость и визуальную четкость.
Visual Studio IDE обновлен, чтобы согласоваться с системой дизайна Fluent UI, создавая более современный и гармоничный вид. Эти изменения повышают удобство использования и доступность без нарушения привычных рабочих процессов.
В дополнение к обновленному языку проектирования мы представили 11 новых цветовых тем, благодаря чему у пользователей есть больше возможностей настроить внешний вид своей среды разработки.
![]()
В этой версии реализована новая настройка Внешний вид редактора, которая специально предназначена для изменения интерфейса редактора. Эту настройку можно использовать для соответствия общей теме интегрированной среды разработки, но она также функционирует и независимо, благодаря чему пользователи могут изменить свою среду кодирования без необходимости соответствовать общей теме интегрированной среды разработки.
![]()
Наконец, мы переработали значки, сделав их более визуально привлекательными и легко узнаваемыми, что призвано упростить навигацию и повысить общее удобство для пользователей.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Современные настройки предоставляют 📣
Новый опыт настройки предлагает упрощенный, удобный интерфейс для Visual Studio, заменяя меню > Параметры современным дизайном, интеллектуальной организацией и повышенной надежностью.
Современный интерфейс параметров теперь используется по умолчанию, заменив устаревшие средства → диалоговое окно "Параметры". Эта обновленная платформа предлагает интерфейс, соответствующий Fluent, централизованную регистрацию и улучшенную устойчивость данных, что обеспечивает четкость, согласованность и расширяемость процесса настройки конфигурации.
![]()
Параметры будут перенесены из старых версий Visual Studio с поддержкой роуминга. Однако параметры больше не будут синхронизироваться со старыми продуктами. Это обеспечивает прямую совместимость и более чистый путь миграции.
Чаще всего используемые параметры уже перемещены на новую платформу. Вы по-прежнему можете получить доступ к оставшимся параметрам с помощью устаревших ссылок, обеспечивая непрерывность при переходе на новый интерфейс.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Обновление набора инструментов M365 для агентов
Вы теперь можете использовать GitHub Copilot и инструментарий агентов Microsoft 365 для того, чтобы быстрее создавать, персонализировать и отлаживать приложения и агентов M365.
1. Теперь вы можете использовать GitHub Copilot для повышения уровня приложения Microsoft 365 и разработки агент Copilot!
- расширение GitHub Copilot для набора средств агентов Microsoft 365: получение запросов на естественном языке, рекомендуемые шаблоны, интеллектуальные рекомендации и мгновенное устранение неполадок. Просто используйте @mention расширение в режиме "Copilot Ask". Для получения более подробной информации см. блог: Предварительный просмотр расширения GitHub Copilot для Teams Toolkit.
- MCP Server for Microsoft 365 Agent Toolkit: разблокируйте расширенные рабочие процессы, управляемые ИИ, в режиме агента Copilot. Добавьте новые функции, управляемые ИИ, в приложение Microsoft 365 и агент Copilot с помощью библиотеки ИИ Teams и пакета SDK агентов. Дополнительные сведения см. в блоге: Build Smarter с помощью Microsoft 365 Agent Toolkit MCP Server.
Вы можете быстро создавать, персонализировать и отлаживать ваши приложения и агентов M365 при поддержке Copilot.
2. Агенты Teams и шаблоны приложений, обновленные до Библиотеки ИИ Teams версии 2
Все агенты Teams и шаблоны проектов приложений Teams теперь используют новую библиотеку ИИ Teams версии 2.
Эти обновленные шаблоны позволяют вам:
Подключитесь к большим языковым моделям (LLMs), таким как OpenAI или Azure OpenAI, не изменяя логику основного бота.
Подключитесь к внешним источникам данных, чтобы приложения оставались текущими и адаптивными.
- Используйте адаптивные карточки, экспрессивные эмодзи и богатые интерактивные элементы, которые выглядят привычно в Teams.
Теперь вы можете создавать полностью функциональные агенты Teams быстрее, наслаждаться более плавным процессом разработки и предоставлять пользовательские возможности, которые по-настоящему нативные.
3. В этом выпуске добавлена поддержка .NET 10 для шаблонов агентов M365.
4. Важные заметки об обновлениях регистрации бота
В этом выпуске внедрены изменения, связанные с переходом от многопользовательской к однопользовательской регистрации ботов в соответствии с требованиями безопасности Azure Служба Bot (ABS). Microsoft не поддерживает регистрацию ботов с несколькими клиентами. Все новые регистрации ботов теперь должны использовать конфигурацию с одним клиентом. Это изменение повышает безопасность и соответствие Microsoft 365 службам. Многопользовательская регистрация будет полностью блокироваться. Существующие многопользовательские боты будут продолжать функционировать правильно, но в конечном итоге будут постепенно перенесены на регистрацию для одного клиента. Следуйте руководству по миграции, чтобы переключить регистрацию Azure Служба Bot на однопользовательскую.
Помощник по настройке
Легко устранить отсутствующие зависимости и ускорить сборку с помощью помощника по настройке.
Помощник по настройке помогает начать работу быстрее после обновления Visual Studio. Он находит отсутствующие наборы инструментов и пакеты SDK, а затем позволяет установить их или перенацелить решения прямо из интегрированной среды разработки.
Для разработчиков C++: Помощник по настройке отображает отсутствующие инструментарии MSVC и пакеты SDK Windows. Их можно установить одним щелчком в установщике Visual Studio.
![]()
Для разработчиков .NET: Если в вашем проекте используется зафиксированный global.json, Мастер настройки связывает вас с соответствующим .NET SDK для быстрой установки в браузере.
![]()
Продуктивность
Адаптивная вставка
Copilot адаптирует вставленный код к контексту файла, поэтому вы тратите меньше времени на исправление имен, форматирование и незначительные ошибки.
Вставка кода обычно означает очистку — переименование символов, исправление ошибок, изменение форматирования или преобразование между языками.
Адаптивная вставка выполняет эту работу за вас. Он анализирует место вставки и предлагает код, соответствующий файлу. Ее можно использовать в следующих целях:
Заполните отсутствующий интерфейс или абстрактные элементы.
Исправьте небольшие ошибки.
- Применение согласованного стиля и форматирования.
- Перевод между людьми или языками программирования — например, C++ на C#.
- Продолжить шаблон или заполнить пустые поля.
Например, если у вас есть класс, который реализует
Math, и вы вставляете методIMath, адаптивная вставка может превратить его вCeiling, если он все еще не реализован.Видео, демонстрирующее, как адаптивная вставка изменяет вставленный метод для завершения реализации интерфейса.
Он также помогает с переводом текста. Здесь Copilot адаптирует код C++ к эквиваленту C# во время вставки.
![]()
Как использовать его:
Вставьте код как обычно {KeyboardShortcut:Edit.Paste}.
Нажмите
Tab, когда отображается адаптивная панель буфера, чтобы запросить рекомендацию.
- Просмотрите различия между исходным и скорректированным кодом и примите или отклоните.
Вы также можете активировать его напрямую:
Нажмите клавиши SHIFT+ALT+V , чтобы вставить и сразу же отобразить предложение.
Используйте Правка → Специальная вставка → Вставка с помощью Copilot.
![]()
Адаптивная вставка включена по умолчанию. Его можно переключить в Tools → Параметры → GitHub → Copilot → Редактор → Включить адаптивную вставку.
Действия кода на вашем пальце📣
Получите быструю помощь с Copilot одним щелчком правой кнопки мыши из контекстного меню в Visual Studio.
Теперь вы можете взаимодействовать с Copilot непосредственно из контекстного меню в Visual Studio! Эта новая функция позволяет быстро получить справку от Copilot для распространенных задач с одним щелчком, не требуя ввода каких-либо запросов.
В настоящее время в контекстном меню доступны пять действий Copilot, каждый из которых работает по-разному в зависимости от того, выбран ли код:
![]()
Попробуйте действия Copilot и дайте нам знать, что вы думаете! Мы будем признательны за ваши отзывы, а также за предложения по другим действиям, которые вы хотели бы видеть в контекстном меню.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Рендеринг диаграмм Mermaid 📣
Отображение диаграмм Mermaid в редакторе Markdown и Copilot Chat.
Мы рады сообщить, что Visual Studio теперь поддерживает отрисовку диаграмм Mermaid в редакторе Markdown, где вы можете использовать свой собственный синтаксис Mermaid или позволить Copilot сгенерировать его для вас! Эта новая функция позволяет визуализировать сложные рабочие процессы и структуры данных прямо в редакторе кода. Например, в файле Markdown с помощью синтаксиса Mermaid можно создавать блок-схемы и диаграммы, и они автоматически отображаются в окне предварительного просмотра.
Если в файле Markdown присутствует синтаксис Mermaid, его можно просмотреть, если нажать кнопку Предварительный просмотр, расположенную в левом верхнем углу редактора. Диаграмма Mermaid визуализируется в области предварительного просмотра, чтобы вы могли просмотреть свои данные в визуальной форме.
![]()
Вы также можете попросить Copilot Chat создавать диаграммы и схемы, чтобы объяснить сложные базы кода или логику с помощью визуальных средств. Copilot ответит с созданным синтаксисом Mermaid, который можно просмотреть непосредственно для просмотра отрисоченной схемы.
![]()
Попробуйте уже сегодня сгенерировать диаграмму Mermaid! Мы будем рады вашим отзывам и любым предложениям по улучшению этой функции.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Расширенные элементы управления редактором 📣
Ознакомьтесь с расширенными параметрами для максимизации вашего опыта редактирования с новыми возможностями работы с полями.
Для ускорения разработчикам необходимо обращать внимание на малозаметные подсказки и легкодоступный контекст. Вот почему для них большое значение имеет нижнее поле редактора. Однако до сих пор этот элемент предлагал ограниченную аналитику и мало возможностей для настройки, из-за чего полезная информация оставалась за пределами досягаемости.
Мы обновили нижнее поле, благодаря чему оно стало более информативным и поддерживает больше возможностей настройки. Теперь положение строки, столбца и символа унифицированы в общее представление, и если его нажать, то открывается диалоговое окно "Переход к строке", чтобы ускорить навигацию. При работе с несколькими выделенными фрагментами будет отображаться общее количество выделений, символов и строк. Если навести курсор на поле выбора, отобразится подробная информация о соответствующем выбранном элементе.
![]()
Теперь в этом поле отображается кодировка файла в качестве быстрой справки. У вас также есть возможность сохранить или повторно открыть файл в определенной кодировке. Это позволяет правильно отображать специальные символы, обеспечивает поддержку нескольких языков и делает файл одинаково читаемым в разных системах.
Если нажать поле с кодировкой, откроется контекстное меню, в котором вы сможете сохранить или снова открыть файл. Если вы выберете какой-либо параметр, откроется диалоговое окно с информацией о кодировке, где вы сможете выбрать кодировку в раскрывающемся списке доступных вариантов кодировки.
![]()
![]()
В это поле добавлено новое контекстное меню, позволяющее вам полностью контролировать отображаемую информацию. В это меню включены все нижние поля в редакторе, от управления масштабом до нового поля кодировки.
![]()
Эти параметры можно управлять с помощью инструментов → параметров → текстового редактора → общие → отображение → показать контекст редактирования в редакторе. Для ускорения корректировки щелкните нижнее поле правой кнопкой мыши, чтобы открыть новое контекстное меню и изменить отображаемые элементы, не прерывая рабочий процесс.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Исключения файлов в поиске 📣
Избегайте лишнего шума, исключив из поиска файлы, которые вам никогда не нужно искать.
С некоторыми файлами заранее понятно, что вам не нужно их просматривать. Будь то артефакты сборки, минифицированные скрипты или сгенерированные файлы, они загромождают результаты поиска и замедляют ваши действия.
Теперь их можно исключить из результатов поиска в разделах Поиск в файлах и Быстрый поиск, чтобы сосредоточиться на том, что действительно важно.
Чтобы настроить его, перейдите к разделу "Сервис" → "Параметры → среда → поиск" и найдите новые файлы исключения из раздела результатов поиска . В этом разделе можно добавлять, редактировать и удалять шаблоны glob, чтобы точно указать, какие файлы не включать в результаты поиска.
![]()
Эти исключения автоматически применяются при использовании команды Быстрый поиск.
При использовании функции Поиск в файлах эти исключения применяются вместе с настройками, которые вы задали в разделе Типы файлов. Исключения на уровне настроек легко включать и выключать с помощью кнопки, которая находится справа от раздела Типы файлов.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Знакомые сочетания клавиш 📣
Используйте
Ctrl+Wдля закрытия вкладок иCtrl+Pпоиска кода — сочетания клавиш, которые соответствуют тому, к чему вы привыкли из других редакторов.Мы добавили новые сочетания клавиш, чтобы соответствовать тому, что вам привычно в других редакторах и браузерах, что делает Visual Studio более интуитивно понятным с самого начала.
Что нового
CTRL+W теперь закрывает текущую вкладку (помимо клавиш CTRL+F4)
CTRL+P теперь открывает поиск кода (в дополнение к CTRL+T)
Эти дополнения приводят Visual Studio в соответствие с популярными редакторами, такими как VS Code, облегчая переключение между инструментами без нарушения моторной памяти. Существующие сочетания клавиш по-прежнему работают точно так же, как и раньше.
Примечание для разработчиков C#
Горячая клавиша CTRL+W не была добавлена в профиль разработчика C# из-за существующих конфликтов. Если вы хотите использовать CTRL+W для закрытия вкладок на C#, вам потребуется вручную переназначить его в разделе "Сервис" → параметры → среда → дополнительные параметры → клавиатуры.
Часть более широких усилий
Это продолжает нашу работу, чтобы сделать Visual Studio сочетания клавиш более согласованными с отраслевыми стандартами. Ранее мы добавили CTRL+SHIFT+P , чтобы открыть поиск функций и CTRL+/, чтобы переключить примечания к строке, чтобы соответствовать другим редакторам. Мы постепенно добавляли сочетания клавиш для снижения трения при перемещении между разными средами разработки, сохраняя все сочетания клавиш, на которые Visual Studio пользователи полагаются.
Вы всегда можете просматривать или настраивать сочетания клавиш, перейдя в раздел "Инструменты → параметры → среда → дополнительные параметры → клавиатуры".
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
GitHub Copilot
Copilot контекст URL
Вставьте URL в Copilot Chat для получения содержимого страницы и улучшения ответов.
Когда вы чувствовали себя в тупике, если казалось, что какая-то тема не охвачена в обучающих данных Copilot? Теперь вы можете ссылаться на URL-адреса в Copilot Chat, чтобы предоставить дополнительный контекст для ваших вопросов, помогая Copilot дать вам лучшие ответы.
Указание URL-адресов в вопросах
Вставьте URL-адрес в поле запроса и Copilot извлекнет информацию из Интернета. Это помогает заполнить пустые поля, если данные обучения Copilot не охватывают раздел или когда требуется ссылаться на определенный ресурс.
Например, можно попросить Copilot помочь вам написать файл readme.md на основе рекомендаций по GitHub.
![]()
Помните, что Copilot может ссылаться только на содержимое предоставленного общедоступного URL-адреса. Он не будет получать доступ к другим ресурсам или ссылкам на этой странице или страницам, требующим аутентификации. Кроме того, он может извлекать только статическое HTML-содержимое, поэтому если вы ссылаетесь на динамическую страницу, Copilot не сможет получить доступ к содержимому.
Это важно
Активируйте GitHub Copilot бесплатно и разблокируйте эту и другие функции ИИ. Никаких пробных периодов. Не нужна кредитная карта. Только ваша учетная запись GitHub.
Лучшие ответы Copilot 📣
Испытайте значительно улучшенные ответы Copilot с расширенным контекстом поиска кода, распознаванием внешних символов и точной ссылкой на номер строки!
Copilot Chat становится умнее и улучшает контекст для ваших повседневных задач! Благодаря этому вы можете рассчитывать на то, что сможете получить более точные результаты при поиске по базе кода, более эффективно анализировать зависимости с внешними символами, а также на то, что вам будет проще добавлять ссылки на конкретные строки в коде.
Более эффективный поиск кода
возможности поиска кода Copilot Chat были улучшены, чтобы обеспечить более релевантные результаты. Это означает, что вы получаете более точные предложения, так как Copilot еще лучше умеет получать правильные фрагменты кода, связанные с поведением, понятиями или функциями, описанными на естественном языке. Эти улучшения благодаря использованию удаленных индексов баз кода.
![]()
Осведомленность о внешних символах
Теперь Copilot Chat может выходить за рамки проекта и помогать вам с внешними символами, импортированными вашими зависимостями в C#. Более широкая область анализа позволит вам найти для ваших проектов более эффективные решения.
![]()
Более точные номера строк
При ссылке на определенную строку в коде Copilot Chat теперь будет предоставлять более точные ответы. Это означает, что при запросе Copilot взглянуть на определенный раздел кода на естественном языке, он сможет дать более точные сведения.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Это важно
Активируйте GitHub Copilot бесплатно и разблокируйте эту и другие функции ИИ. Никаких пробных периодов. Не нужна кредитная карта. Только ваша учетная запись GitHub.
Отладка и диагностика
Агент отладчика для модульных тестов
Автоматизация исправлений в модульных тестах от неудачи до разрешения.
Новый агент отладчика упрощает отладку модульного теста, сочетая возможности обозревателя тестов, Copilot Chat и отладчика Visual Studio в полностью автоматизированный рабочий процесс.
Вот как это работает: когда модульный тест завершается сбоем, просто щелкните тест правой кнопкой мыши и выберите "Отладка с помощью Copilot". После этого будет вызван агент отладчика, который:
Собирает контекст из вашей рабочей области (тестовый код, связанный исходный код, последние правки).
Составляет предположение о первопричине сбоя.
- Применяет специальные правки кода на основе его анализа.
- Запускает тест в отладчике для проверки внесенных исправлений.
- Выполняет итерацию интеллектуально, если проблема сохраняется, уточняя свою гипотезу с помощью аналитических сведений отладчика и повторяя цикл до тех пор, пока тест не пройдет.
![]()
Устранив проблему, агент предоставляет подробный отчет о своих действиях и внесенных изменениях, что позволяет вам легко просмотреть и понять, что именно было изменено. Автоматизируя тяжелую работу, агент отладчика сокращает циклы проб и ошибок и обратной связи, а также помогает быстрее поставлять более надежный код — все время обеспечивая контроль над окончательным рассмотрением.
Расширенный анализ исключений
Анализ исключений теперь использует контекст репозитория.
Анализ исключений Visual Studio с Copilot теперь использует контекст репозитория для более эффективной отладки. Copilot осуществляет перекрестные ссылки на ваш открытый репозиторий, включая прошлые ошибки, проблемы, запросы на вытягивание и исторические исправления, чтобы предоставить значимые советы, которые имеют значение в базе кода.
![]()
В этом обновлении Copilot:
Определять вероятные первопричины, затронутые компоненты и потенциальные исправления.
Показывает аналогичные прошлые проблемы, чтобы вы могли учиться на существующих решениях.
- Анализировать исключения в полном контексте, связывая поведение во время выполнения с историей репозитория, чтобы объяснить неожиданные значения.
- Экономить время за счет сокращения ручного анализа, проб и ошибок при сложной отладке.
Вы получаете высокоточную отладку с учетом контекста. Сейчас это доступно для Azure DevOps с поддержкой GitHub в ближайшее время.
Встроенный оператор if-
Отлаживайте if-операторы быстрее с встроенными значениями и Аналитика Copilot.
Отладка заключается в быстром понимании поведения вашего кода, и теперь новый встраиваемый опыт для if-операторов в .NET упрощает этот процесс как никогда раньше. Благодаря этому обновлению вам больше не придется наводить курсор на переменные или переходить по нескольким строкам, чтобы выяснить, почему условие оценивается как true или false и вообще определяется ли как таковое. Вместо этого Visual Studio встроенно отображает результат оценки прямо рядом с условием.
![]()
Как и существующие встроенные переменные и возвращаемые значения, вы можете навести указатель мыши на условие и выбрать Анализировать с использованием Copilot. При этом будет не только отображен конечный результат, но и выполнено разбиение условия на его подвыражения.
Copilot объясняет, как каждая часть способствовала общему результату, предоставляя вам четкое пошаговое объяснение.
Встроенные переменные и параметры
Встроенные значения теперь показывают параметры метода и циклы с помощью Copilot Insights.
Visual Studio теперь отображает значения параметров метода и переменные цикла во время отладки. Данные моментально отображаются в контексте — непосредственно в редакторе.
Вам не нужно наводить курсор или «проходить» по строкам, чтобы увидеть значения параметров и переменных цикла. Чтобы глубже изучить сложные переменные или объекты, по-прежнему можно использовать подсказки, визуализаторы и другие инструменты.
![]()
Наведите указатель мыши на любое встроенное значение и выберите Анализировать с Copilot. Copilot объясняет значение в контексте и помогает исследовать непредвиденные или неверные результаты, давая представление о том, почему результат может отличаться от ожидаемого.
Inline значения после возврата
Умнее отлаживайте с помощью инлайновых значений после возврата и аналитики Copilot.
Отладчик Visual Studio теперь отображает встроенные значения возврата после выполнения, показывая фактические возвращаемые значения функций в точке их использования. Благодаря этому вы в реальном времени можете отслеживать поведение функций, не углубляясь в код и не настраивая контрольные значения, в результате чего вам будет проще выявить нарушения логики или непредвиденные результаты.
![]()
Вы можете настраивать отображение встроенных значений (возвращаемых, возвращенных или обоих типов) через контекстное меню, открывающееся щелчком правой кнопкой мыши, в зависимости от ваших предпочтений.
![]()
С помощью интеграции GitHub Copilot можно навести указатель мыши на значение и использовать Спросить Copilot для анализа непредвиденных результатов, выявления потенциальных первопричин или получения предложений по устранению проблем - все без нарушения потока.
Улучшения производительности для F5
Быстрая отладка с улучшенной производительностью F5.
Запуск отладчика с помощью F5 является одним из наиболее распространенных рабочих процессов в Visual Studio, и теперь это быстрее, чем когда-либо. Мы с особым вниманием отнеслись к повышению производительности, стремясь сократить время, необходимое для запуска отладчика, чтобы вы могли максимально быстро приступить к отладке и выполнить больше кодирования.
В приведенной ниже демонстрации вы увидите разницу: Visual Studio 2026 с .NET 10 достигает времени запуска до 30% быстрее по сравнению с Visual Studio 2022 с .NET 9 при использовании F5.
Эти преимущества поступают из оптимизации как в отладчике, так и в среде выполнения .NET, обеспечивая заметно более плавное взаимодействие.
![]()
Поиск в визуализаторе текста 📣
Быстро найти текст внутри длинных строк во время отладки.
Теперь в средстве визуализации текста можно искать строковые значения при помощи новой функции быстрого поиска! Просто нажмите клавиши CTRL+F , пока визуализатор открыт, чтобы открыть поле поиска. Ваши поисковые запросы будут выделены в строке, что упростит вам поиск важного текста, ошибок или закономерностей.
![]()
Нужен доступ к содержимому за полем поиска? Удерживайте клавиши CTRL и пользовательский интерфейс поиска становится прозрачным, поэтому вы никогда не упускаете из виду данные под ним.
Благодаря этому навигация по журналам, BLOB-объектам JSON, сообщениям об ошибках и другим длинным строкам во время отладки станет быстрее и интуитивно понятнее.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Агент профилировщика Copilot📣
Агент профилировщика ИИ, который анализирует производительность, предлагает исправления и помогает быстро выполнять итерацию.
Мы рады представить агент профилировщика в Visual Studio: помощник по искусственному интеллекту, который помогает понять и устранить проблемы с производительностью без необходимости быть экспертом по профилированию.
Модуль профилировщика работает вместе с GitHub Copilot:
Анализ использования ЦП, выделения памяти и поведения среды выполнения
узкие места в производительности устройства Surface
- Создавать новые тесты BenchmarkDotNet или оптимизировать существующие
- Рекомендации по оптимизации и помощь в их применении
- Проверять улучшения в управляемом цикле.
Начать работу просто. Просто задайте свой вопрос в Copilot Chat (режим агента):
Вариант 1. Пример тега @profiler : @profiler почему мое приложение медленно?
Вариант 2. Прямые запросы без тегов (включите агент профилировщика в меню "Выбор инструментов")
Пример. Почему частота кадров снижается?
![]()
Независимо от того, новичок вы или профи в профилировании, этот опыт предоставит вам доступ к диагностике на основе ИИ всего в одном клике. Углубленные знания не требуются — достаточно воспользоваться актуальной аналитикой.
В настоящее время поддерживается анализ высокого уровня использования ЦП и выделения объектов в .NET, а вскоре будут добавлены дополнительные сценарии.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
CodeLens для оптимизации выделения памяти
Оптимизация выделения памяти одним кликом для ваших бенчмарков.
Ранее можно активировать оптимизацию ЦП для тестовых показателей производительности .NET непосредственно из редактора с помощью CodeLens. Теперь у вас также будет возможность одним кликом улучшить управление памятью для тестов производительности.
Не нужно вручную запрашивать агент Профилировщика; Просто щелкните CodeLens над тестом, и вы увидите параметр Optimize Allocations with Copilot.
Это обновление позволяет настраивать производительность быстрее и оптимальнее, благодаря чему вы сможете находить и устранять проблемы с выделением памяти непосредственно там, где вы пишете код.
![]()
Сводка потока агента профилировщика
Интеллектуальная сводка агента профилировщика с гладким продолжением выполнения потока.
В последнем обновлении агента профилировщика реализовано интеллектуальное обобщение с продолжением потока, которое позволяет обеспечить непрерывность работы без достижения предела токенов. Когда количество токенов в чате достигнет своего предела, вам будет предложено выполнить обобщение и продолжить в новой ветке.
![]()
Агент автоматически создает краткое, насыщенное контекстными данными обобщение всего важного на настоящий момент и использует его в новом разговоре. Вы ничего не теряете — все важные детали, шаги и решения останутся с вами.
Это обновление не только позволяет использовать меньше токенов, делая взаимодействие более простым и быстрым, но и упрощает отслеживание прогресса посредством краткого обобщения действий агента. И что самое важное, оно обеспечивает абсолютную непрерывность, благодаря чему вы можете продолжить с того места, в котором остановились, без необходимости вновь выполнять свои действия.
Шаблон проекта BenchmarkDotNet
Ускорьте настройку производительности с помощью нового шаблона проекта Benchmark и встроенной поддержки профилирования— получайте аналитические сведения быстрее, чем когда-либо!
Начните тестирование производительности с помощью полностью интегрированного шаблона проекта BenchmarkDotNet, который включает встроенную поддержку профилирования загрузки ЦП и аналитические сведения Copilot.
Добавьте новый project в Visual Studio и выберите BenchmarkDotNet Project из категории Profiling. Выберите целевую .NET версию и шаблон автоматически выравнивается.
Visual Studio создает полностью настроенный проект с установками для проведения тестов производительности и диагностическими средствами для ЦП.
![]()
После проведения тестов профилировщик автоматически запускает сеанс диагностики, и вы можете мгновенно просматривать использование ЦП, данные дерева вызовов и узкие места производительности с дополнительными аналитическими сведениями Copilot, не покидая IDE.
Диагностика CMake только что вышла на новый уровень
Профилирование ЦП, анализ ввода-вывода файлов и трассировка событий — теперь полностью поддерживаются для проектов CMake.
Проекты CMake теперь получают встроенную поддержку для использования ЦП, средства просмотра событий, использования памяти и инструментов ввода-вывода файлов в Visual Studio. Никаких обходных путей, никакой дополнительной настройки. Инструмент использования ЦП также включает аналитические сведения о производительности с использованием Copilot, которые помогают обнаруживать и устранять узкие места в производительности еще быстрее.
![]()
Это обновление, специально адаптированное к потребностям разработчиков игр и рабочих процессов, для которых важна высокая производительность, дает вам следующие возможности:
Определите "узкие места", из-за которых снижается производительность, и воспользуйтесь инструментом анализа использования ЦП, чтобы оптимизировать код, потребляющий много вычислительных ресурсов.
Используйте средство просмотра событий для отслеживания событий в среде выполнения: исключений, журналов, запросов HTTP и т. д.
- Используйте инструмент File IO для анализа шаблонов доступа к файлам, продолжительности и пропускной способности.
Новый опыт запуска профайлера
Более упорядоченная и удобная стартовая страница с более интеллектуальными наборами инструментов и рекомендациями Copilot.
Мы обновили страницу запуска профилировщика, благодаря чему она стала более быстрой, аккуратной и продуманной, чтобы вам было проще выбрать нужный инструмент для анализа производительности.
В новом лаконичном ом интерфейсе четко разграничены инструменты, которые можно использовать одновременно, и инструменты, которые можно запускать только по отдельности, чтобы вы всегда знали, какие из них совместимы.
![]()
Интеграция с Copilot предоставляет контекстные рекомендации прямо на странице, помогая выбрать оптимальный профилировщик для вашего сценария. Если предложения по умолчанию не соответствуют, просто опишите проблему на простом английском языке и Copilot поможет вам.
Благодаря этому обновлению и новичкам, и опытным разработчикам теперь будет проще повысить производительность приложения.
Оптимизировать массивы нулевой длины
Превратите массивы нулевой длины в действие с помощью интеллектуальной помощи Copilot в средстве выделения .NET — оптимизируйте использование памяти, как никогда раньше!
Теперь средство выделения .NET интегрирует помощь Copilot при выделении массивов нулевой длины, предоставляя вам интеллектуальные и практические рекомендации именно там, где это нужно больше всего!
![]()
При запуске инструмента выделения памяти .NET вкладка "Аналитика" обращает внимание на выделение памяти для массивов нулевой длины — тонкий, но часто упускаемый из виду источник ненужной нагрузки на память.
Наряду с описанием аналитических сведений вы увидите кнопку Спросить Copilot. Щелкните, и Copilot предоставит подробный анализ паттернов распределения и предложит конкретные исправления кода для оптимизации использования памяти — так же, как автоматические функции Copilot, которые вы уже любите в инструменте использования ресурсов ЦП!
Средства работы с Git
Инлайн-комментарии к pull-запросу
Теперь вы можете видеть комментарии к запросам на внесение изменений непосредственно в режиме сравнения изменений и видеть их с форматированием в стиле Markdown, что делает обратную связь более удобной для чтения и понимания в контексте.
Опыт работы с pull request в Visual Studio стал лучше.
Встроенные комментарии в представлении диффа запроса на включение изменений
По умолчанию ваши комментарии к пулл-реквесту отображаются в представлении рабочего файла. Теперь вы также можете увидеть их в диффе, чтобы увидеть полную картину изменений.
![]()
В режиме сравнения (diff view) вы можете видеть комментарии рядом с исходным и обновленным кодом. Благодаря этому вам будет проще заметить, что именно изменилось и почему. В этом представлении также можно напрямую внести изменения в рабочий файл.
![]()
Например, если в комментарии предложено добавить тесты после рефакторинга, просмотр разницы в коде поможет вам понять, какая функциональность была перемещена. Отображение исходного кода в представлении для сравнения помогает быстрее понять смысл комментария, поскольку вам не придется выяснять, куда был перемещен метод.
Комментарии в diff поддерживаются в различных типах файлов, включая файлы
.cs. Мы работаем над тем, чтобы расширить поддержку, поэтому если вы заметите, что комментарии для определенного типа файлов не отображаются в диффе, сообщите нам об этом.Поддержка визуализации Markdown в комментариях к pull-запросам
Комментарии теперь визуализируются с использованием форматирования Markdown, благодаря чему ваши отзывы проще читать и форматировать.
![]()
Попробуйте его
Включите эту функцию с помощью Средства → Параметры → Предварительные функции → Комментарии к запросам на вытягивание.
Лучшие обзоры кода 📣
Получайте улучшенные предложения от GitHub Copilot по изменениям кода, которые помогут вам обнаруживать потенциальные проблемы на ранних стадиях и улучшать качество кода.
Благодаря последним обновлениям моделей вы сможете получать еще более лучшие комментарии для проверки кода на ваши локальные изменения, еще до того, как вы их зафиксируете!
Тот же интерфейс с ключевыми улучшениями
Более качественные комментарии — за счет новых моделей рассуждений проверка кода становится более точной и тщательной, позволяя выявлять малозаметные ошибки и проблемы с производительностью, которые легко пропустить при использовании традиционных методов проверки.
Оптимизированная генерация контента — одновременная генерация комментариев по всему набору изменений сразу, а не отдельно по каждому файлу, улучшает производительность и способствует полноте проверки.
Обновленные запросы — более четкие и непосредственные запросы обеспечивают более точную и релевантную обратную связь.
Начало работы
Если подписка Copilot включена в Visual Studio и активированы следующие флажки функций, вы увидите кнопку комментария Sparkle в окне "Изменения Git". После щелчка Copilot изучает наборы изменений и предлагает рекомендации непосредственно в вашем редакторе.
![]()
Убедитесь, что у вас включены оба следующих флага функций:
Средства → Параметры → Предварительные версии → Комментарии запроса на вытягивание.
Tools → Options → GitHub → Copilot → Интеграция с системой управления версиями → Включить предварительные функции Git.
📣 Просмотрите тикет функции, чтобы поделиться своими отзывами и продолжить беседу.А пройдите этот опрос, чтобы сделать эту функцию еще лучше.
Замечание
Эта функция должна быть включена в разделе Tools → Manage Preview Features
Контекст Git в Copilot Chat
Ссылайтесь на ваши фиксации и изменения в чате Copilot.
Copilot Chat теперь поддерживает упоминание коммитов и изменений в окне изменений Git. Вы можете попросить Copilot суммировать ваши изменения, объяснить конкретный коммит и многое другое!
Укажите свои изменения
#changesотслеживает незафиксированные изменения. Например, вы можете попросить Copilot напомнить вам о том, что вы сделали до сих пор, ссылаясь на ваш#changes.
![]()
Укажите на ваши коммиты
Когда вы начинаете вводить текст
#commit:, Copilot отобразит список последних фиксаций, из которого вы сможете выбрать. Если вы хотите упомянуть более старый коммит, вы также можете сослаться на его идентификатор коммита.
![]()
Затем можно попросить чат использовать данный коммит для таких задач, как написание модульных тестов для покрытия изменений в этом коммите или поиск возможных проблем в этом коммите.
Опробуйте эту функцию
Убедитесь, что для использования этих ссылок включен следующий флаг компонента: Tools → Options → GitHub → Copilot → Source Control Integration → Enable Git preview features.
Упрощенная навигация по комментариям в локальном анализе кода
Обзоры кода теперь еще проще с обновленным представлением списка комментариев.
Теперь легче просматривать ваш код перед коммитом.
При просмотре созданных Copilot примечаний к незафиксированным изменениям вы увидите список примечаний в окне изменений Git. Вы можете дважды щелкнуть любой комментарий в списке, чтобы перейти к этой строке кода в редакторе.
![]()
Следите за списком комментариев для пулл-реквестов!
Начало работы
Если подписка Copilot включена в Visual Studio и активированы следующие флажки функций, вы увидите кнопку комментария Sparkle в окне "Изменения Git". После щелчка Copilot изучает наборы изменений и предлагает рекомендации непосредственно в вашем редакторе.
![]()
Чтобы использовать проверку локального кода, убедитесь, что вы включили оба следующих флага функций:
Средства → Параметры → Предварительные версии → Комментарии запроса на вытягивание.
Tools → Options → GitHub → Copilot → Интеграция с системой управления версиями → Включить предварительные функции Git.
📣 Возьмите этот опрос , чтобы помочь сделать эту функцию еще лучше.
Замечание
Эта функция должна быть включена в разделе Tools → Manage Preview Features
Примените предложения к PR
Избегайте этапа копирования и вставки — применяйте изменения кода, предложенные человеком или ИИ, прямо в вашей интегрированной среде разработки.
Есть комментарий, запрашивающий изменение кода?
Теперь вы можете применить предлагаемые изменения непосредственно из комментария PR в интегрированной среде разработки, не нужно копировать и вставлять! Просмотрите исходный код, предлагаемое изменение и окружающий контекст в одном месте, чтобы вы могли оценить, настроить и проверить исправление немедленно.
Примените предложенное изменение из комментария PR
Как и в случае с PR-опытом в браузере, теперь вы можете мгновенно применить предложения комментариев к вашему коду. Просто щелкните значок сверка в правом верхнем углу комментария, чтобы включить предложение в код, который затем можно изменить и проверить по мере необходимости перед фиксацией.
![]()
Запрос рекомендованного изменения от Copilot
Если нет предложений, вы можете запросить Copilot предложить изменение на основе комментария. Он будет учитывать сам комментарий и контекст документа.
![]()
Получайте предложения кода перед коммитом
Copilot также может предлагать изменения кода на основе комментариев из локального интерфейса проверки кода, помогая исправлять замечания и быстрее подготавливаться к фиксации.
![]()
Начало работы
Чтобы испытать полный интерфейс, убедитесь, что вы включили оба следующих флага функций:
Средства → Параметры → Предварительные версии → Комментарии запроса на вытягивание.
Tools → Options → GitHub → Copilot → Интеграция с системой управления версиями → Включить предварительные функции Git.
Замечание
Эта функция должна быть включена в разделе Tools → Manage Preview Features
Устаревание рабочих элементов Team Explorer
Устаревшие рабочие элементы в Team Explorer заменяются новым, более современным интерфейсом.
Возможность работы с устаревшими элементами в Team Explorer Visual Studio была исключена. В будущем рабочие элементы больше не будут открываться внутри Visual Studio, а вместо этого на веб-портале, где вы найдете современный, более согласованный интерфейс. Это изменение соответствует обновлениям, представленным в Visual Studio 2019 и 2022 годах, и гарантирует, что все функции рабочих элементов доступны через веб-интерфейс.
Дополнительные сведения см. в записи блога о рабочих элементах в Visual Studio.
Облако
Устаревание облачных служб (расширенная поддержка)
Важные сведения о предстоящем выходе из эксплуатации облачных служб (расширенная поддержка) и руководстве по миграции, которые помогут вам подготовиться.
Модель развертывания облачных служб (расширенная поддержка) будет прекращена 31 марта 2027 г. Следовательно, вспомогательные средства облачных служб будут недоступны в Visual Studio 2026 году.
До 31 марта 2027 средства облачных служб (расширенная поддержка) будут функционировать в Visual Studio 2022 и получать общее обслуживание. Мы настоятельно советуем начать планирование миграции, чтобы гарантировать простой переход.
Дополнительные сведения и подробные инструкции по переносу приложений в современные службы Azure см. в разделе оффичные объявления.
Обновление инструментов Service Fabric
Инструменты Service Fabric больше не встроены - установите их как расширение для Visual Studio.
Средства Service Fabric больше не входят в состав Visual Studio. Вы можете установить инструменты Service Fabric для Visual Studio из Visual Studio Marketplace, которые будут доступны в ближайшее время.
Поддержка Podman в контейнерных инструментах 📣
Теперь средства контейнеров поддерживают Podman, позволяя запускать контейнеры и управлять ими с помощью интерфейса командной строки Podman.
В этой новой версии Visual Studio, контейнерные инструменты теперь поддерживают Podman, популярное средство управления контейнерами, которое предоставляет бездемонный контейнерный движок. Это позволяет запускать контейнеры и управлять ими с помощью интерфейса командной строки Podman непосредственно из Visual Studio. Все ваши обычные рабочие процессы остаются прежними, просто с соответствующей поддержкой вашей в данный момент активной среды выполнения контейнера.
Начать сейчас
Чтобы приступить к работе, просто запустить Podman и открыть решение в Visual Studio. Инструменты контейнеров автоматически обнаружат среду Podman, после чего можно начинать работу.
![]()
При необходимости можно вручную выбрать Podman в качестве среды выполнения контейнера, перейдя в раздел "Сервис → параметры → средства контейнеров" → "Общие" → среды выполнения контейнеров и выбрав Podman в раскрывающемся меню.
Примечания.
При внедрении этого изменения мы обновили некоторые настройки, чтобы не допустить путаницы и использовать более нейтральный язык. Например,
DockerfileContextвContainerBuildContext.В этом выпуске поддержка Compose для Podman не предусмотрена.
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
.NET
.NET 10 и C# 14
Поддержка для .NET 10 и C# 14 уже включена, так что вы можете воспользоваться новейшими функциями и улучшениями в ваших проектах.
Мы рады предоставить вам полную поддержку .NET 10 и C# 14 в этой последней версии Visual Studio! Это значит, что вам сразу же доступны все последние языковые функции, улучшения производительности и усовершенствования платформы без какой-либо дополнительной настройки или изменения конфигурации.
![]()
Интеграция удобна . Просто создайте проект, предназначенный для .NET 10 или обновите существующие проекты, и у вас будет доступ ко всем последним функциям языка C# 14 прямо в редакторе. Технология IntelliSense, возможности отладки и все остальные полюбившиеся разработчикам инструменты оптимизации продуктивности отлично взаимодействуют с новым синтаксисом и различными API. Независимо от того, создаете ли вы веб-приложения, настольные приложения или облачные службы, вы можете использовать передовые возможности, которые .NET 10 предлагает.
компилятор и средства Visual Studio были обновлены, чтобы обеспечить полную поддержку новых конструкций языка C# 14, обеспечивая точное выделение синтаксиса, обнаружение ошибок и завершение кода. Эта жесткая интеграция означает, что вы можете быть уверены в том, что ваш опыт разработки будет гладким и продуктивным, так как вы изучаете возможности с последней версией платформы .NET.
Готовы приступить к работе? Создайте проект и выберите .NET 10 в качестве целевой платформы или обновите существующие проекты, чтобы начать использовать эти интересные новые возможности сегодня!
C++
Средства сборки MSVC версии 14.50
Новые средства C++ с улучшенным соответствием C++23/26 и производительностью среды выполнения
Средства сборки Microsoft C++ (MSVC) версии 14.50 теперь доступны, предлагая новые функции
C++23иC++26, исправления ошибок и улучшения производительности во время выполнения.Новые функции C++ в компиляторе (также см. запись блога о объявлении):
P0849R8 -
auto(x): разложение копирования на языкеP2437R1 - Внедрение C++23
#warning
- Проблема CWG 2586 — явный параметр объекта для назначения и сравнения
- P2280R4 — разрешение ссылок на неизвестные значения во время константной оценки
- CWG2635 ограниченные структурированные привязки
- CWG2465 — параметры Coroutine, переданные конструктору обещаний
- P2360R0 - Расширяет определение
init-statement, чтобы разрешитьalias-declaration.- CWG2496 ref-квалификаторы и виртуальное переопределение
- CWG2506 — структурированные привязки и квалификаторы cv-массива
- CWG2507 — аргументы по умолчанию для
operator[]- CWG2585 — изменения в поведении не требуются
- P2290R3 — поддержка C++23 шестнадцатеричных/восьмеричных последовательностей с разделителями в строковых литералах
- CWG2521 — Устаревший оператор "строковый литерал идентификатор"
- CWG2528 - Смягчение правил преобразования для оператора космического корабля
- P2797R0 - Предлагаемое разрешение для CWG2692 для статических и явных методов членов объектов с теми же списками типов параметров.
- P2266R3 — простое неявное перемещение
- Многие исправления ошибок
Новые функции и исправления ошибок в стандартной библиотеке:Changelog — microsoft/STL Wiki
Улучшения производительности времени выполнения в компиляторе Back-end (по сравнению с последним выпуском в Visual Studio 2022 версии 17.14):
До +6% улучшений на основе теста производительности RenderThread из City Sample Unreal Engine
До +3% улучшения на основе теста City Sample GameThread в Unreal Engine
Поддержка MSVC Build Tools для Windows
Средства сборки MSVC теперь требуют Windows 10 или Windows Server 2016 в качестве минимально поддерживаемых операционных систем.
Средства сборки MSVC обновили свои минимальные поддерживаемые операционные системы. В этом выпуске средства сборки больше не поддерживают нацеливание:
Windows 7 / Windows Server 2008 R2
Windows 8 / Windows Server 2012
- Windows 8.1 / Windows Server 2012 R2
Чтобы создавать приложения с помощью последних средств C++, целевая платформа должна быть Windows 10 или Windows Server 2016 (или более поздней версии).
Эти изменения позволяют повысить производительность, улучшенную безопасность и выравнивание с последними возможностями платформы Windows.
Отмена и удаление функций C++
Уведомления об удалении C++AMP, ARM32, и /DEBUG:FASTLINK, а также о признании устаревшим /await.
Изменения в поддержке функций и удаление возможностей C++ затрагивают разработчиков, использующих C++AMP, инструменты сборки MSVC для ARM32 и параметр компоновщика
/DEBUG:FASTLINK. Если вы используете/DEBUG:FASTLINK, рекомендуется переключиться на/DEBUG:FULLулучшенную поддержку отладки. Разработчики, которые хотят создавать приложения для ARM32, могут продолжать использовать инструменты сборки Visual Studio 2022 версии v143, как описано в этом блоге Microsoft.Кроме того,
/awaitпереключатель устарел и будет удален в будущей версии. Разработчикам рекомендуется использовать стандартные корутины C++ по умолчанию, доступные по умолчанию в C++20 или более поздней версии. Для проектов в более ранних языковых режимах рекомендуется использовать/await:strictдля обеспечения совместимости до удаления коммутатора.
Обновления STL C++
Свежие улучшения стандартной библиотеки — особенно в области
<regex>. Узнайте, что нового.Мы сделали большой набор обновлений и улучшений нашей стандартной библиотеки C++, особенно в области
<regex>. Полный список изменений см. в нашем журнале изменений STL .
Улучшение представления классов 📣
Поиск подстроки в представлении классов.
Окно Представление классов теперь поддерживает функцию поиска подстрок.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Обновления шаблонов проекта
Используйте C++20 по умолчанию в новых проектах C++.
Многие шаблоны проектов C++ обновлены, чтобы они поддерживали сборку, в которой по умолчанию применяется стандарт C++20. Сюда входят консольное приложение, классическое приложение Windows, библиотека Dynamic-Link и статическая библиотека.
![]()
Выделение синтаксиса для атрибутов 📣
Атрибуты C++ теперь сияют в редакторе с красивым синтаксисом, что делает код более читаемым и визуальным!
В редактор добавлена функция стильного цветового выделения атрибутов C++, благодаря чему код лучше различим и легче читается! По умолчанию для этой функции используется та же цветовая схема, что и для типов, определенных пользователем, поэтому она полностью интегрируется с существующей цветовой схемой.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Улучшения clang-tidy 📣
Ускорьте анализ кода C++ с помощью расширенных параметров конфигурации clang-tidy для более быстрых сборок и настройки рабочих процессов.
В анализ кода
clang-tidyдобавлены захватывающие новые варианты конфигурации! Теперь вы можете выделить больше процессоров для выполнения анализа кода в рамках сборки, что ускорит ваш рабочий процесс. Кроме того, вы можете добавлять настраиваемые аргументы в командную строку, которая используется для вызоваclang-tidy. Таким образом вы получите полный контроль над настройками анализа.Доступ к этим мощным новым параметрам из Свойства проекта → Code Analysis → Clang-Tidy.
![]()
📣 Посмотрите feature ticket, чтобы поделиться отзывами и продолжить разговор.
Переименование рабочей нагрузки C++ Linux
Рабочая нагрузка C++ Linux переименована в Linux, Mac и внедренную разработку с помощью C++.
Рабочая нагрузка C++ Linux в установщике Visual Studio переименована в Linux, Mac и внедренная разработка с помощью C++. Это более точно отражает свои расширенные возможности.
![]()
Описание рабочей нагрузки также было обновлено соответствующим образом.
Аргументы командной строки отладчика
Легко задать аргументы командной строки отладчика для любого проекта C++.
Возможность установки аргументов командной строки для отладчика из панели инструментов была расширена и теперь включает в себя все проекты .vcxproj, CMake и Unreal Engine. Кроме того, для этой функции были реализованы следующие улучшения:
- Перейдите напрямую к настройке аргумента командной строки базового отладчика для вашего типа проекта.
![]()
- Четкое обозначение пустой настройки аргумента командной строки, позволяющее легко идентифицировать и находить раскрывающийся список панели инструментов.
![]()
Эта функция более не привязана к рабочей нагрузке «Разработка игр на C++» и может быть использована всеми разработчиками на C++ без необходимости установки каких-либо дополнительных рабочих нагрузок или компонентов.
Подробнее см. в документации Передача аргументов командной строки.
Созданные предварительно обработанные выходные данные
Создайте предварительно обработанные выходные данные для любого файла C++.
Меню предварительной обработки одного файла в Visual Studio позволяет щелкнуть правой кнопкой мыши файл C++ для мгновенного создания предварительно обработанных выходных данных, что упрощает отладку макросов и включает в себя, просматривать ошибки немедленно и избегать ручного изменения параметров проекта или прерываний для полной сборки проекта.
![]()
Поддержка IncrediBuild
Добавлена поддержка IncrediBuild для Visual Studio 2026, включая последнюю версию движка IncrediBuild и обновленное расширение.
Этот выпуск содержит обновление до поддержки IncrediBuild, которая включает последнюю версию обработчика IncrediBuild и обновленное расширение, которое работает с Visual Studio версии 18.0.
Поддержка CMake для генератора Visual Studio 2026
Visual Studio 2026 поставляется с последними версиями CMake, чтобы обеспечить наши последние возможности системы сборки для проектов CMake.
Visual Studio 2026 теперь включает CMake 4.1.2 по умолчанию. Теперь можно использовать CMake с последними проектами генератора Visual Studio 2026 и SLNX. Это обновление позволяет создавать с помощью набора инструментов и пакетов SDK Visual Studio 2026 непосредственно из CMake, что упрощает обновление.
Поддержка AddressSanitizer для ARM64
Построение с помощью MSVC и /fsanitize=address для целевых платформ ARM64.
В течение некоторого времени средства сборки Microsoft C++ (MSVC) поддерживают сборку проектов, предназначенных для x64 и x86, с интегрированным AddressSanitizer, который позволяет выявлять труднообнаружимые ошибки без ложных срабатываний во время выполнения, а также повышает безопасность памяти.
Теперь AddressSanitizer с MSVC можно использовать для ARM64. Пока доступна только предварительная версия данной функции, в которой возможны ошибки. Если это сделать, сообщите об этом с помощью Help → отправить отзыв → сообщить о проблеме в Visual Studio.
От всей команды спасибо за выбор Visual Studio! Чтобы ознакомиться с последними обновлениями, ресурсами и новостями, посетите Visual Studio Hub и оставайтесь на связи.
Удачного программирования!
Команда Visual Studio
Замечание
Это обновление может включать новое Microsoft или стороннее программное обеспечение, лицензированное отдельно, как указано в 3rd Party Notices или в соответствующей лицензии.
Замечание
Мы можем использовать инструмент на основе ИИ для анализа диагностических данных (таких как дампы и трассировки), собранных через Visual Studio и Visual Studio Feedback, чтобы повысить удобство работы пользователей. Если вы хотите отказаться, выполните действия, описанные здесь.

в Visual Studio
Слева: более узкое левое поле со значком быстрых действий, справа: предыдущее положение
с планом, созданным для устранения предупреждений и ошибок после обновления до последней версии MSVC