Требования к системе для семейства продуктов Visual Studio 2022
Просмотрите записи с мероприятия по запуску Visual Studio 2022, чтобы узнать о новых возможностях, услышать советы и скачать бесплатные цифровые образцы.
Обзор
На этой странице перечислены минимальные требования к системе для семейства продуктов Visual Studio 2022. Сведения о совместимости см. в разделе Целевая платформа и совместимость Visual Studio 2022. См. дополнительные сведения по повышению производительности Visual Studio.
Загрузка
Нажмите кнопку, чтобы скачать последнюю версию Visual Studio 2022. Инструкции по установке и обновлению Visual Studio 2022 см. в документации по обновлению до последнего выпуска Visual Studio 2022. Кроме того, см. инструкции по установке в автономном режиме.
Посетите сайт Visual Studio, чтобы скачать другие продукты Visual Studio 2022.
Требования к системе для предыдущих версий Visual Studio см. в разделах по Visual Studio 2019, Visual Studio 2017, Visual Studio 2015 или Visual Studio 2013.
Как обстоят дела?
Мы будем рады узнать ваше мнение! Для устранения проблем сообщите нам о проблеме в правом верхнем углу установщика или в самой интегрированной среде разработки Visual Studio. Значок находится в правом верхнем углу. Вы можете отслеживать проблемы в сообществе разработчиков Visual Studio, где можно задать интересующие вопросы, найти нужные ответы и отправить предложения по продуктам. Вам доступна бесплатная поддержка в чате по вопросам с установкой.
Требования к системе Visual Studio 2022
Минимальные требования к системе относятся к следующим продуктам.
- Visual Studio Enterprise 2022.
- Visual Studio Professional 2022.
- Visual Studio Community 2022.
Поддерживаемые операционные системы
Visual Studio 2022 поддерживается в следующих 64-разрядных операционных системах:
- Минимальная поддерживаемая версия ОС Windows 11 или выше: домашняя, профессиональная, профессиональная для образовательных учреждений, профессиональная для рабочих станций, корпоративный и для образования
- Поддерживаемые ОС Windows 11 можно найти здесь: Поддержка Windows 11 корпоративный и для образования
- Поддерживаемые ОС Windows 10 можно найти здесь: Поддержка Windows 10 корпоративная и для образования
- 32-разрядные ОС и ARM32.
- Windows 11 Домашняя в режиме S, Windows IoT Корпоративная, Windows 10 IoT Базовая, Windows 10 Корпоративная, выпуск LTSC, Windows 10 S и Windows 10 Team Edition. Вы можете использовать Visual Studio 2022 для сборки приложений, выполняемых в следующих выпусках Windows 10.
- Серверный IoT и минимальный серверный интерфейс для Windows Server.
- Контейнеры Windows, за исключением Visual Studio Build Tools.
- Запуск в среде виртуальной машины без полной операционной системы Windows.
- Такие решения виртуализации приложений, как Microsoft App-V или MSIX для Windows, а также технологии виртуализации приложений сторонних производителей.
- Одновременное использование несколькими пользователями программного обеспечения на одном компьютере, включая компьютеры общей инфраструктуры виртуальных рабочих столов или пулы узлов Виртуального рабочего стола в составе пула.
Оборудование
Указания по повышению производительности см. в разделе Оптимизация производительности Visual Studio.
- Процессор ARM64 или x64; Рекомендуется четырехъядерный процессор или с большим количеством ядер. Процессоры ARM 32 не поддерживаются.
- Не менее 4 ГБ ОЗУ. На используемые ресурсы влияет множество факторов; для стандартных профессиональных решений рекомендуется 16 ГБ ОЗУ.
- Windows 365: не менее 2 виртуальных ЦП и 8 ГБ ОЗУ. Рекомендуется 4 виртуальных ЦП и 16 ГБ ОЗУ.
- Место на жестком диске: от 850 ГБ до 210 ГБ свободного места в зависимости от установленных компонентов, обычно для установки требуется от 20 до 50 ГБ свободного места. Для повышения производительности рекомендуется устанавливать Windows и Visual Studio на твердотельном накопителе (SSD).
- Видеоадаптер с минимальным разрешением WXGA (1366 на 768 пикселей); для оптимальной работы Visual Studio рекомендуется разрешение 1920 на 1080 пикселей или выше.
- Минимальное разрешение предполагает масштабирование, параметры DPI и масштабирование текста на уровне 100 %. Если не задано значение 100 %, необходимо соответствующим образом масштабировать минимальное разрешение. Например, если задать для дисплея Windows значение параметра «Масштаб и макет» на устройстве Surface Book, которое имеет физический дисплей 3000 x 2000, значение 200 %, то для Visual Studio логическое разрешение экрана будет 1500 x 1000, что соответствует минимальным требованиям в 1366 x 768.
Поддерживаемые языки
Visual Studio доступна на следующих языках: английский, китайский (упрощенное и традиционное письмо), чешский, французский, немецкий, итальянский, японский, корейский, польский, португальский (Бразилия), русский, испанский и турецкий. Язык Visual Studio можно выбрать во время установки. Установщик Visual Studio доступен на тех же четырнадцати языках и будет соответствовать языку Windows (если он доступен).
Установщик интеграции Team Foundation Server с Office 2019 с Office доступен на десяти языках, поддерживаемых Visual Studio Team Foundation Server 2019.
Дополнительные требования и инструкции
- Для установки или обновления Visual Studio требуются права администратора.
- Дополнительные рекомендации и инструкции по установке, развертыванию, обновлению и настройке Visual Studio в организации см. в руководстве администратора Visual Studio.
- Для установки Visual Studio необходима платформа .NET Framework 4.7.2 или выше. (Для установки Visual Studio версии 17.8 и более ранних версий требуется .NET Framework 4.5.2 или более поздняя версия.) Для работы Visual Studio требуется .NET Framework 4.8. Если платформа .NET Framework 4.8 еще не установлена, то будет выполнена ее установка.
- Для разработки универсальных приложений для Windows, включая проектирование, редактирование и отладку, требуется Windows 10. Windows Server 2019 и Windows Server 2016 могут использоваться для создания универсальных приложений для Windows из командной строки.
- Для установки Visual Studio необходима среда выполнения WebView2. Если она еще не установлена, то будет выполнена ее установка. Установка Visual Studio завершится сбоем, если не удастся успешно установить WebView2 (из-за ошибки установки или ограничений групповой политики на установку или обновление).
- Для интеграции Team Foundation Server 2019 с Office требуется Office 2016, Office 2013 или Office 2010.
- Элемент управления интеллектуальными приложениями, являющийся функцией Windows, не рекомендуется включать на компьютерах разработки. Любой параметр, отличный от «off», может негативно повлиять на производительность Visual Studio.
Требования к системе для инструментов удаленной отладки и изолированного сборщика IntelliTrace для Visual Studio 2022
Для инструментов удаленной отладки и изолированного сборщика IntelliTrace предъявляются те же требования к системе, что и для Visual Studio, со следующими отличиями:
- Также поддерживаются в Windows 7, Windows Server 2008 с пакетом обновления 2 (SP2), Windows Server 2008 R2 с пакетом обновления 1 (SP1), Windows 10 в ARM, Windows 10 Корпоративная LTSC, Windows Server 2012 R2, Windows 8.1 и Windows Server 2012.
- При использовании архитектуры x86 или AMD64/x64 требуется процессор с тактовой частотой не ниже 1,6 ГГц
- Требуется 1 ГБ ОЗУ (1,5 ГБ при запуске на виртуальной машине)
- Требуется 1 ГБ доступного пространства на жестком диске
- Требуется разрешение экрана не ниже 1024 на 768
- Для получения наилучших результатов используйте средства диагностики с самым последним обновлением для вашей версии Visual Studio.
Microsoft Visual Studio Build Tools 2022: требования к системе
Для Build Tools предъявляются те же требования к системе, что и для Visual Studio, со следующими отличиями.
- Кроме того, устанавливается в параметре «Ядро сервера» для Windows Server Core 2022, Windows Server 2019 и Windows Server 2016
- Также устанавливается в контейнер Windows.
- Требуется от 2,3 до 60 ГБ доступного места на диске в зависимости от установленных компонентов.
Распространяемый пакет Microsoft Visual C++ 2015–2022: требования к системе
Чтобы скачать распространяемый компонент Visual C++ 2015–2022, см. страницу visualstudio.microsoft.com/downloads. Распространяемый компонент Visual C++ 2015-2022 поддерживает те же требования к системе, что и Visual Studio, со следующими отличиями:
- Также устанавливается во всех выпусках Windows 11, Windows 10, Windows Server 2022, Windows Server 2019 и Windows Server 2016; Windows Server 2012 R2; Windows Server 2012; Windows Server 2008 R2 с пакетом обновления 1 (SP1) и выпусках Windows Arm64.
- Также устанавливается в Windows 7 с пакетом обновления 1 (SP1), Windows Server 2008 R2 с пакетом обновления 1 (SP1), Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 с пакетом обновления 2 (SP2) для поддержки приложений, созданных с помощью средств Visual C++ 2017 и Visual C++ 2015.
- Требуется 1 ГБ ОЗУ (1,5 ГБ при запуске на виртуальной машине)
- Требуется 50 ГБ доступного пространства на жестком диске
Агент тестирования Microsoft Visual Studio 2022: требования к системе
Агент тестирования Visual Studio поддерживает те же требования к системе, что и Visual Studio, со следующими изменениями.
- Требуется процессор с тактовой частотой 2,6 ГГц или более. Рекомендуется четырехъядерный или с большим количеством ядер.
- Требуется 10 ГБ пространства на жестком диске
Microsoft Visual Studio Test Controller 2022: требования к системе
Visual Studio Test Controller поддерживает те же требования к системе, что и Visual Studio, со следующими изменениями.
- Требуется процессор с тактовой частотой 2,6 ГГц или более. Рекомендуется четырехъядерный или с большим количеством ядер.
- Требуется 10 ГБ пространства на жестком диске
Требования к системе семейства продуктов Visual Studio 2019
На этой странице перечислены минимальные требования к системе для семейства продуктов Visual Studio 2019. Сведения о совместимости см. в разделе Целевая платформа и совместимость Visual Studio 2019. См. дополнительные сведения по повышению производительности Visual Studio.
Новые возможности
Новые возможности Visual Studio 2019
- Интегрированная среда разработки Visual Studio, Заметки о выпуске Visual Studio 2019 или Новые возможности Visual Studio 2019.
Загрузка
Нажмите кнопку, чтобы скачать последнюю версию Visual Studio 2019. Инструкции по установке и обновлению Visual Studio 2019 см. в документации по обновлению до последнего выпуска Visual Studio 2019. Кроме того, см. инструкции по установке в автономном режиме.
Требования к системе для предыдущих версий Visual Studio см. в разделах по Visual Studio 2017, Visual Studio 2015, Visual Studio 2013 или Visual Studio 2012.
Как обстоят дела?
Мы будем рады узнать ваше мнение! Вы можете сообщить о проблемах, щелкнув пункт Сообщить о проблеме в правом верхнем углу установщика или самой IDE-среды Visual Studio. Значок находится в правом верхнем углу. Вы можете отслеживать проблемы в сообществе разработчиков Visual Studio, где можно задать интересующие вопросы, найти нужные ответы и отправить предложения по продуктам. Вам доступна бесплатная поддержка в чате по вопросам с установкой.
Требования к системе Visual Studio 2019
Минимальные требования к системе относятся к следующим продуктам.
- Visual Studio Enterprise 2019
- Visual Studio Professional 2019
- Visual Studio Community 2019
- Интеграция Visual Studio Team Foundation Server 2019 с Office
Поддерживаемые операционные системы
Visual Studio 2019 может устанавливаться и запускаться в следующих операционных системах (рекомендуется 64-разрядная версия; ARM не поддерживается):
- Windows 11 версии 21H2 или более поздней: Домашняя, Pro, Pro для образовательных учреждений, Pro для рабочих станций, Корпоративная и для образовательных учреждений
- Windows 10 версии 1703 или выше: Домашняя, Профессиональная, для образовательных учреждений и Корпоративная (выпуски LTSC и S не поддерживаются).
- Windows Server 2019: Standard и Datacenter
- Windows Server 2016: Standard и Datacenter
- Windows 8.1 (с обновлением 2919355): Core, Профессиональная и Корпоративная
- Windows Server 2012 R2 (с обновлением 2919355): Essentials, Standard, Datacenter
- Windows 7 с пакетом обновления 1 (с последними обновлениями Windows): Домашняя расширенная, Профессиональная, Корпоративная, Максимальная
Оборудование
- Процессор с тактовой частотой не ниже 1,8 ГГц. Рекомендуется использовать как минимум двухъядерный процессор.
- 2 ГБ ОЗУ; рекомендуется 8 ГБ ОЗУ (минимум 2,5 ГБ при выполнении на виртуальной машине)
- Место на жестком диске: до 210 ГБ (минимум 800 МБ) свободного места в зависимости от установленных компонентов, обычно для установки требуется от 20 до 50 ГБ свободного места
- Скорость жесткого диска: для повышения производительности установите Windows и Visual Studio на твердотельный накопитель (SSD)
- Видеоадаптер с минимальным разрешением 720p (1280 на 720 пикселей); для оптимальной работы Visual Studio рекомендуется разрешение WXGA (1366 на 768 пикселей) или более высокое.
Поддерживаемые языки
Visual Studio доступна на следующих языках: английский, китайский (упрощенное и традиционное письмо), чешский, французский, немецкий, итальянский, японский, корейский, польский, португальский (Бразилия), русский, испанский и турецкий.
Язык Visual Studio можно выбрать во время установки. Установщик Visual Studio доступен на тех же четырнадцати языках и будет соответствовать языку Windows (если он доступен).
Примечание. Интеграция Visual Studio Team Foundation Server 2019 с Office доступна на десяти языках, поддерживаемых Visual Studio Team Foundation Server 2019.
Дополнительные требования и инструкции
- Для установки или обновления Visual Studio требуются права администратора.
- Дополнительные рекомендации и инструкции по установке, развертыванию, обновлению и настройке Visual Studio в организации см. в руководстве администратора Visual Studio.
- Для установки Visual Studio необходима платформа .NET Framework 4.5.2 или выше. Для запуска Visual Studio требуется платформа .NET Framework 4.7.2. Она будет установлена в процессе установки.
- В составе .NET Core есть определенные необходимые компоненты Windows для Windows 8.1 и более ранних версий.
- Выпуски Windows 10 Корпоративная LTSC, Windows 10 S и Windows 10 Team Edition не поддерживаются для разработки. Вы можете использовать Visual Studio 2019 для создания приложений под Windows 10 LTSC, Windows 10 S и Windows 10 Team Edition.
- Для сценариев, связанных с Интернетом, требуется Internet Explorer 11 или Microsoft Edge. Некоторые функции могут не работать, если не установлены эти или более поздние версии.
- Варианты «Основные серверные компоненты» и «Минимальный серверный интерфейс» не поддерживаются при запуске Windows Server.
- Visual Studio не поддерживает такие решения виртуализации приложений, как Microsoft App-V или MSIX для Windows, а также технологии виртуализации приложений сторонних производителей.
- Для запуска Visual Studio в среде виртуальной машины требуется полная операционная система Windows. Visual Studio не разрешает нескольким пользователям одновременно использовать программное обеспечение на одном компьютере, включая компьютеры общей инфраструктуры виртуальных рабочих столов или пулы узлов Виртуального рабочего стола в составе пула.
- Запуск Visual Studio 2019 (Professional, Community и Enterprise) в контейнерах Windows не поддерживается.
- Для поддержки эмулятора Hyper-V требуется поддерживаемая 64-разрядная операционная система. Также требуется процессор, который поддерживает клиент Hyper-V и преобразование адресов второго уровня (SLAT).
- Для поддержки Android Emulator требуется поддерживаемый процессор и операционная система.
- Для Xamarin.Android требуется 64-разрядный выпуск Windows и 64-разрядный выпуск пакета Java Development Kit (JDK).
- Для разработки универсальных приложений для Windows, включая проектирование, редактирование и отладку, требуется Windows 10. Windows Server 2019, Windows Server 2016 и Windows Server 2012 R2 могут использоваться для создания универсальных приложений для Windows из командной строки.
- Для интеграции Team Foundation Server 2019 с Office требуется Office 2016, Office 2013 или Office 2010.
- Для установки рабочих нагрузок «Разработка мобильных приложений на C++, JavaScript или .NET» в Windows 7 с пакетом обновления 1 требуется PowerShell 3.0 или более поздней версии.
Требования к системе для инструментов удаленной отладки, средств производительности и изолированного сборщика IntelliTrace для Visual Studio 2019
Для инструментов удаленной отладки, средств производительности и IntelliTrace Standalone Collector предъявляются те же требования к системе, что и Visual Studio, со следующими отличиями:
- Также поддерживается установка в Windows 10 на ARM, Windows 10 Корпоративная LTSC, Windows Server 2012 и Windows Server 2008 R2 с пакетом обновления 1 (SP1)
- При использовании архитектуры x86 или AMD64/x64 требуется процессор с тактовой частотой не ниже 1,6 ГГц
- Требуется 1 ГБ ОЗУ (1,5 ГБ при запуске на виртуальной машине)
- Требуется 1 ГБ доступного пространства на жестком диске
- Требуется разрешение экрана не ниже 1024 на 768
- Для получения наилучших результатов используйте средства диагностики с самым последним обновлением для вашей версии Visual Studio.
Microsoft Visual Studio Build Tools 2019: требования к системе
Для Build Tools предъявляются те же требования к системе, что и для Visual Studio, со следующими отличиями.
- Также устанавливается на Windows Server 2008 R2 с пакетом обновления 1 (SP1)
- Также устанавливается в рамках установки основных серверных компонентов (Server Core) для Windows Server 2016 и Windows Server 2019.
- Также устанавливается в контейнер Windows.
- Требуется от 2,3 до 60 ГБ доступного места на диске в зависимости от установленных компонентов.
Распространяемый пакет Microsoft Visual C++ 2015-2019: требования к системе
Чтобы скачать распространяемый компонент Visual C++ 2015–2019, см. страницу visualstudio.microsoft.com/downloads. visualstudio.microsoft.com/downloads. Распространяемый компонент Visual C++ 2015-2019 поддерживает те же требования к системе, что и Visual Studio со следующими изменениями:
- Они также поддерживают установку на Windows 10 Корпоративная LTSC, Windows Server 2012, Windows Server 2008 R2 с пакетом обновления 1 (SP1), Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 2 (SP2) и Windows XP с пакетом обновления 3 (SP3) для поддержки приложений, созданных с помощью средств сборки VC++ (в том числе версии 2017) и VC++ 2015.
- Требуется 1 ГБ ОЗУ (1,5 ГБ при запуске на виртуальной машине)
- Требуется 50 ГБ доступного пространства на жестком диске
Агент тестирования Microsoft Visual Studio 2019: требования к системе
Агент тестирования Visual Studio поддерживает те же требования к системе, что и Visual Studio, со следующими изменениями.
- Требуется процессор с тактовой частотой не ниже 2,6 ГГц Рекомендуется использовать как минимум четырехъядерный процессор.
- Требуется 4 ГБ ОЗУ или больше для создания нагрузки
- Требуется 10 ГБ пространства на жестком диске
Microsoft Visual Studio Test Controller 2019: требования к системе
Visual Studio Test Controller поддерживает те же требования к системе, что и Visual Studio, со следующими изменениями.
- Требуется процессор с тактовой частотой не ниже 2,6 ГГц Рекомендуется использовать как минимум четырехъядерный процессор.
- Требуется 4 ГБ ОЗУ или больше
- Требуется 10 ГБ пространства на жестком диске
Visual Studio 2022 Product Family System Requirements
Watch the recordings of the Visual Studio 2022 launch event to learn about what’s new, hear tips & tricks, and download free digital swag.
Overview
This page contains the minimum system requirements for the Visual Studio 2022 family of products. For information on compatibility, see Visual Studio 2022 Platform Targeting and Compatibility. If you need help with improving performance, see Visual Studio performance tips and tricks.
Download
Click a button to download the latest version of Visual Studio 2022. For instructions on installing and updating Visual Studio 2022, see Update Visual Studio 2022 to the most recent release. Also, see instructions on how to install offline.
Visit the Visual Studio site to download other Visual Studio 2022 products.
For older versions of Visual Studio, see the system requirements for Visual Studio 2019, Visual Studio 2017, Visual Studio 2015, or Visual Studio 2013.
How are we doing?
We would love to hear from you! For issues, let us know through the Report a Problem option in the upper right-hand. corner of either the installer or the Visual Studio IDE itself. The icon is located in the upper right-hand corner. You can track your issues in the Visual Studio Developer Community, where you can ask questions, find answers and submit product suggestions. You can get free installation help through our Live Chat support.
Visual Studio 2022 System Requirements
The following products support the minimum system requirements below:
- Visual Studio Enterprise 2022.
- Visual Studio Professional 2022.
- Visual Studio Community 2022.
Supported Operating Systems
Visual Studio 2022 is supported on the following 64-bit operating systems:
- Windows 11 minimum supported OS version or higher: Home, Pro, Pro Education, Pro for Workstations, Enterprise, and Education
- Supported Windows 11 OS can be found here: Windows 11 Enterprise and Education Support
- Supported Windows 10 OS can be found here: Windows 10 Enterprise and Education Support
- 32-bit and ARM32 operating systems.
- Windows 11 Home in S mode, Windows Enterprise IoT, Windows 10 IoT Core, Windows 10 Enterprise LTSC edition, Windows 10 S, and Windows 10 Team Edition. You may use Visual Studio 2022 to build apps that run on these editions of Windows.
- Server IoT and Minimal Server Interface options for Windows Server.
- Windows containers, except for the Visual Studio Build Tools.
- Running in virtual machine environment without a full Windows operating system.
- Application virtualization solutions such as such as Microsoft App-V or MSIX for Windows, or third-party app virtualization technologies.
- Multiple simultaneous users using the software on the same machine, including shared virtual desktop infrastructure machines or a pooled Windows Virtual Desktop hostpool.
Hardware
For guidance on improving performance, see Optimize Visual Studio performance.
- ARM64 or x64 processor; Quad-core or better recommended. ARM 32 processors are not supported.
- Minimum of 4 GB of RAM. Many factors impact resources used; we recommend 16 GB RAM for typical professional solutions.
- Windows 365: Minimum 2 vCPU and 8 GB RAM. 4 vCPU and 16 GB of RAM recommended.
- Hard disk space: Minimum of 850 MB up to 210 GB of available space, depending on features installed; typical installations require 20-50 GB of free space. We recommend installing Windows and Visual Studio on a solid-state drive (SSD) to increase performance.
- Video card that supports a minimum display resolution of WXGA (1366 by 768); Visual Studio will work best at a resolution of 1920 by 1080 or higher.
- Minimum resolution assumes zoom, DPI settings, and text scaling are set at 100%. If not set to 100%, minimum resolution should be scaled accordingly. For example, if you set the Windows display ‘Scale and layout’ setting on your Surface Book, which has a 3000×2000 physical display, to 200%, then Visual Studio would see a logical screen resolution of 1500×1000, meeting the minimum 1366×768 requirement.
Supported Languages
Visual Studio is available in English, Chinese (Simplified), Chinese (Traditional), Czech, French, German, Italian, Japanese, Korean, Polish, Portuguese (Brazil), Russian, Spanish, and Turkish. You can select the language of Visual Studio during installation. The Visual Studio Installer is available in the same fourteen languages, and will match the language of Windows, if available.
Visual Studio Team Foundation Server Office Integration 2019 is available in the ten languages supported by Visual Studio Team Foundation Server 2019.
Additional Requirements and Guidance
- Administrator rights are required to install or update Visual Studio.
- Refer to the Visual Studio Administrator Guide for additional considerations and guidance for how to install, deploy, update, and configure Visual Studio across an organization.
- .NET Framework 4.7.2 or above is required to install Visual Studio. (.NET Framework 4.5.2 or above is required to install Visual Studio version 17.8 and earlier.) Visual Studio requires .NET Framework 4.8 to run. If .NET Framework 4.8 isn’t already installed, it will be installed during setup.
- Universal Windows app development, including designing, editing, and debugging, requires Windows 10. Windows Server 2019 and Windows Server 2016 may be used to build Universal Windows apps from the command line.
- The WebView2 runtime is required to install Visual Studio. If it isn’t already installed, it will be installed during setup. The Visual Studio installation will fail if WebView2 can’t be installed successfully (either because of installation error or Group Policy install or update restrictions).
- Team Foundation Server 2019 Office Integration requires Office 2016, Office 2013, or Office 2010.
- Smart App Control, which is a Windows feature, is not recommended to be enabled on development machines. Any setting other than «off» might negatively impact Visual Studio performance.
Remote Tools and IntelliTrace Standalone Collector for Visual Studio 2022 System Requirements
The Remote Tools and IntelliTrace Standalone Collector support the same system requirements as Visual Studio with the following changes:
- Also supported on Windows 7, Windows Server Windows Server 2008 Service Pack 2, Windows Server 2008 R2 Service Pack 1, Windows 10 on ARM, Windows 10 Enterprise LTSC, Windows Server 2012 R2, Windows 8.1, and Windows Server 2012
- If x86 or AMD64/x64, requires a 1.6 GHz or faster processor
- Requires 1 GB of RAM (1.5 GB if running on a virtual machine)
- Requires 1 GB of available hard disk space
- Requires 1024 by 768 or higher display resolution
- For the best experience, use the most recent update of these diagnostic tools for your version of Visual Studio
Microsoft Visual Studio Build Tools 2022 System Requirements
The Build Tools support the same system requirements as Visual Studio with the following changes:
- Also installs on the Server Core option for Windows Server Core 2022, Windows Server 2019, and Windows Server 2016
- Also installs into a Windows container.
- Requires 2.3 GB to 60 GB of available hard disk space, depending on installed features
Microsoft Visual C++ 2015-2022 Redistributable System Requirements
To download the Visual C++ 2015-2022 Redistributable, see visualstudio.microsoft.com/downloads. The Visual C++ 2015-2022 Redistributable supports the same system requirements as Visual Studio with the following changes:
- Also installs on all editions of Windows 11, Windows 10, Windows Server 2022, Windows Server 2019, and Windows Server 2016; Windows Server 2012 R2; Windows Server 2012; Windows Server 2008 R2 SP1, and Arm64 editions of Windows
- Also installs on Windows 7 SP1, Windows Server 2008 R2 SP1, Windows Vista SP2, Windows Server 2008 SP2 to support applications built using the Visual C++ 2017, and Visual C++ 2015 tools.
- Requires 1 GB of RAM (1.5 GB if running on a virtual machine)
- Requires 50 MB of available hard disk space
Microsoft Visual Studio Test Agent 2022 System Requirements
Visual Studio Test Agent supports the same system requirements as Visual Studio with the following changes:
- Requires a 2.6 GHz or faster processor; quad-core or better recommended
- Requires 10 GB of hard disk space
Microsoft Visual Studio Test Controller 2022 System Requirements
Visual Studio Test Controller supports the same system requirements as Visual Studio with the following changes:
- Requires a 2.6 GHz or faster processor; quad-core or better recommended
- Requires 10 GB of hard disk space
Как Visual Studio 2022 съела 100 Гб памяти и при чём здесь XML бомбы?
В апреле 2021 года Microsoft анонсировала новую версию своей IDE – Visual Studio 2022, попутно объявив, что она будет 64-битной. Сколько мы этого ждали — больше никаких ограничений по памяти в 4 Гб! Однако, как оказалось, есть нюансы.
Кстати, если вы пропустили, вот ссылка на тот пост с анонсом.
Но вернёмся к нашему вопросу из заголовка. Я воспроизвёл эту проблему на последней доступной на момент написания заметки версии Visual Studio 2022 Preview — 17.0.0 Preview 3.1.
Для воспроизведения достаточно:
- создать проект пустого решения (шаблон Blank Solution);
- добавить в него XML-файл.
После этого в созданный XML-файл нужно попробовать скопировать следующий текст:
Теперь идём заваривать кофе, возвращаемся и наблюдаем за тем, как Visual Studio отжирает всё больше и больше ОЗУ.
Могут возникнуть 2 вопроса:
- Зачем делать какие-то странные XML и добавлять их в проекты?
- Что здесь вообще происходит?
Что ж, давайте разбираться. Для этого нам нужно будет вспомнить, какие опасности может нести неаккуратная обработка XML-файлов, а также узнать, как со всем этим связан статический анализатор PVS-Studio.
SAST в PVS-Studio
Мы продолжаем активно развивать PVS-Studio как SAST решение. Если говорить про C# анализатор, то основной фокус по этому фронту – поддержка OWASP Top 10 2017 (последняя доступная на данный момент версия – с нетерпением ждём обновления). К слову, если вы пропустили, не так давно мы добавили taint анализ, о чём можно почитать здесь.
Собственно, для тестирования работы анализатора я и создал (точнее, попытался создать) соответствующий синтетический проект. Дело в том, что одна из категорий OWASP Top 10, над которой сейчас ведётся работа, – A4:2017-XML External Entities (XXE). Она затрагивает уязвимость приложений к различным атакам посредством неправильной обработки XML-файлов. Что подразумевается под неправильной обработкой? Например, излишнее доверие к входным данным (извечная проблема многих уязвимостей) и отсутствие должных ограничений в парсерах XML.
В итоге, если файлы окажутся скомпрометированы, это может вылиться в разные неприятные последствия. Здесь можно выделить 2 основные проблемы: раскрытие каких-то данных и отказ в обслуживании. Обе имеют соответствующие CWE:
- CWE-611: Improper Restriction of XML External Entity Reference
- CWE-776: Improper Restriction of Recursive Entity References in DTDs (‘XML Entity Expansion’)
CWE-611 оставим на другой раз, сегодня нас интересует CWE-776.
XML бомбы (billion laughs attack)
Я поясню только основную суть проблемы. Если у вас есть желание изучить проблему глубже – топик легко гуглится, не обессудьте.
Стандарт XML предусматривает использование DTD (document type definition). DTD даёт возможность использовать так называемые XML-сущности.
Синтаксис определения сущностей прост:
Получить значение сущности в дальнейшем можно следующим образом:
Нюанс состоит в том, что сущности могут раскрываться не только в строки (как в нашем случае — «Entity value»), но и в последовательности других сущностей. Например:
В итоге при раскрытии сущности ‘lol1’ мы получим строку следующего вида:
lollollollollollollollollollol
Можно пойти дальше и определить сущность ‘lol2’, раскрыв её уже через ‘lol1’:
Тогда при раскрытии одной лишь сущности ‘lol2’ мы получим следующий выхлоп:
lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollol
Погрузимся на уровень ниже и определим сущность ‘lol3’?
Выхлоп при её раскрытии:
lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol lollollollollollollollollollollollollollollollollollollollollollollollol .
Собственно, сгенерированный по такому принципу XML-файл мы и использовали в начале статьи. Думаю, теперь понятно, откуда название «billion laughs». Получается, что если XML-парсер настроен неправильно (обрабатывает DTD и не имеет ограничений на максимальный размер сущностей), то при обработке подобной ‘бомбы’ ничего хорошего не случится.
Если говорить про C#, уязвимый код проще всего продемонстрировать на примере типа XmlReader:
var pathToXmlBomb = @"D:\XMLBomb.xml"; XmlReaderSettings rs = new XmlReaderSettings() < DtdProcessing = DtdProcessing.Parse, MaxCharactersFromEntities = 0 >; using var reader = XmlReader.Create(File.OpenRead(pathToXmlBomb), rs); while (reader.Read())
Сконфигурировав экземпляр XmlReader подобным образом, вы как бы говорите злоумышленнику этим кодом: «Давай, подорви меня!».
- разрешена обработка DTD;
- снято ограничение на максимальное количество символов из сущностей, то есть разрастание файла никак не ограничено.
По умолчанию, кстати, обработка DTD сущностей запрещена: свойство DtdProcessing имеет значение Prohibit, а на максимальное количество символов из сущностей стоит ограничение (начиная с .NET Framework 4.5.2). Так что в современном .NET всё меньше возможностей прострелить себе ногу. Хотя при неаккуратном конфигурировании парсеров это всё ещё возможно.
Возвращаясь к Visual Studio 2022
Похоже, что в Visual Studio 2022 при копировании нашей XML бомбы сработали как раз оба условия:
- запустилась обработка DTD;
- не стояло никаких ограничений, из-за чего объём потребляемой памяти пробил потолок.
Если посмотреть, что происходит в процессе в это время, можно найти подтверждение нашим предположениям.
В списке потоков видно, что основной поток как раз обрабатывает XML. К слову, из-за этого повис весь GUI и IDE никак не реагировала на попытки потыкать её палочкой.
Если посмотреть call stack потока VS Main, можно увидеть, что он как раз занят обработкой DTD (исполняется метод ParseDtd).
В ходе экспериментов у меня возник вопрос: а зачем Visual Studio вообще запускает процессинг DTD, почему просто не отображает XML как есть? Ответ пришёл в ходе экспериментов с ‘XML-бомбочкой’ (суть та же, но нагрузка поменьше).
Похоже, всё дело в том, чтобы отображать в редакторе «на лету» возможные значения сущностей.
Небольшие значения обрабатываются успешно, но разрастание XML приводит к проблемам.
Конечно, такая проблема не могла обойтись без написания мной баг-репорта.
Заключение
Вот так неожиданным образом удалось посмотреть, как на практике могут выглядеть уязвимости к XML-бомбам. Самое интересное, что удалось пощупать это не на каком-то абстрактном примере, а на вполне знакомом и популярном приложении.
Мы планируем добавить поиск кода, уязвимого к проблемам обработки XML-файлов, в PVS-Studio 7.15. Если же интересно посмотреть, что анализатор умеет уже сейчас, предлагаю загрузить его и попробовать на своих проектах. 😉
Как всегда, приглашаю подписываться на мой Twitter, чтобы не пропустить ничего интересного.
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Sergey Vasiliev. How Visual Studio 2022 ate up 100 GB of memory and what XML bombs had to do with it.