Visual Studio Icon Заметки о выпуске Visual Studio 2019Visual Studio 2019 Release Notes


| Сообщество разработчиков | Требования к системе | Совместимость | Распространяемый код | Условия лицензии | Блоги | Известные проблемы || Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Known Issues |


Нажмите кнопку, чтобы скачать последнюю версию Visual Studio 2019.Click a button to download the latest version of Visual Studio 2019. Инструкции по установке и обновлению Visual Studio 2019 см. в документации по обновлению до последнего выпуска Visual Studio 2019.For instructions on installing and updating Visual Studio 2019, see the Update Visual Studio 2019 to the most recent release. Кроме того, см. инструкции по установке в автономном режиме.Also, see instructions on how to install offline.


Новые возможности Visual Studio 2019What's New in Visual Studio 2019

Выпуски Visual Studio 2019Visual Studio 2019 Releases

Блог Visual Studio 2019Visual Studio 2019 Blog

Блог Visual Studio 2019 является официальным источником сведений о продукте от группы разработчиков Visual Studio.The Visual Studio 2019 Blog is the official source of product insight from the Visual Studio Engineering Team. Более подробные сведения о выпусках Visual Studio 2019 версии 15.9 можно найти в следующих записях:You can find in-depth information about the Visual Studio 2019 releases in the following posts:


Release Notes Icon Visual Studio 2019 версии 16.1.6Visual Studio 2019 version 16.1.6 New release icon

Выпущено 9 июля 2019 г.released July 9, 2019

Сводка проблем, решенных в Visual Studio 2019 версии 16.1.6Summary of issues addressed in Visual Studio 2019 version 16.1.6

Уведомления с советами по обеспечению безопасностиSecurity Advisory Notices

CVE-2019-1077 Уязвимость автоматического обновления расширения Visual StudioCVE-2019-1077 Visual Studio Extension Auto Update Vulnerability

Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда процесс автоматического обновления расширения Visual Studio неправильно выполняет определенные операции с файлами.An elevation of privilege vulnerability exists when the Visual Studio Extension auto-update process improperly performs certain file operations. Злоумышленник, использующий эту уязвимость, может удалять файлы в произвольных расположениях.An attacker who successfully exploited this vulnerability could delete files in arbitrary locations. Чтобы воспользоваться этой уязвимостью, злоумышленник должен получить непривилегированный доступ к уязвимой системе.To exploit this vulnerability, an attacker would require unprivileged access to a vulnerable system. Обновление системы безопасности устраняет эту уязвимость, обеспечивая безопасность расположений, в которых автоматическое обновление расширения Visual Studio выполняет файловые операции.The security update addresses the vulnerability by securing locations the Visual Studio Extension auto-update performs file operations in.

CVE-2019-1075 Уязвимость спуфинга в ASP.NET CoreCVE-2019-1075 ASP.NET Core Spoofing Vulnerability

Уязвимость спуфинга в ASP.NET Core может привести к открытому перенаправлению.A spoofing vulnerability exists in ASP.NET Core that could lead to an open redirect. Воспользовавшись этой уязвимостью, злоумышленник может перенаправить пользователя на вредоносный веб-сайт.An attacker who successfully exploited the vulnerability could redirect a targeted user to a malicious website. Чтобы воспользоваться этой уязвимостью, злоумышленник может отправить ссылку со специально созданным URL-адресом и убедить пользователя перейти по ней.To exploit the vulnerability, an attacker could send a link that has a specially crafted URL and convince the user to click the link.

Это обновление для системы безопасности устраняет эту уязвимость, исправляя методы анализа URL-адресов в ASP.NET Core.The security update addresses the vulnerability by correcting how ASP.NET Core parses URLs. Сведения см. в заметках о выпуске .NET Core.Details can be found in the .NET Core release notes.

CVE-2019-1113 Десериализация XOML в WorkflowDesigner допускает выполнение кодаCVE-2019-1113 WorkflowDesigner XOML deserialization allows code execution

XOML-файл, ссылающийся на определенные типы, может вызвать выполнение случайного кода при открытии в Visual Studio.A XOML file referencing certain types could cause random code to be executed when the XOML file is opened in Visual Studio. Теперь существует ограничение на типы, которые разрешено использовать в XOML-файлах.There is now a restriction on what types are allowed to be used in XOML files. При открытии XOML-файла, содержащего один из сделанных неавторизованными типов, отображается соответствующее сообщение.If a XOML file containing one of the newly unauthorized types is opened, a message is displayed explaining that the type is unauthorized.

Дополнительные сведения см. в статье https://support.microsoft.com/en-us/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.For further information, please refer to https://support.microsoft.com/en-us/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.


Release Notes Icon Visual Studio 2019 версии 16.1.5Visual Studio 2019 version 16.1.5

Выпущено 2 июля 2019 г.released July 2, 2019

Сводка проблем, решенных в Visual Studio 2019 версии 16.1.5.Summary of issues addressed in Visual Studio 2019 version 16.1.5


Release Notes Icon Visual Studio 2019 версии 16.1.4Visual Studio 2019 version 16.1.4

Выпущено 25 июня 2019 г.released June 25, 2019

Сводка проблем, решенных в Visual Studio 2019 версии 16.1.4Summary of issues addressed in Visual Studio 2019 version 16.1.4


Release Notes Icon Visual Studio 2019 версии 16.1.3Visual Studio 2019 version 16.1.3

Выпущено 11 июня 2019 г.released June 11, 2019

Сводка проблем, решенных в Visual Studio 2019 версии 16.1.3Summary of issues addressed in Visual Studio 2019 version 16.1.3


Release Notes Icon Visual Studio 2019 версии 16.1.2Visual Studio 2019 version 16.1.2

Выпущено 4 июня 2019 г.released June 4, 2019

