Заметки о выпуске Visual Studio 2022 версии 17.1
Совет
Просмотрите записи с мероприятия по запуску Visual Studio 2022, чтобы узнать о новых возможностях, услышать советы и скачать бесплатные цифровые образцы.
Сообщество разработчиков | Дорожная карта Visual Studio 2022 | Требования к системе | Совместимость | Распространяемый код | Журнал выпусков | Условия лицензии | Блоги | Известные проблемы последнего выпуска | Документация по новым возможностям в Visual Studio
Visual Studio 2022 версии 17.1
Поддержка диапазона времени
Эта версия теперь не поддерживается. Дополнительные сведения о базовых планах поддержки Visual Studio см. в политике поддержки Visual Studio 2022.
Ознакомьтесь с последней версией заметок о выпуске или посетите сайт Visual Studio, чтобы скачать последнюю версию Visual Studio 2022.
Выпуски Visual Studio 2022 версии 17.1
- 10 мая 2022 г. — Visual Studio 2022 версии 17.1.7
- 26 апреля 2022 г. — Visual Studio 2022 версии 17.1.6
- 19 апреля 2022 г. — Visual Studio 2022 версии 17.1.5
- 12 апреля 2022 г. — Visual Studio 2022 версии 17.1.4
- 31 марта 2022 г. — Visual Studio 2022 версии 17.1.3
- 22 марта 2022 г. — Visual Studio 2022 версии 17.1.2
- 8 марта 2022 г. — Visual Studio 2022 версии 17.1.1
- 15 февраля 2022 г. —Visual Studio 2022 версии 17.1.0
Блог Visual Studio 2022
Блог Visual Studio 2022 является официальным источником сведений о продукте от группы разработчиков Visual Studio. Более подробные сведения о выпусках Visual Studio 2022 можно найти в следующих записях:
- Версия 17.1 Visual Studio 2022 доступна уже сегодня!
- Версия 17.0 Visual Studio 2022 доступна уже сегодня!
Помещенные в архив заметки о выпуске Visual Studio 2022
Visual Studio 2022 версии 17.1.7
Дата выпуска: 10 мая 2022 г.
Проблемы, устраненные в выпуске 17.1.7
- Обновлен базовый план webview2 в Daytona.
От сообщества разработчиков
Советы по безопасности
CVE-2022-29117 уязвимость .NET, связанная с отказом в обслуживании В .NET 6.0, .NET 5.0 и .NET Core 3.1 существует уязвимость, при которой вредоносный клиент может манипулировать файлами cookie и вызывать отказ в обслуживании.
CVE-2022-23267 уязвимость .NET, связанная с отказом в обслуживании В .NET 6.0, .NET 5.0 и .NET Core 3.1 существует уязвимость, при которой вредоносный клиент может вызывать отказ в обслуживании из-за избыточного выделения памяти через HttpClient.
CVE-2022-29145 уязвимость .NET, связанная с отказом в обслуживании В .NET 6.0, .NET 5.0 и .NET Core 3.1 существует уязвимость, при которой вредоносный клиент может вызывать отказ в обслуживании при анализе HTML-форм.
Уязвимость к повышению прав CVE-2022-24513. Существует потенциальная уязвимость к повышению прав, когда служба обновления Microsoft Visual Studio неверно анализирует данные локальной конфигурации.
Visual Studio 2022 версии 17.1.6
Дата выпуска: 26 апреля 2022 г.
Проблемы, устраненные в выпуске 17.1.6
- Исправлена ошибка, приводившая к периодическому сбою компилятора C++ (CL.exe) при выполнении проверок битового перечисления для анализа кода.
- Исправлена неустранимая ошибка в симуляторе iPhone "Не удалось загрузить файл System.Memory".
- Исправлена регрессия vctip.exe в VisualCPP SxS из версии 17.0.8.
- Исправлена ошибка в VisualCPP SxS, из-за которой в Windows 11 не удавалось загрузить некоторые приложения, созданные с помощью санитайзера адресов (ASAN).
- Исправлена ошибка ASAN в VisualCPP SxS, из-за которой во многопоточных приложениях с конфликтом куч происходили взаимоблокировки, ложные отчеты "висячего указателя" и взаимоблокировки во время завершения процесса.
От сообщества разработчиков
В сообществе разработчиков приведен полный список исправлений, доступных в версии 17.1.
Visual Studio 2022 версии 17.1.5
Дата выпуска: 19 апреля 2022 г.
Проблемы, устраненные в выпуске 17.1.5
- Исправлена регрессия vctip.exe из версии 17.1.4.
- Исправлена ошибка "Не удается установить расширение (vsix) для Visual Studio на автономном компьютере".
От сообщества разработчиков
В сообществе разработчиков приведен полный список исправлений, доступных в версии 17.1.
- Launch-VsDevShell больше не работает в строгом режиме
- Сбой подключения WebSocket к "wss://...". Веб-приложение ASP.NET Core. После обновления до версии 17.1.
Visual Studio 2022 версии 17.1.4
Дата выпуска: 12 апреля 2022 г.
Примечание.
В результате обновления до версии Git в Visual Studio для устранения уязвимости CVE-2022-24765 некоторые пользователи Git могут столкнуться с ошибкой, препятствующей отображению репозиториев Git в Visual Studio.
Пользователи, которые клонировали или создали репозиторий от имени администратора, а затем попытались просмотреть или использовать репозиторий без прав администратора, могут столкнуться с этой проблемой. Если вы столкнулись с этой проблемой, но доверяете репозиторию, который пытаетесь открыть, вы можете добавить репозиторий в список безопасных каталогов, выполнив следующую команду в командной строке, PowerShell или терминале с доступом к Git для Windows:
git config --global --add safe.directory <path-to-repository>
Вы можете найти более подробную информацию и отслеживать изменения по этой проблеме в Сообществе разработчиков.
Проблемы, устраненные в выпуске 17.1.4
- Исправлена проблема, из-за которой вызовы new в шаблонах не находили правильную функцию operator new с помощью поиска, зависящего от аргументов.
- Исправлена проблема с разрешением типа времени разработки для конструктора Windows Forms платформы .NET Framework, которая приводила к сбою загрузки конструктора.
- Исправляет неожиданный сбой задачи HotRestart.Tasks.DetectSigningIdentity.
- Добавлена командная строка установщика для удаления неиспользуемого канала.
Известные проблемы
- Не поддерживается синхронизация сертификатов и профилей подготовки учетных записей разработчика Apple, кроме записей, которые планируется использовать для развертывания внутренних систем. В качестве обходного решения скачивайте сертификаты и профили подготовки напрямую с веб-сайта учетной записи разработчика Apple.
От сообщества разработчиков
Советы по безопасности
Уязвимость к повышению прав ASP.NET Core и Visual Studio CVE-2021-43877. В модуле ASP.NET Core (ANCM) существует уязвимость к повышению прав, которая может разрешить повышение привилегий при размещении приложений .NET Core, .NET 5 и .NET 6 в службах IIS.
Уязвимость к повышению прав CVE-2022-24765. В Git для Windows существует потенциальная уязвимость к повышению прав, связанная с возможностью выполнять операции Git вне репозитория при поиске каталога Git. Версия Git для Windows обновлена до 2.35.2.1.
Уязвимость загрузки DLL CVE-2022-24767. В установщике Git для Windows существует потенциальная уязвимость загрузки DLL при запуске средства удаления с учетной записью пользователя SYSTEM. Версия Git для Windows обновлена до 2.35.2.1.
Уязвимость к повышению прав CVE-2022-24513. Существует потенциальная уязвимость к повышению прав, когда служба обновления Microsoft Visual Studio неверно анализирует данные локальной конфигурации.
Visual Studio 2022 версии 17.1.3
Выпущено 31 марта 2022 г.
Проблемы, устраненные в выпуске 17.1.3
- Добавлена поддержка Apple Xcode 13.3.
- Устранена ошибка генератора IPA iOS (ERROR ITMS-90207) при использовании Xcode 13.3.
- Не удалось синхронизировать <учетную запись электронной почты > с порталом разработчика Apple
- Устранена проблема, из-за которой Visual Studio зависал при использовании TFVC в течение длительного периода времени (более часа).
- Устранена проблема, которая приводила к появлению сообщения об ошибке "Обнаружена несовместимая версия SQL Server" при подключении к управляемому экземпляру SQL Azure из Visual Studio SQL Server Data Tools.
Известные проблемы
- Развертывание приложения iOS с помощью Visual Studion 2022 и Apple Xcode 13.3 приводит к появлению черного или пустого окна симулятора iOS. Возможное решение: установите флажок "Удаленный симулятор для Windows" в разделе Параметры iOS в меню "Сервис" > "Параметры". Развертывание приложения iOS на узле macOS должно выполниться должным образом.
От сообщества разработчиков
В сообществе разработчиков приведен полный список исправлений, доступных в версии 17.1.
Visual Studio 2022 версии 17.1.2
Дата выпуска: 22 марта 2022 г.
Проблемы, устраненные в выпуске 17.1.2
- Исправлена проблема, из-за которой некоторые анимации для выполнения теста выполнялись в фоновом режиме даже после завершения связанных тестов. Это могло замедлять работу, что было особенно заметно на мониторах с высокой частотой обновления экрана. Данное исправление должно улучшить работу Visual Studio на таких мониторах.
- Отключите автоматическое открытие окна обозревателя трассировки стека при открытии Visual Studio. Его в дальнейшем по-прежнему можно включить в параметрах.
- Исправлена регрессия, из-за которой вкладки документа перетаскивания работали только с графическим элементом закрепления, а не с другими вкладками документов.
- Исправлена проблема с единичным зависанием компоновщика.
От сообщества разработчиков
В сообществе разработчиков приведен полный список исправлений, доступных в версии 17.1.
- В конструкторе Windows Forms 5 недоступен предварительный просмотр для средств чтения с экрана
- Не удается свернуть Visual Studio
- Ошибка TFS: TF30063 — отсутствуют права доступа
- Больше не удается перетащить вкладки документов в определенное место в разделе вкладок документа
Visual Studio 2022 версии 17.1.1
Выпущено 8 марта 2022 г.
Проблемы, устраненные в выпуске 17.1.1
От сообщества разработчиков
В сообществе разработчиков приведен полный список исправлений, доступных в версии 17.1.
- Регрессия CMake->vcxpro в версии 17.1.0 при использовании CONFIG в пользовательской команде
- VSSDK: VS 17.1.0 (предварительная версия 5.0) зависает после выполнения IVsObjectManager.UnregisterLibMgr()
Советы по безопасности
Уязвимость CVE-2020-8927 — уязвимость удаленного выполнения кода в .NET 5.0 и .NET Core 3.1, где в версиях библиотеки Brotli, предшествующих версии 1.0.8, имеется ошибка, связанная с переполнением памяти.
Уязвимость CVE-2022-24464 — уязвимость типа "отказ в обслуживании" в .NET 6.0, .NET 5.0 и .NET CORE 3.1 при анализе определенных типов HTTP-запросов форм.
Уязвимость CVE-2022-24512 — уязвимость удаленного выполнения кода в .NET 6.0, .NET 5.0 и .NET Core 3.1 при переполнении буфера стека в подпрограмме двойного анализа .NET.
CVE-2021-3711: уязвимость переполнения буфера OpenSSL — потенциальная уязвимость переполнения буфера в OpenSSL, который используется Git для Windows. Git для Windows теперь обновлен до версии 2.35.1.2, в которой эта проблема устранена.
Visual Studio 2022 версии 17.1.0
Выпущено 15 февраля 2022 г.
Сводка новых возможностей этого выпуска Visual Studio 2022 версии 17.1.0
C++
- Добавлен новый шаблон предустановки конфигурации для настройки и сборки проектов CMake на удаленной системе macOS с помощью файла "CMakePresets.json". Можно также запустить целевые объекты CMake на удаленной системе macOS и выполнить отладку во внешнем интерфейсе отладчика Visual Studio с подключением GDB или LLDB.
- Теперь можно выполнить отладку дампов ядра на удаленной системе macOS из Visual Studio с помощью LLDB или GDB.
- Версии Clang и LLVM, поставляемые с Visual Studio, обновлены до версии 13.
- Интеграция Visual Studio с CMake активируется, только когда файл "CMakeLists.txt" определяется в корне открытой рабочей области. Если файл "CMakeLists.txt" определяется на другом уровне рабочей области, появится уведомление, предлагающее активировать интеграцию Visual Studio с CMake.
- Добавлено новое окно визуализации регистра внедренных целевых объектов, доступное в меню "Отладка > Окна > Внедренные регистры".
- Добавлено новое представление цепочек для проектов ОСРВ, доступное в меню "Отладка > Окна > Объекты ОСРВ".
Отладка и диагностика
- Добавлена новая функция "StickyDataTips", с помощью которой окно подсказок по данным будет увеличиваться, пока вы не щелкнете любое другое место. Это позволяет легко оценить объекты в окне подсказок по данным. Чтобы включить эту функцию, установите флажок "Разворачивать окно подсказок по данным до щелчка за его пределами" в меню "Сервис > Параметры > Отладка > Общие".
- Добавлена поддержка присоединения к процессу для Служб приложений Microsoft Azure.
Редактор
- Теперь функцию очистки кода можно настроить для запуска при каждом явном сохранении файла. В меню "Сервис > Параметры" в разделе "Текстовый редактор > Очистка кода" новый параметр позволяет пользователям включать очистку кода при явном сохранении, а также выбирать профиль для запуска. Обратите внимание, что этот параметр не приведет к запуску очистки кода при автосохранении.
Инструменты Git
- Добавлена возможность сравнения ветвей в Visual Studio.
- Реализованы улучшения для отключенного состояния указателя HEAD, включая возможность извлечь фиксации.
- Улучшение ветвления в нескольких репозиториях, включая возможность одновременного создания ветвей в разных репозиториях (предварительная версия функции).
- Добавлена возможность включения файла сведений при создании репозиториев GIT в Visual Studio.
- Улучшена возможность закрепления часто используемых ветвей с помощью меняющихся кнопок.
- Более легкодоступный пользовательский интерфейс для связывания рабочих элементов с новыми фиксациями.
IDE
- Включена возможность переключать цветовую схему, чтобы настроить цвет вкладок с группировкой по расширению файла или проекту.
- Включена возможность настраивать цвета вкладок, когда цветные вкладки включены. Щелкните правой кнопкой мыши цветную вкладку и выберите "Задать цвет вкладки".
Установка и обновления
- Мы сократили число перезагрузок, необходимых после установки.
- Необходимые перезагрузки часто были вызваны обновлением файлов среды выполнения Visual C++ в системном каталоге, когда они использовались. Как правило, эти файлы обновляются правильно; перезагрузка необходима только для очистки замененных файлов. В таких случаях в установщике Visual Studio теперь отображается диалоговое окно с рекомендацией перезагрузить компьютер.
- При появлении этого диалогового окна клиент может сразу же запустить интегрированную среду разработки Visual Studio (без перезагрузки).
- Добавлены сведения о датах окончания срока действия канала LTSC в диалоговом окне Параметры обновления.
- Добавлена возможность программно изменять исходное расположение обновлений независимо от фактического выполнения обновления. Благодаря этому ИТ-администраторы могут программно изменять канал обновления.
Присоединение к процессу для Служб приложений Microsoft Azure
- .NET (Framework, Core, или 5+) для Windows можно присоединить, не открывая решение или проект. Откройте диалоговое окно "Присоединение к процессу", измените тип подключения на "Службы приложений Microsoft Azure", выберите "Найти", выберите подписку, а затем найдите Службу приложений в группе ресурсов и нажмите кнопку "ОК". Найдите процесс, к которому необходимо подключиться, и нажмите кнопку "Подключить".
Средства разработчика Microsoft Teams
- Набор средств Teams — это расширение Visual Studio, которое позволяет разработчикам создавать функциональные возможности для Microsoft Teams. Это расширение входит в состав платформы Microsoft Teams (TeamsFx). Дополнительные сведения о наборе средств Teams и TeamsFx см. на сайте GitHub и в документации по Microsoft Teams.
- Теперь компонент средств разработчика Microsoft Teams можно выбирать в рабочей нагрузке "ASP.NET и разработка веб-приложений" в Visual Studio Installer.
- При установке этого компонента добавляется расширение набора средств Teams. Чтобы приступить к созданию приложения, добавляемого на вкладку Teams, используйте новый шаблон проекта "Приложение Microsoft Teams".
Производительность .NET
Теперь доступно завершение IntelliSense для
await
в выражении, поддерживающем ожидание. Начните вводить выражение, поддерживающее ожидание, и обратите внимание, чтоawait
теперь появляется в списке завершения.Теперь доступен рефакторинг для перемещения статических элементов в новый тип. Поместите курсор на статический элемент. Нажмите (CTRL + .), чтобы открыть меню Быстрые действия и рефакторинг. Выберите Переместить статические элементы в другой тип.... Откроется диалоговое окно, в котором можно выбрать перемещаемые элементы.
Теперь доступен рефакторинг для упрощения кода посредством использования новых расширенных шаблонов свойств C# 10.0. Использование расширенных шаблонов свойств сокращает помехи и позволяет ссылаться на вложенные элементы вместо вложения еще одного рекурсивного шаблона. Поместите курсор на ссылку на вложенный элемент. Нажмите (CTRL + .), чтобы открыть меню Быстрые действия и рефакторинг. Выберите пункт Упростить шаблон свойства.
Теперь доступен рефакторинг, который обнаруживает переключения переменных и предлагает использовать кортеж для перестановки значений. Таким образом, вместо временной переменной для перестановки аргументов можно использовать кортеж. Поместите курсор на присвоение временной переменной, где происходит перестановка значений. Нажмите (CTRL + .), чтобы открыть меню Быстрые действия и рефакторинг. Выберите пункт Использовать кортеж для замены значений.
Окно определения кода теперь поддерживает C# и Visual Basic. Чтобы использовать окно определения кода, нажмите клавиши CTRL+W, D или выберите пункт "Вид > Окно определения кода". Затем установите курсор на идентификатор для перемещения по коду и его изучения.
Теперь доступен рефакторинг для включения ссылочных типов, допускающих значение NULL, в рамках проекта. Чтобы использовать такие типы, добавьте элемент
<Nullable>
enable</Nullable>
в файл проекта или добавьте прагму #nullable enable в каждый исходный файл проекта. Для упрощения этого процесса теперь мы автоматически включаем элемент<Nullable>
enable</Nullable>
в новые проекты .NET. Для существующих проектов .NET ссылочные типы, допускающие значение NULL, можно включить, поместив курсор на прагму #nullable enable. Нажмите (CTRL + .), чтобы открыть меню Быстрые действия и рефакторинг. Выберите пункт Включить ссылочные типы, допускающие значение NULL, в проекте.Улучшено отображение справки по сигнатуре, когда кортеж встречается в сигнатуре несколько раз. Упрощенное представление включает ключ структурного типа для отображения содержимого кортежа.
Теперь вы можете получить обзор ошибок и предупреждений, не наводя указатель мыши на строку кода, благодаря встроенной диагностике. По умолчанию встроенная диагностика отключена. Ее можно включить в разделе "Сервис > Параметры > Текстовый редактор > C# или Basic > Расширенные", выбрав Показывать встроенную диагностику (экспериментальная функция).
Теперь внедренный исходный код и действие Ссылка на источник отображаются в функции "Перейти к определению", если указанная сборка содержит внедренный исходный код или ссылку на источник. Это позволяет переходить к исходным файлам, в которых объявлен целевой символ. Для перехода к исходному файлу поместите курсор на символ и нажмите клавишу F12.
Теперь в окне обозревателя трассировки стека отображаются трассировки стека из буфера обмена, что позволяет переходить к необходимому коду напрямую. Трассировка стека будет автоматически отображаться по умолчанию, если скопировать ее из решения и переключить фокус на окно обозревателя трассировки стека. Чтобы открыть окно обозревателя трассировки стека, перейдите на вкладку "Вид > Другие окна" и выберите "Обозреватель трассировки стека".
В Visual Studio 2019 был представлен новый пользовательский интерфейс для EditorConfig. Применение файлов EditorConfig позволяет обеспечить согласованность кода за счет определения форматов и стилей кода. Эти же файлы могут существовать в репозитории с вашим кодом и использовать ту же систему управления исходным кодом. Таким образом, стилистическое руководство будет одинаковым для всех участников команды, клонирующих код из этого репозитория. В этом выпуске были добавлены стили именования в пользовательский интерфейс EditorConfig. Чтобы добавить файл EditorConfig в проект или решение, щелкните правой кнопкой мыши его имя в обозревателе решений. Нажмите "Добавить новый элемент". В диалоговом окне "Добавление нового элемента" найдите файл EditorConfig. Выберите шаблон ".NET EditorConfig" для добавления файла EditorConfig, уже содержащего параметры по умолчанию. Обратите внимание на новый пользовательский интерфейс EditorConfig и новый параметр "Стили именования".
Другие усовершенствования
- Переход к определению из сведений об исходном коде в PDB.
- Завершение IntelliSense для
await
в выражении, поддерживающем ожидание. - Рефакторинг для переноса статических элементов в новый тип.
- Рефакторинг для упрощения кода путем использования новых расширенных шаблонов свойств C# 10.0.
- Рефакторинг для выявления переключения переменных с предложением использовать кортеж для переключения значений.
- Поддержка окна определения кода для C# и Visual Basic.
- Рефакторинг для включения ссылочных типов, допускающих значение NULL, в рамках проекта.
- Улучшенное упрощенное представление справки по сигнатуре, когда кортеж встречается в сигнатуре несколько раз.
- Обзор ошибок и предупреждений благодаря встроенной диагностике.
Спасибо
- И, наконец, большая благодарность людям, которые в этом месяце трудились над производительностью .NET (Roslyn):
- Youssef Виктор (@Youssef1313):
- Петр Одерка (@svick):
- Поиск альтернативного решения вместо упрощения позиционных шаблонов PR #57676
- Салех Ахмед Панна (Saleh Ahmed Panna) (@panna-ahmed)
- Локализация сообщения об отсутствующем предупреждении PR #57502
- Павел Криметс (Pavel Krymets) (@pakrym)
- Предложение по удалению начальных пробелов в комментариях к коду PR #57414
- Кев Ричи (Kev Ritchie) (@KevRitchie)
- Обновление документации для объяснения поведения FullyQualifiedFormat PR #57397
- Марсио А Брага (Marcio A Braga) (@MarcioAB)
- Обновление файла "TextSpan.cs" PR #57300
- Бернд Бауманнс (Bernd Baumanns) (@bernd5)
- Исправление ошибки "Вызов указателя функции не создает операций" PR #57191
- Мартин Стрикер (@MaStr11):
- Исправление кода для CS1591: добавление тега "inheritdoc" PR #57004
- Пол М Коэн (@paul1956):
- Предварительное исправление проблемы "Некорректное форматирование продолжения строк VB после символа _" PR #54559
Горячая перезагрузка .NET
- Несколько улучшений в .NET Горячая перезагрузка для разработчиков, создавая приложения Blazor, включая решения следующих проблем:
- Для разработчиков Blazor, создающих веб-сборки (Wasm), иногда отображается диалоговое окно грубого редактирования, когда изменения фактически были применены, или же это диалоговое окно отображается несколько раз.
- Для разработчиков Blazor, создающих веб-сборки (Wasm), постоянно приходится использовать грубое редактирования, если они использовали функцию перестроения в диалоговом окне грубого редактирования, а затем попытались внести изменения в файлы Razor.
- Разработчики Blazor иногда замечают, что сеанс Горячей перезагрузки завершается при запуске приложения с помощью отладчика Visual Studio (F5).
- Для разработчиков Blazor отображается останов отладчика Visual Studio с сообщением "Не удается остановить отладку" после попытки изменить файл error.cshtml и применить изменения к нему с помощью Горячей перезагрузки .NET. В будущих выпусках Visual Studio будут исправлены многие другие ошибки, поскольку мы стремимся улучшить эту функцию и повысить ее надежность. При возникновении каких-либо проблем сообщите об этом с помощью функции "Сообщить о проблеме" в Visual Studio.
Производительность
- Повышена производительность при закрытии решения благодаря оптимизации очистки.
- Visual Studio теперь индексирует ваши файлы в базе кода, чтобы быстрее выполнять команду "Найти в файлах". Чтобы отключить индексированный поиск, перейдите в меню "Сервис > Параметры > Среда > Функции предварительной версии" и переключите параметр Включить индексирование для ускорения поиска.
Редактор Razor (ASP.NET Core)
- Теперь Razor будет добавлять недостающие директивы "using", если они требуются для быстрого действия.
Фильтры решений
- Добавлен параметр для загрузки или перезагрузки всего дерева зависимостей для проектов в фильтре решений. Если вы добавили новые проекты в дерево зависимостей, но не добавили их вручную в фильтр решений, можно легко добавить все зависимости одновременно.
- Этот параметр ("Обновить зависимости проекта") находится в контекстном меню узла решений (щелкните решение правой кнопкой мыши в обозревателе решений).
Инструменты тестирования
- Теперь при выполнении тестирования анимация тестирования отображается в нижней части оболочки Visual Studio. Она аналогична анимации сборки и позволяет наглядно увидеть, что Visual Studio работает, а также сигнализирует о том, что процесс выполняется без сбоев.
- Инструменты для оценки объема протестированного кода теперь могут создавать соответствующий формат cobertura. Вы можете включить эту возможность в файле runsettings, добавив
<Format>Cobertura</Format>
в раздел конфигурации DataCollector в файле runsettings. Данный формат будет отображаться в окне оценки объема протестированного кода в Visual Studio Enterprise. - Также данные можно собрать с использованием формата cobertura из CLI, либо указав его в файле runsettings или параметре. Для CLI dotnet используйте
dotnet test --collect:"Code Coverage;Format=Cobertura"
. Для vstest используйтеvstest.console.exe /collect:"Code Coverage;Format=Cobertura"
. Параметр collect переопределит формат, указанный в runsettings.
Веб-инструменты
- При подготовке и выборе ресурсов Azure Visual Studio запоминает выбранные значения для полей "Группа ресурсов" и "Расположение", вместо того, чтобы всегда по умолчанию использовать первую запись в списке. Даже если предыдущий выбор недоступен Visual Studio теперь вычисляет ближайшее географическое расположение и выбирает значение по умолчанию.
- Профили публикации теперь всегда перечисляются в алфавитном порядке в раскрывающемся списке, расположенном в верхней части сводной страницы публикации, а также в раскрывающемся списке на панели инструментов Visual Studio с именем "Веб-публикация одним щелчком".
- В канале предварительной версии Visual Studio по-прежнему имеется поддержка инструментов для Контейнеров приложений Azure. Чтобы продолжить работу с Контейнерами приложений Azure, установите выпуск 17.2 (предварительная версия 1).
Горячая перезагрузка XAML
- Горячая перезагрузка XAML теперь поддерживает больше сквозных сценариев при использовании с Горячей перезагрузкой .NET. Мы включили следующие сценарии: для приложений WPF и WinUI 3:
- Редактор кода XAML теперь будет правильно показывать типы элементов управления и свойства, созданные операцией Горячей перезагрузки .NET в IntelliSense.
- Привязка к вновь созданному свойству с помощью Горячей перезагрузки .NET теперь будет работать должным образом. Для WinUI теперь можно также использовать x:Bind для привязки к новому свойству. Для приложений WPF:
- Добавление вновь созданного метода для обработчика событий, созданного с помощью Горячей перезагрузки .NET, теперь будет работать. Примечание. Хотя приведенные выше сценарии работают, если типы сначала применяются с помощью Горячей перезагрузки .NET, а затем используется Горячая перезагрузка XAML, существует известное ограничение. Например, если назначить новое свойство, использующее Горячую перезагрузку XAML, свойству, которое еще не было создано, и затем использовать только Горячую перезагрузку .NET для ее создания, то изменение XAML не будет видеть новое свойство. Мы знаем об этой проблеме и надеемся исправить ее в будущем.
Динамический просмотр XAML
- Мы внесли ряд улучшений в линейки, а также в операции изменения масштаба и выбора элементов.
- Динамический просмотр XAML теперь поддерживает приложения .NET MAUI (WinUI и Android), однако доступность платформы .NET MAUI по-прежнему ограничена.
В этом выпуске мы внесли несколько улучшений в динамический просмотр XAM, включая следующие изменения:
Поддержка .NET MAUI (WinUI и Android Emulator): теперь поддерживаются приложения .NET MAUI, которые либо выполняются как приложение WinUI 3, либо выполняются в Android Emulator.
(Примечание. Платформа .NET MAUI пока поддерживается не в каждой версии Visual Studio, поэтому эта возможность, которая является встроенной, начиная с версии 17.1, будет доступна только в тех версиях, где доступна платформа .NET MAUI).
Изменения линейки: на линейках теперь правильно отображается индикатор пикселей — справа налево или слева направо в зависимости от конфигурации приложений. Изменения в операции выбора элементов: при использовании функции "Выбрать элемент" в динамическом просмотре XAML теперь всегда будет выполняться переход к источнику. Ранее это был настраиваемый параметр, однако он был удален в этом выпуске, а поведение теперь приведено к единому стандарту во избежание путаницы. Улучшения масштабирования: в раскрывающемся списке изменения масштаба теперь поддерживается автоматическое выполнение операций "Вписать все", "По ширине" и "По высоте", чтобы упростить изменение масштаба. Кроме этой новой возможности, вы по-прежнему можете использовать обычный масштаб в процентах или колесо прокрутки.
Проблемы, устраненные в выпуске 17.1
- Устранена проблема, из-за которой пользовательский визуализатор отладчика для DataSet не работал в сценариях удаленной отладки и отладки Службы приложений Azure.
- Добавлена поддержка отмены ожидающей операции "Горячая перезагрузка".
- Устранены проблемы добавочного развертывания при использовании Горячего перезапуска Xamarin.
- Исправлена и включена поддержка CodeLens для Team Foundation Server.
- Исправлена ошибка, вызывавшая неверное выделение цветом кода в сценариях Razor и LiveShare.
- Улучшена работа IntelliSense для C++ в Visual Studio при разработке проектов CMake на системах с macOS. Visual Studio теперь обрабатывает CMake-переменную CMAKE_OSX_SYSROOT при поиске заголовков C++.
- Исправлено несколько проблем, из-за которых использование задачи omp при объединении /openmp:llvm и /ZI приводило к сбою компилятора или генерированию неправильного кода.
- Исправлена проблема с отладкой приложений Android при отключенной функции быстрого развертывания.
- Исправлена проблема, вызывающая ошибку C2567 при использовании /experimental:deterministic, /pathmap и /clr.
- Исправлены сбои в преобразователях ARM64X из-за флагов /RTC.
- Не декорируйте уже декорированные символы ARM64EC при связывании.
- Мы исправили проблему с созданием рабочего процесса Контейнеров приложений Azure, из-за которой создание субъекта-службы завершалось сбоем, если субъект-служба с таким именем уже присутствовал.
- Добавлены операторы <=> и == в ATL CString.
- Обновлена таблица флагов компоновщика, чтобы разрешить различать -cgthreads и -pdbthreads между этапами GENRROFILE и USEPROFILE.
- Исправлена проблема с публикацией проектов, содержащих ссылку COM x86, с помощью ClickOnce.
- Исправлена ошибка со сбоем VS при добавлении нескольких профилей запуска в диалоговом окне "Управление параметрами запуска Docker Compose".
- Исправлена проблема с упаковкой сборок AOT'd
no-write-symbols,nodebug
в приложениях Xamarin.Android. - Компилятор C# будет генерировать неправильный codegen или аварийно завершать работу в определенных сценариях с интерполированными обработчиками строк и индексаторами from-end в назначениях деконструкции. Теперь эти проблемы исправлены. Дополнительные сведения см. здесь: https://github.com/dotnet/roslyn/issues/58514 и https://github.com/dotnet/roslyn/issues/58569.
- Исправлен периодический сбой VS, когда открыт конструктор WinForms .NET и выполняются некоторые операции над проектом.
- Добавлен ARM64EC в параметры /MACHINE для link.exe.
- Исправлена проблема, из-за которой изменения в файле параметров рабочей области CMak иногда не вступали в силу.
- При некоторых обстоятельствах публикация рабочей службы в контейнерных приложениях Azure завершалась неудачно без уведомления.
- Исправлена проблема, из-за которой среда Visual Studio не запускалась на компьютерах с Windows 7.
От сообщества разработчиков
- Мне регулярно приходится принудительно завершать процесс devenv.exe, чтобы закрыть VS, поскольку среда зависает в режиме редактирования и ничего не открывается
- Средства Razor: сохранение цветов Disco
- Функция встроенной замены фокусируется на неверных входных данных
- MSB3179: ошибка изоляции ссылки COM-элемент "SMTLib" — для этого компонента не обнаружены зарегистрированные классы
- Не удается использовать новое окно "Свойства отладки проекта" с помощью средства чтения с экрана.
- Горячая перезагрузка не работает с файлом CSHTML в проекте веб-сайта .NET
- Код, созданный генератором исходного кода, отмечен красной волнистой линией, но компилируется без ошибок
- Необходимо улучшить параметр управления двунаправленным письмом
- При попытке добавить новый профиль запуска через параметры управления Docker Compose возникает сбой в работе Visual Studio 2022.
- Генератор исходного кода IntelliSense не работает в клиентском проекте
- Горячий перезапуск в iOS 15 не работает со встроенными шрифтами и некоторыми дополнительными компонентами (например, Firebase)
- Медленная работа функции "Перейти к определению" в Visual Studio при использовании UE5 с ранним доступом (при работе с крупными проектами использовался IntelliSense)
- Возникала ошибка в Visual Studio 2022, Xamarin и SignalR (метод не найден)
- В окне репозитория Git использовался неправильный формат даты (регрессия проблемы в VS 2022)
- В Visual Studio возникла непредвиденная проблема
- В Visual Studio 2022 предварительной версии 7 останавливалась работа при появлении сообщения "Ожидание завершения инициализации IntelliSense…"
- System.InvalidOperationException: нет ожидающихся обновлений
- UseMultiToolTask приводил к сбою обнаружения изменений в предкомпилированном заголовке C++ при компиляции одного CPP-файла
- Не удавалось разрешить символ "WebAssembly"
- На странице Blazor (*.razor) добавление точки с запятой к строке кода C# приводило к резкому переходу курсора
- PackageId:Microsoft.VisualStudio.TestWindow.SourceBasedTestDiscovery;PackageAction:Install;ReturnCode:-2147024690;
- Происходил сбой модулей std::any в нестандартном коде при импорте модуля
- ARM64: автоматически создавался некорректный код, когда компилятор совершал передачу по значению
- Возникала ошибка при компиляции WSL, если максимальное количество параллельных заданий компиляции превышало >1
- Использование битового "|", когда, вероятно, подразумевалось логическое "||"
- Функция "Найти все ссылки" в Visual Studio 2019 версии 16.10.X
- Исправлена проблема с публикацией проектов, содержащих ссылку COM x86, с помощью ClickOnce.
- Обновление Visual Studio нарушало компиляцию пакета
- Разработка приложений для Linux на C++ — неверная внутренняя динамическая компоновка
- Комментарии без тегов Doxygen анализируются неправильно
- Ошибка компоновки при локальном объявлении в пространстве имен
- Предопределенные макросы для launch.vs.json
- В обозревателе решений не отображается значок файлов PowerShell
- Ложноположительный результат C26440: функцию можно объявить как noexcept
- C++: шаблон std::is_empty неверен для специализации шаблона
- VC++ для Linux: перед копированием источников активируется удаленное событие перед сборкой
- Изоляция Blazor Server и CSS с использованием .Net 6 и VS Community 2022
См. полный список исправлений от Сообщества разработчиков для этого выпуска.
Известные проблемы
Просмотрите все открытые проблемы и доступные решения в Visual Studio 2022, перейдя по ссылке ниже.
Отзывы и предложения
Мы будем рады узнать ваше мнение! Вы можете сообщить о проблеме или предложить функцию с помощью значка отправки отзывов в правом верхнем углу установщика или интегрированной среды разработки Visual Studio или справки > по отправке отзывов. Вы можете отслеживать проблемы в сообществе разработчиков Visual Studio, позволяющем добавлять комментарии или искать решения. Кроме того, вам доступна бесплатная поддержка в чате по вопросам с установкой.
Блоги
Воспользуйтесь аналитикой и рекомендациями с сайта Developer Tools Blogs. Там вы найдете актуальные сведения обо всех новых выпусках и сможете читать публикации с подробным анализом самых разных функций.