Сводка проблем, решенных в Visual Studio 2019 версии 16.1.2Summary of issues addressed in Visual Studio 2019 version 16.1.2


Release Notes Icon Visual Studio 2019 версии 16.1.1Visual Studio 2019 version 16.1.1

Выпущено 24 мая 2019 г.released May 24, 2019

Сводка проблем, решенных в Visual Studio 2019 версии 16.1.1Summary of Issues addressed in Visual Studio 2019 version 16.1.1


Release Notes Icon Visual Studio 2019 версии 16.1Visual Studio 2019 version 16.1

Выпущено 21 мая 2019 г.released May 21, 2019

Сводка новых возможностей Visual Studio 2019 версии 16.1Summary of What's New in Visual Studio 2019 version 16.1

IDEIDE

  • Visual Studio IntelliCode теперь является общедоступным решением. Оно поставляется с любой рабочей нагрузкой, которая поддерживает C#, C++, TypeScipt/JavaScript или XAML.Visual Studio IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or XAML.
  • Добавлена поддержка учета характеристик монитора.Added Per-Monitor Awareness support.
  • Доступны новые исправления кода для C#.New codefixes are available for C#.
  • В поиск Visual Studio добавлена функция просмотра недавно использованных элементов.Most Recently Used has been added to Visual Studio Search.

ОтладчикDebugger

  • Реализованы улучшения аутентификации ссылки на источник.Source Link authentication improvements have been implemented.
  • Сервер символов nuget.org добавлен в список серверов символов по умолчанию.Added nuget.org symbol server to the list of default symbol servers.
  • Предварительная версия отладки перехода по времени теперь поддерживает отладку исключений по шагам.Time Travel Debugging preview now includes exception stepping support.

Расширение средыExtensibility

  • Снято требование наличия RESX-файла в проектах VSIX (обновление BuildTools).Removed the need for .resx file in VSIX projects (BuildTools update).
  • В шаблоне проекта VSIX теперь используется новая версия пакета SDK.VSIX Project template now uses the new SDK version.

ПроизводительностьPerformance

  • Выполнена оптимизация для ускорения загрузки очень больших решений.User optimization experience to improve the solution load time of very large solutions.
  • Создатели шаблонов могут добавлять настраиваемые теги в свои шаблоны.Template authors can add custom tags to their templates.
  • Поддержка CodeLens для настраиваемых пользовательских интерфейсов.CodeLens support for custom UI.
  • Предоставлены обновления реализации протокола языкового сервера.Provided updates to Language Server Protocol implementation.
  • Обновлено поведение переключения между решениями, папками и другими представлениями.Updated behavior for switching between solutions, folders, and other views.

C++C++

F#F#

.NET.NET

  • В число новых функций для повышения производительности .NET входит очистка кода в проектах и решениях одним действием, новое сочетание клавиш для комментирования и раскомментирования блоков, рефакторинг для перемещения типов в другие пространства имен.New .NET productivity features include one-click code cleanup on projects and solutions, a new toggle block comment keyboard shortcut, refactoring to move types to other namespaces.
  • Пользователи теперь могут клонировать код по URI SSH, используя экран клонирования в окне запуска.Users can now clone code from an SSH URI through the clone screen in the start window.
  • Улучшения производительности .NET включают в себя завершение IntelliSense для неимпортируемых типов, включение и отключение однострочных комментариев, экспорт стилей именования в editorconfig, а также новый параметр стиля кода для использования директивы using в пространстве имен и за его пределами.Additions to .NET Productivity include intellisense completion for unimported types, toggling single-line comment/uncomment, exporting naming styles to editorconfig, and a new code style setting for preferring usings inside/outside namspaces.
  • Реализованы дополнения средств пакета SDK для .NET для поддержки проектов WinForms и WPF для .NET Core 3.0, а также для исправления ошибок и улучшения производительности.Implemented .NET SDK tooling additions around supporting WinForms and WPF projects for .NET Core 3.0 along with bug fixes and performance improvements.
  • Выпущен пакет SDK Visual Studio v16.0 для NuGet.Visual Studio SDK v16.0 released to NuGet.
  • Выпущена предварительная версия Конструктора XAML для .NET Core 3.0 WPF.Released a preview of the XAML Designer for .NET Core 3.0 WPF development.

XamarinXamarin

Проблемы, исправленные в Visual Studio 2019 версии 16.1Top Issues Fixed in Visual Studio 2019 version 16.1

Сведения о новых возможностях Visual Studio 2019 версии 16.1Details of What's New in Visual Studio 2019 version 16.1

  • IntelliCode теперь является общедоступным решением. Оно поставляется с любой рабочей нагрузкой, которая поддерживает C#, C++, TypeScipt/JavaScript или XAML.IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or XAML.
  • Функции IntelliCode предварительной версии (пользовательские модели, поддержка C++, служб терминалов, JavaScript, а также вывод Editorconfig) отключены по умолчанию.Preview IntelliCode features - Custom Models, C++/TS/JS support, and Editorconfig inference - are disabled by default. Чтобы включить их, откройте меню Средства > Параметры > IntelliCode.To enable them, go to Tools > Options > IntelliCode.
  • Удален шаблон Editorconfig (IntelliCode) из мастера создания элемента.Removed the Editorconfig (IntelliCode) template from the New Item Wizard. Чтобы добавить выводимый файл EditorConfig, щелкните правой кнопкой мыши в нужном месте в обозревателе решений и выберите Добавить > Новая конфигурация редактора (IntelliCode) .To create an inferred Editorconfig, right-click on the desired location in Solution Explorer and choose Add > New EditorConfig (IntelliCode).
  • Используйте окно запуска, чтобы клонировать код из онлайн-репозитория по протоколу SSH.Use the start window to clone code from an online repository through SSH.
Clone with SSH on start window
Клонирование по протоколу SSH из окна запускаClone with SSH on start window
  • Visual Studio IntelliCode устанавливается по умолчанию при установке рабочей нагрузки, которая поддерживает C#, XAML или C++.Visual Studio IntelliCode is installed by default when you install a workload that supports C#, XAML, or C++.
    • Базовые модели C# и XAML будут включены по умолчанию.C# and XAML base models will be on by default.
    • Предварительные версии функций, такие как обучение пользовательской модели и дополнение аргументов, можно включить, выбрав Сервис > Параметры > IntelliCode.Preview features, such as custom model training and argument completion, can be enabled via Tools > Options > IntelliCode.
  • Добавлена поддержка учета характеристик монитораAdded Per-Monitor Awareness support
  • Доступны новые исправления кода для C#.New codefixes available for C#.
  • Добавлена поддержка учета характеристик монитора для WinForms на основе окна PropertyBrowser в Visual Studio.Added Per-Monitor Awareness support for WinForms based PropertyBrowser window of Visual Studio. На компьютере должна быть установлена версия .NET Framework 4.8 RTM.Requires .NET Framework 4.8 RTM version installed on the machine.
  • Ссылки на источник теперь могут использовать проверку подлинности Windows для поддержки локальной системы управления версиями TFS.Source Link can now use Windows Authentication to support on-premises TFS Source Control.
  • Сервер символов nuget.org добавлен в список серверов символов по умолчанию.Added nuget.org symbol server to the list of default symbol servers

ПроектProject

  • Теперь кнопка для переключения представлений обозревателя решений будет постоянно отображать раскрывающееся меню всех возможных представлений.The button for switching the Solution Explorer view will now consistently shows a dropdown menu of all possible views.
Solution switching
Переключение между представлениями в решенииSolution view switching
  • Улучшено время загрузки очень больших решений.Improved the loading time for very large solutions. Оно зависит от размера решения.The improvement varies based on the size of the solutions.

  • Удалено диалоговое окно преобразования в разделе "Файл" > "Преобразовать".Removed the Convert dialog under File > Convert. Этот компонент был нерекомендуемым в Visual Studio 2015.This feature was previously deprecated in Visual Studio 2015.

  • Обновлены правила проверки для схем task.vs.json и launch.vs.json и добавлены описания свойств.Updated the validation rules for the task.vs.json and launch.vs.json schemas, and added descriptions for the properties.

  • Добавлена поддержка для удаленной отладки в Linux с помощью пользовательской программы, запускаемой через launch.vs.json.Added support for Linux remote debugging using a custom program via launch.vs.json.

РасширяемостьExtensibility

  • Теперь в расширениях можно использовать последнюю версию Microsoft.VisualStudio.SDK, предназначенную для Visual Studio 2019.Users can now use the latest version of the Microsoft.VisualStudio.SDK to target Visual Studio 2019 in your extensions. Эту версию пакета SDK следует использовать только в том случае, если наименьшей поддерживаемой версией Visual Studio является 16.0.Remember to only use this version of the SDK if the lowest supported version of Visual Studio is 16.0.
  • При создании новых проектов VSIX теперь будет использоваться версия 16.0 пакета NuGet Microsoft.VisualStudio.SDK.Creating new VSIX projects will now contain the 16.0 version of the the Microsoft.VisualStudio.SDK NuGet package.
  • Пользователи могут добавлять теги в шаблоны проектов для включения категоризации и фильтрации в диалоговом окне создания проекта в Visual Studio 2019.Users can now add tags to your project templates to enable categorization and filtering in the Visual Studio 2019 New Project Dialog. Можно выбрать встроенные теги или воспользоваться собственными пользовательскими тегами для языка, платформы и типа проекта.Users can also choose from the built-in tags or their own custom language, platform, and project type tags.
Template tagging
Добавление тегов в шаблоныTemplate tagging
  • Теперь расширения CodeLens могут отображать произвольное содержимое пользовательского интерфейса во всплывающих окнах сведений CodeLens.CodeLens extensions can now display arbitrary UI content in their CodeLens details popup.

  • Обновления протокола языкового сервера:Updated Language Server Protocol with:

    • поддержка проецируемых буферов для включения LSP для различий внутри кода и файлов Razor в LiveShare;Support for projected buffers to enable LSP for inline diff, and Razor files in LiveShare.
    • поддержка ненужной диагностики;Support for unnecessary diagnostics.
    • поддержка textDocument/typeDefinition;Support for textDocument/typeDefinition.
    • поддержка textDocument/foldingRange (структурирование).Support for textDocument/foldingRange (outlining).
  • Снято требование наличия RESX-файла в проектах VSIX (обновление BuildTools)Removed the need for .resx file in VSIX projects (BuildTools update)

  • Пакет NuGet Microsoft.VSSDK.BuildTools теперь предоставляет пустой RESX-файл при построении, если RESX со свойством MergeWithCTO не существует.The Microsoft.VSSDK.BuildTools NuGet package will now provide an empty .resx file as part of the build if no .resx with MergeWithCTO property exist. Большинству расширений для объединения RESX-файл не требуется (и не используется ими) — таким образом обеспечивается чистота проекта.Most extensions don't use or need a .resx file to merge, so this will keep the project cleaner.

  • Изменения функции учета характеристик монитора могут повлиять на некоторые расширения.Per-monitor awareness changes might affect some extensions. Узнайте больше о поддержке учета характеристик монитора для расширителей Visual Studio.Learn more about Per-Monitor Awareness support for Visual Studio extenders.

РедакторEditor

  • При получении фокуса поиск Visual Studio будет отображать три последних использованных действия, вызванных функцией поиска в Visual Studio, как показано в этом примере макета.Visual Studio Search will now display on focus the three most recently used actions invoked through Visual Studio Search, as shown in this sample mockup. (Примечание. В этом макете значки и определенные элементы строк обновлены лишь частично.)
    (Note: icons and specific line items have not been fully updated in this mock-up.)
    Visual Studio Search
    Макет поиска в Visual StudioMock-up of Visual Studio Search

C++C++

  • Используйте локальную подсистему Windows для установки Linux (WSL) с C++ без дополнительной настройки или SSH-подключения благодаря встроенной поддержке Visual Studio.Use local Windows Subsystem for Linux (WSL) installation with C++ natively in Visual Studio without additional configuration or SSH connection.
Windows Subsystem for Linux
Подсистема Windows для LinuxWindows Subsystem for Linux
  • AddressSanitizer теперь можно использовать в Visual Studio для проектов Linux и WSL.AddressSanitizer is now integrated into Visual Studio for Linux projects and WSL.
ASan integration
Интеграция ASanASan integration
  • Теперь при разработке для Linux можно изолировать компьютеры удаленной сборки от компьютеров удаленной отладки (доступно для проектов MSBuild и CMake).Users can now separate remote build machines from remote debug machines when targeting Linux in both MSBuild and CMake projects.
  • Подсказки с краткими сведениями теперь содержат ссылку для поиска онлайн-документации, позволяя получить сведения о конструкциях в коде.Quick Info tooltips now contain a link to search for online docs to learn more about the code construct. Для кода, подчеркнутого волнистой красной линией, ссылка в кратких сведениях ведет на поиск ошибки в Интернете.In the case of red-squiggled code, the link in Quick Info will search for the error online.
  • Код внутри подсказки с краткими сведениями теперь выделяется теми же цветами, что и в редакторе.Code within Quick Info tooltips is now colorized to reflect its colorization in the editor.
Colorized code in Quick Info tooltips
Цветовое выделение кода в подсказках с краткими сведениямиColorized code in Quick Info tooltips
  • Автоматическое быстрое исправление предупреждений анализа кода C6001: using uninitialized memory <variable> и C26494 VAR_USE_BEFORE_INIT стали доступны с использование значка лампочки в соответствующих строках. По умолчанию они включены в минимальном наборе правил Майкрософт для машинного кода и наборах правил для типов в C++ Core Check соответственно.Automatic quick fixes for the Code Analysis warnings C6001: using uninitialized memory <variable> and C26494 VAR_USE_BEFORE_INIT are available via the lightbulb menu on relevant lines, enabled by default in the Microsoft Native Minimum ruleset and C++ Core Check Type rulesets, respectively.
New Code Analysis quick fixes
Новые быстрые исправления анализа кодаNew Code Analysis quick fixes
  • Усовершенствования редактора параметров CMake, включая поддержку для подсистемы Windows для Linux (WSL) и конфигураций из существующих кэшей, изменения корневых каталогов сборки и установки по умолчанию и поддержку переменных среды в конфигурациях Linux CMake.Improvements to the CMake Settings Editor, including support for Windows Subsystem for Linux (WSL) and configurations from existing caches, changes to the default build and install roots, and support for environment variables in Linux CMake configurations.
Improvements to the CMake Settings Editor
Усовершенствования редактора параметров CMakeImprovements to the CMake Settings Editor
  • Улучшенное ведение журнала для удаленных подключений упрощает диагностику проблем, связанных с кроссплатформенной разработкой.Improved logging for remote connections makes it easier to diagnose issues with cross-platform development.
Improved logging for remote connections
Улучшенное ведение журнала для удаленных подключенийImproved logging for remote connections
  • Теперь при разработке для Linux можно отделить компьютер удаленной сборки от компьютера удаленной отладки (это особенность для проектов MSBuild, но скоро она будет доступна для CMake).You can now separate your remote build machine from your remote debug machine when targeting Linux (specific to MSBuild projects, coming soon for CMake).
  • Теперь панель шаблонов может заполнять раскрывающееся меню на основе экземпляров шаблона в базе кода.The Template Bar can populate the dropdown menu based on instantiations of that template in your codebase.
New Template Bar dropdown menu
Новое раскрывающееся меню панели шаблоновNew Template Bar dropdown menu
  • IntelliCode для C++ теперь поставляется вместе с рабочей нагрузкой и включается в разделе Сервис > Параметры > IntelliCode > Общие.C++ IntelliCode now ships in-box and can be enabled under Tools > Options > IntelliCode > General. В этой версии IntelliCode повышен уровень точности и включена поддержка бесплатных функций.This version of IntelliCode has improved accuracy and includes support for free-functions.
  • Интеграция CMake теперь поддерживает цепочку инструментов Clang/LLVM для проектов, предназначенных для Windows или Linux.CMake integration now supports the Clang/LLVM toolchain for projects targeting Windows and/or Linux. Вы можете создавать, редактировать и отлаживать проекты CMake, использующие Clang, MSVC или GCC.You can now build, edit, and debug CMake projects that use either Clang, MSVC, or GCC.
CMake integration supports the Clang/LLVM toolchain
Интеграция CMake поддерживает цепочку инструментов Clang/LLVMCMake integration supports the Clang/LLVM toolchain
  • Лампочки для отсутствующих #include, которые могут быть установлены с помощью vcpkg, и автозавершение доступных пакетов для директивы find_package CMake.Lightbulbs for missing #includes that can be installed by vcpkg, and autocompletion of available packages for the CMake find_package directive.
Autocompletion of available packages
Автозавершение доступных пакетовAutocompletion of available packages
  • Версия CMake, которая поставляется с Visual Studio, обновлена до версии 3.14.Updated the CMake version that ships with Visual Studio to 3.14. В этой версии появилась встроенная поддержка генераторов MSBuild, предназначенных для проектов Visual Studio 2019, а также API интеграции интегрированной среды разработки на основе файлов.This version adds built-in support for MSBuild generators targeting Visual Studio 2019 projects as well as file-based IDE integration APIs.

  • Были внесены изменения в страницы свойств "Общие" для проектов C++: некоторые параметры перенесены на новую страницу "Дополнительно".The General Property Pages for C++ projects has been revised, splitting out some options under a new Advanced page. На странице "Дополнительно" также находятся дополнительные свойства для архитектуры набора инструментов, отладочных библиотек, дополнительного номера версии набора инструментов MSVC и сборок Unity (JUMBO).The Advanced page also includes additional properties for preferred toolset architecture, debug libraries, the MSVC toolset minor version, and Unity (jumbo) builds.

  • В реализацию стандартной библиотеки C++, доступной в разделе /std:c++latest, добавлены следующие предварительные версии функций C++20:The following C++20 preview features have been added to our implementation of the C++ Standard Library, available under /std:c++latest:

    • starts_with() и ends_with() для basic_string/basic_string_view;starts_with() and ends_with() for basic_string/basic_string_view.
    • contains() для ассоциативных контейнеров;contains() for associative containers.
    • remove(), remove_if() и unique() для list и forward_list теперь возвращают size_type;remove(), remove_if(), and unique() for list and forward_list now return size_type.
    • shift_left()и shift_right() добавлены в <algorithm>.shift_left() and shift_right() added to <algorithm>.
  • В компиляторе C++, доступном в разделе/std:c++latest, были реализованы следующие предварительные версии функций C++20:The following C++20 preview features have been implemented in the C++ compiler, available under /std:c++latest:

    • улучшена возможность поиска шаблонов функций с помощью зависящего от аргументов поиска выражений вызова функции с явно заданными аргументами шаблона (P0846R0);Increased ability to find function templates via argument-dependent lookup for function call expressions with explicit template arguments (P0846R0).
    • выделена инициализация (P0329R4), что позволяет выбирать определенные члены в агрегатной инициализации, например с помощью синтаксиса Type t { .member = expr }.Designated initialization (P0329R4), which allows specific members to be selected in aggregate initialization, e.g. using the Type t { .member = expr } syntax.
  • Полностью переработана поддержка лямбда-выражений и устранено большое количество давних проблем.Lambda support has been overhauled, addressing a large number of long-standing bugs. При использовании /std:c++latest это изменение включено по умолчанию.This change is enabled by default when using /std:c++latest. В других режимах языка /std:c++* и в режиме по умолчанию новое средство синтаксического анализа можно включить с помощью /experimental:newLambdaProcessor, например /std:c++17 /experimental:newLambdaProcessor.In other /std:c++* language modes and under the default mode, the new parser can be enabled via /experimental:newLambdaProcessor, e.g. /std:c++17 /experimental:newLambdaProcessor.

  • Внутренняя документация в редакторе для CMakeIn-editor documentation for CMake

  • Завершения и краткие сведения для встроенных команд, переменных и свойств CMake упрощают редактирование файлов CMakeLists.txt.Completions and quick info for built-in CMake commands, variables, and properties make it easier to edit your CMakeLists.txt files.

Tooltip info for add_subdirectory CMake command
Сведения во всплывающей подсказке для команды CMake add_subdirectoryTooltip info for add_subdirectory CMake command

F# и средства для F#F# and F# tools

В этом выпуске относительно мало обновления для языка и средств F#, но есть несколько приятных мелочей.This is a relatively minor release for the F# language and tools, but it's not without some goodies! Как и в случае с обновлением VS 16.0, основное внимание в этом выпуске уделялось производительности средств редактора.As with the VS 16.0 update, this release also focused on performance of editor tooling.

Компилятор F# и F# interactiveF# compiler and F# interactive
  • Добавлена поддержка P/Invoke в F# Interactive для .NET Core (#6544).Added P/Invoke support to F# interactive on .NET Core (#6544)
  • Оптимизирован компилятор для Span<'T> при использовании в цикле for (#6195).Added a compiler optimization for Span<'T> when used in a for loop (#6195)
  • Реализована оптимизация, позволяющая избежать лишних выделений Some для параметров F# в нескольких сценариях (#6532).Added an optimization to avoid an extraneous Some allocations for F# options in various scenarios (#6532)
  • Изменен порядок выполнения выражений, которые используются при создании экземпляра анонимных записей. Теперь они выполняются не в алфавитном порядке, а сверху вниз, как в основном интерфейсе записей (#6487).Changed the execution order of expressions used in the instantiation of Anonymous Records to be top-to-bottom, rather than alphabetical, to match the current experience with normal Records (#6487)
  • Устранена ошибка, из-за которой очень большие литеральные выражения или объявления структур могли вызвать переполнение стека в компиляторе при сборке (#6258).A bug where very large literal expressions or very large struct declarations could cause the compiler to stack overflow on build has been resolved (#6258)
  • Устранена ошибка, из-за которой точки останова не срабатывали при отладке функции с анонимными записями (#6512).A bug where breakpoints would no longer trigger when debugging a function with an Anonymous Records has been fixed (#6512)
  • Устранена ошибка, из-за которой передача анонимных записей в конструкции, ожидающие параметр obj, вызывала сбой компилятора (#6434).A bug where Anonymous Records passed to constructs expecting an obj parameter caused a compiler crash has been fixed (#6434)
  • Устранена ошибка, из-за которой цикл for var expr1 to expr2 do ... приводил к неожиданно правильному (и отклоняемому) синтаксису (#6586).A bug where for var expr1 to expr2 do ... loops could result in bizarrely valid (and discarded) syntax has been fixed (#6586)
  • Устранена ошибка, из-за которой анонимные записи нельзя было использовать с событиями (#6572).A bug where Anonymous Records could not be used properly with events has been fixed (#6572)
  • Исправлена давняя ошибка, из-за которой в FsLexYacc создавались анализаторы огромных размеров (более 100 миллионов строк) (#5967).A longstanding bug where extremely large generated parsers in FsLexYacc (over 100 million lines) has been resolved (#5967
  • Устранена давняя ошибка в подключаемом модуле поставщика типов для компилятора, которая приводила к утечке памяти из-за поставщика типа (#6409).A longstanding issue in the Type Provider plugin component of the compiler that could leave the door open for a memory leak caused by a type provider has been resolved (#6409)
  • Добавлена поддержка --pathmap в компилятор F#, созданный Солом Реннисоном (Saul Rennison), что позволило устранить проблему, из-за которой созданный исполняемый файл содержал абсолютные пути к исходным файлам во внедренном ресурсе файла подписей F# (#5213).Support for --pathmap was added to the F# compiler by Saul Rennison, which resolves an issue where the resulting executable from a compilation would include absolute paths to source files in the embedded F# signature file resource (#5213)
  • Пользователем ncave добавлена оптимизация AST для F#, которая улучшает использование в других средствах и средах (например, Fable) (#6333).An optimization to the F# AST that improves its consumption via other tools and enviroments (e.g., Fable) has been added by ncave (#6333)
  • Стеффен Форкманн (Steffen Forkmann) добавил оптимизацию обхода информации при разрешении элементов (#4457).An optimization around traversing information when resolving members has been added by Steffen Forkmann (#4457)
  • Готье Сигей (Gauthier Segay) улучшил некоторые сообщения об ошибках, связанных с отсутствием реализации типов, и теперь они выводят список отсутствующих необходимых переопределений (#4982).An improvement to error messages such that when a type implementation is missing necessary overrides a list of those missing overrides is reported has been added by Gauthier Segay (#4982)
Инструменты F#F# tools
  • Раскрывающийся список требуемой версии .NET Framework для проектов F# в пакете SDK для .NET теперь будет содержать значения для всех доступных значений .NET Core, .NET Standard и .NET Framework, чтобы упростить миграцию на .NET Core из .NET Framework с помощью пакета SDK для .NET.The Target Framework dropdown for F# projects in the .NET SDK will now include values for all available .NET Core, .NET Standard, and .NET Framework values to ease migrating to .NET Core from .NET Framework on the .NET SDK
  • Исправлена ошибка, из-за которой переименование параметров универсального типа создавало имена с двойным экранированием обратным апострофом (#5389).A bug where renaming generic type parameters produces double backtick-escaped names has been fixed (#5389)
  • Устранена давняя проблема, из-за которой для поставщиков типов создавалось избыточное количество экземпляров, что со временем приводило к выделению больших объемов памяти (#5929).A longstanding problem where Type Providers were redundantly reinstantiated, causing massive allocations over time, has been resolved (#5929)
  • Устранена старая проблема, из-за которой чтение IL приводило к ненужному выделению 20 МБ за короткий период времени (#6403).A longstanding issue where reading IL needlessly allocated 20MB over a short period of time was been resolved (#6403)
  • Василий Кириченко устранил ошибку, из-за которой метод GetToolTipText в службе компиляции F# мог отображать одинаковую сигнатуру XML для нескольких перегрузок элементов (#6244).A bug where the method GetToolTipText in the F# compiler service could show the same XML signature for several member overloads has been resolved by Vasily Kirichenko (#6244)
Инфраструктура открытого кода F#F# open source infrastructure

Наконец мы улучшили процедуру публикации следующим образом:Finally, we improved the contribution experience by doing the following:

  • Завершен процесс сборки из исходного кода, что позволяет создать компилятор и основную библиотеку F# из репозитория сборки исходного кода .NET Core.Completed our build from source process so that the F# compiler and core library can be built with the .NET Core source build repository
  • Удалена зависимость от netstandard1.6, и теперь вся база кода единообразно предназначена для netstandard2.0 и net472.Removed our dependency on netstandard1.6 so that the entire codebase uniformly targets netstandard2.0 and net472
  • Добавлен файл .vsconfig в корневую папку репозитория, чтобы использующим Visual Studio участникам не нужно было заранее выяснять, какие элементы нужно устанавливать.Added a .vsconfig file to the root of the repository so that contributors using Visual Studio don't have to know everything that needs installing up front
  • Переписан файл README проекта для удаления потенциально противоречивой информации, в том числе краткое руководство по началу работы в роли участника. Мы постарались включить больше возможностей в сообщения о типах изменений, которые мы хотели бы реализовать.Rewrote our project's README to remove potentially confusing information, include a quickstart for getting started with contributing, and attempting to be more inclusive in our messaging about the kinds of changes we'd love to take

Производительность .NET.NET Productivity

  • Теперь доступно экспериментальное завершение IntelliSense для неимпортируемых типов.There is now experimental intellisense completion for unimported types! Пользователи теперь получают предложения IntelliSense для всех типов в зависимостях проекта, даже если соответствующая инструкция импорта еще не добавлена в рабочий файл.Uers now receive intellisense suggestions for types in dependencies in projects even if they have not yet added the import statement to the file. Этот параметр включается в меню Сервис > Параметры > Текстовый редактор > C# > Intellisense.Turn this option on in Tools > Options > Text Editor > C# > Intellisense.
Intellisense completion for unimported types
Завершение IntelliSense для неимпортируемых типовIntellisense completion for unimported types
  • Включение и отключение однострочного комментария теперь можно выполнять с помощью клавиш CTRL+K,/.Toggle Single Line Comment/Uncomment is now available through the keyboard shortcut (Ctrl+K,/). Эта команда будет добавлять или удалять однострочный комментарий в зависимости от того, применен ли он к выделенному фрагменту кода.This command will add or remove a single line comment depending on whether your selection is already commented.
  • Можно экспортировать стили именования с помощью кнопки "Создать editorconfig" в разделе Сервис > Параметры > Текстовый редактор > C# > Стиль кода.Ability to export naming styles with the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
  • Можно использовать новое правило стиля кода editorconfig, чтобы потребовать или запретить использование директив using в пространстве имен.Ability to use a new editorconfig code style rule to require or prevent usings inside a namespace. Этот параметр экспортируется с помощью кнопки "Создать editorconfig" в разделе Сервис > Параметры > Текстовый редактор > C# > Стиль кода.This setting will also be exported when using the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
Editorconfig rule for usings outside/inside namespaces
Правило Editorconfig для директивы using в пространстве имен и за его пределамиEditorconfig rule for usings outside/inside namespaces
Tools Options setting for usings inside/outside namespace
Параметры "Сервис" > "Параметры" для директив using в пространстве имен и за его пределамиTools Options setting for usings inside/outside namespace
  • Столбец Kind (Тип) средства "Поиск всех ссылок" теперь включает дополнительные параметры фильтрации и учитывает пространства имен и типы.The Find All References “Kind” column now has more filter options and is aware of namespaces and types.
Find All References Kind column has more filter options
Добавлены новые параметры фильтрации в столбец Kind средства "Поиск всех ссылок"Find All References Kind column has more filter options
  • Добавлено исправление кода для разбиения и объединения операторов If.Added a codefix for split/merge if statements.
Split or merge if statements
Разбиение и объединение операторов IfSplit or merge if statements
  • Добавлено исправление кода для переноса двоичных выражений.Added a codefix for wrapping binary expressions.
Wrap binary expressions
Перенос двоичных выраженийWrap binary expressions
  • К списку завершения регулярных выражений теперь можно перейти через меню Intellisense (CTRL + ПРОБЕЛ), находясь внутри строки регулярного выражения.A regex completion list can now be accessed through the intellisense menu (Ctrl + space) when inside a regex string. Варианты завершения также включены во встроенное описание функций предложения.These completions also include an in-line description of what the suggestion does.
Regex completion offered in Intellisense with (Ctrl + space)
Завершение регулярных выраженийRegex completion
  • Добавлено исправление кода для распечатывания класса.Added a codefix for unsealing a class.
Unseal a class codefix
Распечатывание классаUnseal a class
  • Можно одним действием очищать код в документах, проектах и решениях.Use one-click code cleanup for projects and solutions. Правой кнопкой мыши щелкните проект или решение в обозревателе решений и выберите команду "Запустить очистку кода".Right-click on projects or the solution in the Solution Explorer and select ‘Run Code Cleanup’.
Right-click to run code cleanup over the entire solution
Очистка кода во всем решении запускается щелчком правой кнопки мышиRight-click to run code cleanup over the entire solution
You will see a dialog box while cleanup is applied to each file
Откроется диалоговое окно и будет выполнена очистка каждого файлаA dialog is present box while cleanup is applied to each file
  • Можно использовать диалоговое окно рефакторинга для перемещения типа в пространство имен или папку.Now use a refactoring dialog to move type to namespace or folder. Поместите курсор на имя класса и введите (CTRL+.), чтобы открыть меню быстрых действий и рефакторинга, и выберите "Переместить в пространство имен".Place your cursor in the class name and type (Ctrl + .) to open the quick actions and refactorings menu and select ‘Move to namespace.’ Откроется диалоговое окно, где можно выбрать целевое пространство имен, в которое нужно переместить тип.This launches a dialog where you can select the target namespace you would like to move the type to.
Place cursor in class name and type (Ctrl+.) to view refactorings
Поместите курсор на имя класса и нажмите клавиши CTRL+., чтобы просмотреть операции рефакторингаPlace cursor in class name and type (Ctrl+.) to view refactorings
Select the destination namespace
Выбор целевого пространства именSelect the destination namespace
  • Закомментировать или раскомментировать блок теперь можно с помощью сочетания клавиш (CTRL+SHIFT+/) или с помощью команды Правка > Дополнительно > Закомментировать или раскомментировать блок.Toggle Block Comment/Uncomment is now available through the keyboard shortcut (Ctrl+Shift+/) or through Edit > Advanced > Toggle Block Comment. В зависимости от выбранного варианта эта команда добавит или удалит комментарии для блока.This command will add or remove block comments depending on what you have selected.
Toggle block comment with (Ctrl+Shift+/)
Комментирование или раскомментирование блока с помощью сочетания CTRL+SHIFT+/Toggle block comment with (Ctrl+Shift+/)
  • Доступно исправление, позволяющее делать поля структуры для чтения доступными для записи.There is now a codefix for making readonly struct fields writable. Поместите курсор на имя структуры и введите (CTRL+.), чтобы открыть меню быстрых действий и рефакторинга, и выберите "Сделать поля только для чтения доступными для записи".Place your cursor in the struct name, type (Ctrl+.) to open the quick actions and refactorings menu, and select ‘Make readonly fields writable.’
  • Исправление для добавления частного поля в конструктор и наоборот стало проще для поиска. Оно будет отображаться при выборе любой части имени поля.The codefix to add a private field from a constructor and vice versa is easier to discover and will show when any portion of the field name is selected. Также этот рефакторинг предлагает все возможные конструкторы.This refactoring now also offers all possible constructors.

Предварительная версия Конструктора XAML для разработки .NET Core 3.0 WPFXAML Designer Preview for .NET Core 3.0 WPF development

  • Выпущена предварительная версия Конструктора XAML для разработчиков, которые создают приложения .NET Core 3.0 WPF в Visual Studio.There is an early preview of the XAML Designer for developers building .NET Core 3.0 WPF applications in Visual Studio. Сейчас многие возможности разработки недоступны.Many design-time features will be unavailable at this time. Это ранняя предварительная версия, и мы просим вас сообщать о любых проблемах, например сбоях, через форму отзыва о Visual Studio, чтобы разработчики смогли оперативно улучшать взаимодействие.Since this is an early preview, if you encounter issues such as crashes, please submit Visual Studio feedback for the team to improve the experience going forwards.
  • При каждом обновлении Visual Studio 2019 мы будем добавлять возможности, которые ранее были доступны в Конструкторе XAML для приложений .NET Framework WPF.With each update to Visual Studio 2019, we will continue implementing more of the features that were previously available in the XAML Designer for .NET Framework WPF applications.

Средства пакета SDK для .NET.NET SDK tooling

Для этого выпуска была проделана большая работа, чтобы реализовать возможность использования WPF в .NET Core.This release included a lot of work to unblock the use of WPF on .NET Core:

  • Устранена проблема, из-за которой диалоговое окно с сообщением об ошибке появлялось при каждом добавлении нового элемента в проект .NET Core WinForms или WPF (#4486).An issue where an error dialog popped up whenever you add a new item to a .NET Core WinForms or WPF project was been resolved (#4486).
  • Добавлена поддержка файлов XAML в проектах пакета SDK для .NET (#1467), в том числе многие небольшие элементы для достижения соответствия интерфейса с проектами .NET старого стиля.Support for XAML files in .NET SDK projects (#1467) which includes many smaller items of work aimed at achieving experience parity with old-style .NET projects.
  • Поддержка элементов контекстного меню для WinForms на платформе .NET Core (#137): "Windows Form", "Пользовательский элемент управления", "Компонент" и "Класс".Context menu item support for WinForms on .NET Core (#137): Windows Form, User Control, Component, and Class.
  • Поддержка элементов контекстного меню для WPF на платформе .NET Core (#137): "Окно", "Страница", "Пользовательский элемент управления", "Словарь ресурсов".Context menu item support for WPF on .NET Core (#137): Window, Page, User Control, Resource Dictionary.
  • Окно "Источники данных" теперь включено для проектов .NET SDK, позволяя использовать распространенные сценарии управления данными для WinForms (#4479).The Data Sources window is now enabled for .NET SDK projects, enabling common data management scenarios for WinForms (#4479.

Отдельно в этом выпуске добавлено много других исправлений.Separately, a variety of other fixes were added in this release:

  • Проекты пакета SDK для .NET теперь поддерживают файлы .razor (#4468)..NET SDK projects now support .razor files (#4468).
  • На странице свойств отладки добавлен доступный текст справки, который воспроизводится средствами чтения с экрана (#4568).Accessible help text was added to the Debug property page, allowing it to be read by screen readers (#4568).
  • Мы добавили параметр, который позволяет отключить открытие файла проекта двойным щелчком (#4493).We added a setting that allows you to disable double-click to open a project file (#4493).
  • Действие в контекстном меню, которое запускает редактирование файла проекта, теперь не отображает имя проекта. Это устраняет проблему со слишком широким контекстным меню при очень длинных именах проектов (#1492).The context menu option to edit a project file no longer includes the project name, fixing an issue where the context menu could get too wide due to a very long project name (#1492).
  • Устранена ошибка, из-за которой создание источника данных с помощью пользовательского интерфейса привязки данных создавало два файла .datasource (#4485).A bug where creating a Data Source with the Data Binding UI created two .datasource fileas has been fixed (#4485).
  • Устранена ошибка, из-за которой связанные файлы могли вызывать сбой проверки актуальности (#4580).A bug where using linked files could cause the up-to-date checker to fail has been resolved (#4580).
  • Исправлено несколько ошибок, в том числе с разрешением пакетов и отображением состояния разрешения в узле зависимостей (#2924,#4577).A variety of bugs involving package resolution and the display of their resolved/unresolved state in the Dependencies node have been fixed (#2924,#4577).

Полный список закрытых проблем можно увидеть на странице вехи 16.1 на GitHub.You can see a full list of closed issues by going to the 16.1 milestone on GitHub.

XamarinXamarin

  • Пользовательский интерфейс Android по умолчанию обновлен до API 28 для шаблонов, создания устройств, установщиков и многого другого.Updated the default Android Experience to API 28 for templates, device creation, installers, and more.
  • Теперь при написании XAML Xamarin.Forms IntelliSense для Windows отображает рекомендации для атрибутов, используемых во время разработки.IntelliSense on Windows now shows recommendations for design-time attributes when writing Xamarin.Forms XAML.

Известные проблемыKnown Issues

Просмотрите все проблемы и доступные решения в Visual Studio 2019 версии 16.1, перейдя по ссылке ниже.See all issues and available workarounds in Visual Studio 2019 version 16.1 by following the below link.

Visual Studio 2019 Known Issues


ОтзывыFeedback

Мы будем рады узнать ваше мнение!We would love to hear from you! Вы можете сообщить о проблемах, щелкнув пункт Сообщить о проблеме в правом верхнем углу установщика или самой IDE-среды Visual Studio.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 Feedback Icon находится в правом верхнем углу.icon is located in the upper right-hand corner. Вы можете предлагать для продукта новые функции, задавать вопросы, находить ответы и отслеживать решение своих проблем в сообществе разработчиков Visual Studio.You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. Кроме того, вам доступна бесплатная поддержка в чате по вопросам с установкой.You can also get free installation help through our Live Chat support.


БлогиBlogs

Воспользуйтесь аналитикой и рекомендациями с сайта Developer Tools Blogs. Там вы найдете актуальные сведения обо всех новых выпусках и сможете читать публикации с подробным анализом самых разных функций.Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.


Журнал заметок о выпуске Visual Studio 2019Visual Studio 2019 Release Notes History

Дополнительные сведения о предыдущих версиях Visual Studio 2019 см. на странице Журнал заметок о выпуске Visual Studio 2019.For more information relating to past versions of Visual Studio 2019, see the Visual Studio 2019 Release Notes History page.


К началу страницы
Top of Page