Visual Studio Icon Заметки о выпуске Visual Studio 2019, версия 16.7Visual Studio 2019 version 16.7 Release Notes


| Сообщество разработчиков | Требования к системе | Совместимость | Распространяемый код | Условия лицензии | Блоги | Известные проблемы последнего выпуска || Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Latest Release 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 2019, версия 16.7What's New in Visual Studio 2019 version 16.7

Поддержка диапазона времениSupport Timeframe

Visual Studio 2019 версии 16.7 является третьей базовой версией Visual Studio 2019.Visual Studio 2019 version 16.7 is the third supported servicing baseline for Visual Studio 2019. Клиентам Enterprise и Professional, которым нужно применить долгосрочную стабильную и безопасную среду разработки, мы рекомендуем основывать свои стандарты именно на этой версии.Enterprise and Professional customers needing to adopt a long term stable and secure development environment are encouraged to standardize on this version.  Как более подробно описано в нашей политике жизненного цикла и поддержки, версия 16.7 будет дополняться исправлениями и обновлениями безопасности еще год после выпуска следующей базовой версии.  As explained in more detail in our lifecycle and support policy, version 16.7 will be supported with fixes and security updates for one year after the release of the next servicing baseline.

Кроме того, с момента выпуска версии 16.7 в течение 12 месяцев будет поддерживаться версия 16.4, которая была предыдущей базовой версией, и ее поддержка прекратится в октябре 2021 года.In addition, now that version 16.7 is available, version 16.4, which was the last servicing baseline, will be supported for an additional 12 months and will go out of support in October 2021. Обратите внимание, что версии 16.5 и 16.6 уже не поддерживаются. Note as well that versions 16.5 and 16.6 are no longer under support. Эти промежуточные выпуски получают исправления только до выпуска следующего дополнительного обновления.These intermediary releases received servicing fixes only until the next minor update released.

Последнюю наиболее защищенную версию Visual Studio 2019 версии 16.7 можно получить в разделе скачивания на сайте my.visualstudio.com.You can acquire the latest most secure version of Visual Studio 2019 version 16.7 in the downloads section of my.visualstudio.com.  Дополнительные сведения о базовых версиях Visual Studio см. в статье о политике поддержки Visual Studio 2019.  For more information about Visual Studio supported baselines, please review the support policy for Visual Studio 2019.

Выпуски Visual Studio 2019 версии 16.7Visual Studio 2019 version 16.7 Releases

Помещенные в архив заметки о выпуске Visual Studio 2019Visual Studio 2019 Archived Release Notes

Блог 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.7.1Visual Studio 2019 version 16.7.1 New release icon

выпущен 11 августа 2020 г.released August 11, 2020

В этом выпуске Visual Studio 2019 версии 16.7.1In This Release of Visual Studio 2019 version 16.7.1


Основные проблемы, исправленные в сообществе разработчиков в Visual Studio 2019 версии 16.7.1Top Issues Fixed from Developer Community in Visual Studio 2019 version 16.7.1


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

Выпущено 5 августа 2020 г.released August 5, 2020

В этом выпуске Visual Studio 2019, версия 16.7.0In This Release of Visual Studio 2019 version 16.7.0


C++C++

  • Теперь в рамках удаленной поддержки C++ поддерживается более широкий набор дистрибутивов и оболочек Linux, включая sh, csh, bash, tsch, ksh, zsh и dash.Our remote C++ support now supports a wider range of Linux distros and shells, including sh, csh, bash, tsch, ksh, zsh, and dash. Можно переопределить возможность выбора оболочки для удаленного подключения, изменив свойство новой оболочки с помощью ConnectionManager.exe.You can override the choice of a shell for a remote connection by modifying the new "shell" property via ConnectionManager.exe. Эта поддержка была протестирована в проектах Linux на основе MSBuild и проектах CMake, предназначенных для удаленной системы Linux или WSL.This support has been tested with both MSBuild-based Linux projects and CMake projects targeting a remote Linux system or WSL.
  • Теперь вы можете использовать Ninja (систему сборки, которая очень быстро оценивает добавочные сборки) для оптимизации времени добавочной сборки для проектов Linux на основе MSBuild.You can now use Ninja (a build system that evaluates incremental builds very quickly) to improve incremental build times for MSBuild-based Linux projects. Чтобы включить эту функцию, задайте параметру "Включить добавочную сборку" значение "С Ninja" на странице свойств "Общие".You can opt into this feature by setting "Enable Incremental Build" to "With Ninja" in the General Property Page. Система Ninja (ninja-build) должна быть установлена в удаленной системе Linux или WSL.Ninja (ninja-build) must be installed on your remote Linux system or WSL.
  • Реализованы новые функции стандартной библиотеки C++ 20.New C++20 Standard Library features have been implemented. Подробный список см. в  журнале изменений STL на сайте GitHub .Please refer to the STL Changelog on GitHub for a detailed list.
  • Теперь можно изменять удаленные подключения SSH и задавать удаленные подключения SSH по умолчанию в диспетчере подключений.You can now edit and set default remote SSH connections in the Connection Manager. Это означает, что можно изменить существующее удаленное подключение (например, если изменился его IP-адрес) и задать используемые по умолчанию подключения в файлах CMakeSettings.json и launch.vs.json.This means you can edit an existing remote connection (e.g. if its IP address changed) and set default connections to be consumed in CMakeSettings.json and launch.vs.json. Удаленные подключения SSH позволяют создавать и отлаживать проекты C++ в удаленной системе Linux непосредственно из Visual Studio.Remote SSH connections allow you to build and debug C++ projects on a remote Linux system directly from Visual Studio.
Edit remote connections in the Connection Manager
Изменение удаленных подключений в диспетчере подключенийEdit remote connections in the Connection Manager
  • Улучшенная поддержка IntelliSense для Clang в Windows (clang-cl) в Visual Studio.Enhanced IntelliSense support for Clang on Windows (clang-cl) in Visual Studio. Путь включения clang теперь содержит библиотеки clang, мы улучшили отображение волнистых линий в редакторе при использовании библиотеки std, а также добавили поддержку языка C++2a в режиме clang.The clang include path now includes the clang libraries, we've improved in-editor squiggle display when using the std library, and we've added support for C++2a in clang mode.
  • теперь вы можете изучать ошибки в коде и просматривать другие предлагаемые быстрые исправления в проектах C++.You can now try out underlining code errors and see more suggested quick fixes in C++ projects.Включите эту функцию в разделе Сервис > параметры > текстовый редактор > C/C++ > экспериментально > установите для параметра "Disable экспериментальный код средство поиска ошибок" значение false. Enable this feature under Tools > Options > Text Editor > C/C++ > Experimental > Set 'Disable Experimental Code Linter' to false. Дополнительные сведения см. в Блоге группы разработчиков C++.Learn more on the C++ Team Blog.
IntelliSense code linter
Анализатор кода IntelliSenseIntelliSense code linter
  • Мы добавили четыре новых правила анализа кода для включения дополнительных функций безопасности в C++ : C26817, C26818, C26819 и C26820.We've added four new code analysis rules to incorporate additional safety features into C++: C26817, C26818, C26819, and C26820.
  • Мы добавили превосходную поддержку отладки проектов CMake в удаленных системах с помощью gdbserver.We've added first-class support for debugging CMake projects on remote systems with gdbserver.
  • Вы сможете легко находить ошибки повреждения памяти с помощью экспериментальной реализации AddressSanitizer для C++ в Visual Studio, которая теперь доступна для собственных проектов x64.Find memory corruption errors easily with an experimental implementation of AddressSanitizer for C++ in Visual Studio, now available for x64 native projects. Также поддерживаются среды выполнения отладки (/MTd, /MDd, /LDd).We also now support the use of debug runtimes (/MTd, /MDd, /LDd).
  • Технология IntelliSense теперь обеспечивает базовую поддержку концепций, назначенных инициализаторов и некоторых других возможностей C++20.IntelliSense now has basic support for Concepts, designated initializers, and several other C++20 features.
  • Файлы с расширением IXX и CPPM теперь распознаются как файлы C++ и обрабатываются как таковые с использованием маркера синтаксиса и технологии IntelliSense..ixx and .cppm files are now recognised as C++ and will be treated as such by the syntax highlighter and IntelliSense.

Динамическое определение списков воспроизведенияDefine playlists dynamically

Теперь списки воспроизведения можно определять динамически на основе проекта, класса или пространства имен.You can now define playlists dynamically based on Project, Class, or Namespace. Это означает, что можно настроить список воспроизведения, включив все элементы в определенный проект, класс или пространство имен; любой новый тест, добавленный в эту группу, будет включен в список воспроизведения автоматически.This means you can configure a playlist to include everything in a certain project/class/namespace; any new test added to that group will automatically be included in your playlist!

  • Создайте список воспроизведения, щелкнув правой кнопкой мыши группу для проекта, пространства имен или класса в Обозревателе тестов.Create a playlist by right clicking on a project, namespace, or class grouping in the Test Explorer.
Test Explorer: Create a playlist
Обозреватель тестов: Создание списка воспроизведенияTest Explorer: Create a playlist
  • Измените группы, включенные в список воспроизведения, нажав кнопку "Изменить" на панели инструментов.Edit what groups are included in the playlist by clicking on the edit button in the tool bar. Появятся флажки.Check boxes will appear. Внесите необходимые изменения в группы.Edit groups as desired.
Test Explorer: Edit a playlist
Обозреватель тестов: Изменение списка воспроизведенияTest Explorer: Edit a playlist
  • Эти списки воспроизведения не являются статическими списками тестов и воспроизведения динамически обновляются на основе правил.Instead of being a static list of tests these playlists dynamically update based on rules. Если вы хотите лучше понять, какие правила формируют динамический список воспроизведения, сохраните файл списка воспроизведения на диск с помощью кнопки "Сохранить" и просмотрите созданные правила в формате XML.If you want to better understand what rules are generating your dynamic playlist, save the playlist file to disk with the save button and view the rules generated in the xml.
PlayList file dynamic rule set
Динамический набор правил для файла списка воспроизведенияPlayList file dynamic rule set
  • Вы можете продолжить включать и исключать отдельные тесты, а список воспроизведения будет обновлять их динамические правила, или вернуться к отслеживанию тестов в виде статического списка.You can continue to include/exclude individual tests and the playlist will be able to either update its dynamic rules or switch back to keeping track of tests as a static list. Также можно использовать признаки для определения динамической группы, изменив XML-файл списка воспроизведения напрямую.You can also use traits to define a dynamic group by editing the playlist xml file directly.

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

Чтобы использовать эти возможности, включите предварительную версию функции "Новые возможности работы пользователей Git" в меню "Сервис | Параметры | Среда".Toggle on the 'New Git user experience' Preview Feature in Tools | Options | Environment to use this experience.

  • Создавайте новый репозиторий Git, начиная с любой папки или совершенно новой папки.Create a new Git repository, starting from any folder or a brand new folder
  • Сохранение и закрытие открытой папки или решения перед запуском новой операции клонированияSave and close an open folder or solution before starting a new clone operation
  • Отображение ошибок сообщения о фиксации или прятании в текстовом поле фиксацииView commit or stash message errors clearly in the commit text box
  • Просматривайте ветви Git и управляйте ими в представлении в виде дерева в новом окне репозитория Git.View and manage Git branches in a tree view within a new Git Repository window
  • Переключение между хронологическими графиками каждой ветви и взаимодействие с ними в окне репозитория GitSwitch between and interact with the history graph of each branch in the Git Repository window
  • Просмотр входящих и исходящих фиксаций в окне репозитория GitView incoming and outgoing commits in the Git Repository window
  • Блог группы разработчиков, занимающихся производительностью Git, с более подробными сведениями о последних функцияхGit Productivity team blog with more details of recent features
Manage branches and view history in a focused Git Repository window
Управление ветвями и просмотр журнала в специальном окне репозитория GitManage branches and view history in a focused Git Repository window

Разрешение конфликтов слияния с использованием следующих элементов в редакторе слияния Git:Resolve merge conflicts with a Git focused merge editor using:

  • Информационная панель в файлах с конфликтами слияния, предлагающая открыть редактор слиянияAn info bar in files containing merge conflicts that prompts you to open the merge editor
  • Более информативные заголовки и подписи, а также более наглядное размещение элементов в редакторе слиянияMore informative titles and captions, and less clutter in the merge editor
  • Различия между конфликтами с выравниванием соответствующих строк, отображением различий на уровне слов и отображением видимых пробелов, если это единственное различие.Diffs within conflicts that align matching lines, show word level differences, and display visible whitespace when it is the only difference.
  • Двустороннее слияние для конфликтов добавления на уровне файловTwo-way merges for file level add/add conflicts
  • Возможность разрешения всех конфликтов к одной или другой стороне одним щелчком мышиThe ability to resolve all conflicts to one side or the other with a single click
  • Переключатель для фокусировки только на конфликтах с игнорированием неконфликтующих различийA toggle to focus on just conflicts, ignoring non-conflicting differences
New Merge Editor Experience
Разрешение конфликтов слияния с помощью редактора слиянияResolve Merge Conflicts with the Merge Editor

JavaScript/TypeScriptJavaScript/TypeScript

  • Реализации разделов "Завершение" и "Краткие сведения" были обновлены для оптимизации поддержки сценариев LiveShare.The implementations of Completion and Quick Info have been updated to better support LiveShare scenarios.

Локальный процесс с KubernetesLocal Process with Kubernetes

Local Process with Kubernetes
Локальный процесс с KubernetesLocal Process with Kubernetes

Локальный процесс с Kubernetes позволяет писать, тестировать и отлаживать код .NET на рабочей станции разработки, подключенной к кластеру Kubernetes, в котором находятся остальные приложения или службы.Local Process with Kubernetes allows you to write, test and debug your .NET code on your development workstation while connected to your Kubernetes cluster with the rest of your application or services. Подключив рабочую станцию разработки к кластеру, вы устраняете необходимость вручную запускать и настраивать зависимые службы на компьютере разработки.By connecting your development workstation to your cluster, you eliminate the need to manually run and configure dependent services on your development machine. Переменные среды, строки подключения и тома из кластера доступны для кода микрослужбы, выполняемого локально.Environment variables, connection strings and volumes from the cluster are available to your microservice code running locally. Дополнительные ресурсы, например, манифесты Dockerfile или Kubernetes, не требуются.There is no need for extra assets, such as a Dockerfile or Kubernetes manifests. Выполняйте, отлаживайте и тестируйте код .NET обычным образом.Run, debug, and test your .NET code as you normally would.

Чтобы включить локальный процесс с Kubernetes, выберите "Сервис" > "Параметры" > "Среда" > "Предварительные версии функций", а затем выберите "Включить локальную отладку для служб Kubernetes".To enable Local Process with Kubernetes, go to Tools > Options > Envrionment > Preview Features and select "Enable local debugging for Kubernetes services".

Enable Preview Features
Включение функций предварительной версииEnable Preview Features

Для консольных приложений .NET требуется дополнительный шаг.For .NET console applications, an additional step is required. Установите пакет NuGet "Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets".Install the "Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets" Nuget Package.

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

Теперь, когда оператор подавления присутствует, но не работает, выводится предупреждение и применяется исправление кода.There is now a warning and code fix when a suppression operator is present but has no effect. Доступно также второе исправление кода, предлагающее правильное выражение инвертирования.A second code fix suggesting the correct negating expression is also available. Наведите курсор на оператор подавления.Place your cursor on the suppression operator. Нажмите CTRL + . , чтобы открыть меню Быстрые действия и рефакторинг.Press (Ctrl + .) to trigger the Quick Actions and Refactorings menu. Выберите один из следующих вариантов.Next, select from one of the following:

  • Чтобы полностью удалить оператор, выберите Remove operator (preserves semantics) (Удалить оператор (с сохранением семантики)):To remove the operator completely, select Remove operator (preserves semantics):
Code fix to remove suppression operator
Исправление кода для удаления оператора подавленияCode fix to remove suppression operator
  • Чтобы инвертировать выражение, выберите Negate expression (change semantics) (Инвертировать выражение (изменить семантику)).To negate the expression, select Negate expression (change semantics):
Code fix to negate expression
Исправление кода для инвертирования выраженияCode fix to negate expression
  • Можно также инвертировать выражение с помощью нового шаблона not C# 9, если он доступен в проекте:You can also negate the expression with the new C# 9 not pattern if it is available in your project:
Code fix to negate expression using not
Исправление кода для инвертирования выражения с помощью notCode fix to negate expression using not

Теперь можно создавать свойства при создании конструктора в типе.You can now generate properties when generating a constructor in a type. Поместите курсор на экземпляр.Place your cursor on the instance. Нажмите CTRL + . , чтобы открыть меню Быстрые действия и рефакторинг.Press (Ctrl + .) to trigger the Quick Actions and Refactorings menu. Выберите Создать конструктор в <QualifiedName> (со свойствами) .Select Generate constructor in <QualifiedName> (with properties).

Generate properties when generating constructor
Создание свойств при создании конструктораGenerate properties when generating constructor
  • В разделе "Краткие сведения" теперь отображается идентификатор диагностики, а также ссылка на раздел справки, по которой вы сможете легко перейти в документацию и ознакомиться с дополнительными сведениями о предупреждениях и ошибках в коде.Quick Info now displays the diagnostic ID along with a help link where you can easily navigate to our documentation to learn more about warnings and errors in your code.
Quick Info Diagnostic ID and Help Link
Идентификатор диагностики и ссылка на раздел справки в разделе "Краткие сведения"Quick Info Diagnostic ID and Help Link
  • Теперь можно быстро добавить в класс атрибут отображения отладчика.There is now a quick action to add a debugger display attribute to a class. Это позволяет программно закреплять свойства в отладчике в вашем коде.This allows you to pin properties within the debugger programmatically in your code. Поместите курсор в имени класса.Place your cursor on the class name. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Выберите Добавить атрибут "DebuggerDisplay" .Select Add ‘DebuggerDisplay` attribute. При этом будет добавлен атрибут отображения отладчика в верхнюю часть класса и создан автоматический метод, возвращающий ToString(), который можно изменить для возврата значения свойства, которое вы хотите закрепить в отладчике.This will add the debugger display attribute to the top of your class and generate an auto method that returns ToString() which you can edit to return the property value you want pinned in the debugger.
Add Debugger Display Attribute
Добавление атрибута отображения отладчикаAdd Debugger Display Attribute
  • Добавлено исправление кода для случайных назначений или сравнений с одной и той же переменной.There is now a code fix for accidental assignments or comparisons to the same variable. Поместите курсор в предупреждение.Place your cursor on the warning. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Для случайных назначений выберите Назначить для .value.For accidental assignments, select Assign to .value. Для случайных сравнений выберите Сравнить с .value.For accidental comparisons, select Compare to .value.
Accidental Assignments Code Fix
Исправление кода для случайных назначенийAccidental Assignments Code Fix
Accidental Comparisons Code Fix
Исправление кода для случайных сравненийAccidental Comparisons Code Fix
  • Теперь можно создавать операторы сравнения для типов, реализующих интерфейс IComparable.You can now generate comparison operators for types that implement IComparable. Поместите курсор внутри класса или в IComparable.Place your cursor either inside the class or on IComparable. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Выберите Создать операторы сравнения.Select Generate comparison operators. Для вас будет создан шаблон с операторами сравнения.A boiler plate will be generated for you with the comparison operators.
Generate Comparison Operators
Создание операторов сравненияGenerate Comparison Operators
  • Теперь можно создавать операторы IEquatable при создании .Equals для структур.You can now generate IEquatable operators when generating .Equals for structs. Мы уже выполнили рефакторинг на Generate Equals и GetHashCode для типов значений.We already had a refactoring to Generate Equals and GetHashCode for value types. Для структур мы автоматически добавляем IEquatable, а также операторы равенства и неравенства.Now with structs we will automatically add the IEquatable as well as the equals and not equals operators for you. Поместите курсор в структуру.Place your cursor within the struct. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Выберите Создать Equals(object) .Select Generate Equals(object).
Generate IEquatable Operators
Создание операторов IEquatableGenerate IEquatable Operators
  • Теперь можно создавать и назначать свойства или поля для всех неиспользуемых параметров конструктора.You can now create and assign properties or fields for all unused constructor parameters. Уже существовало быстрое действие, которое позволяло делать это для отдельного параметра. Однако теперь это можно сделать для всех неиспользуемых параметров одновременно.We already had a quick action that allowed you to do this on an individual parameter, but now you can do it for all unused parameters at once. Поместите курсор на любой из оставшихся параметров.Place your cursor on any of the remaining parameters. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Чтобы создать и инициализировать свойства, выберите Создать и назначить оставшиеся как свойства.To create and initialize properties, select Create and assign remaining as properties. Чтобы создать и инициализировать поля, выберите Создать и назначить оставшиеся как поля.To create and initialize fields, select Create and assign remaining as fields.
Create and Assign Remaining Fields
Создание и назначение оставшихся полейCreate and Assign Remaining Fields
Create and Assign Remaining Properties
Создание и назначение оставшихся свойствCreate and Assign Remaining Properties
  • Теперь можно выполнять завершение IntelliSense в строковых литералах DateTime и TimeSpan.There is now IntelliSense completion in DateTime and TimeSpan string literals. Поместите курсор внутрь строкового литерала DateTime или TimeSpan и нажмите клавиши (Ctrl+ПРОБЕЛ).Place your cursor inside the DateTime or TimeSpan string literal and press (Ctrl+Space). Вы увидите параметры завершения и пояснения к каждому символу.You will then see completion options and an explanation as to what each character means. Будут указаны формат даты и времени, а также пример.Both the date time format and an example will be provided.
IntelliSense Completion in DateTime and TimeSpan
Завершение IntelliSense в строковых литералах DateTime и TimeSpanIntelliSense Completion in DateTime and TimeSpan string literals
  • Теперь можно добавить параметр в диалоговом окне Изменение сигнатуры.You can now add a parameter within the Change Signature dialog. Поместите курсор в сигнатуру метода.Place your cursor within the method’s signature. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Выберите Изменение сигнатуры.Select Change signature. Откроется следующее диалоговое окно, в котором теперь можно нажать кнопку Добавить, чтобы добавить параметр.The following dialog will open where you can now select Add to add a parameter. После нажатия кнопки Добавить откроется новое диалоговое окно Добавление параметра.Once you select Add, the new Add Parameter dialog will open. Диалоговое окно Добавление параметра позволяет добавить тип параметра и имя параметра.The Add Parameter dialog allows you to add a type name and a parameter name. Можно указать, что параметр должен быть обязательным или необязательным со значением по умолчанию.You can choose to make the parameter required or optional with a default value. Затем можно добавить значение в место вызова и выбрать именованный аргумент для этого значения или ввести переменную TODO.You can then add a value at the call site and choose a named argument for that value or you can introduce a TODO variable. Переменная TODO помещает в код оператор TODO, чтобы вы могли переходить к каждой ошибке, проходить каждое место вызова по отдельности и выбирать передаваемое значение аргумента.The TODO variable puts a TODO in your code so you can visit each error and go through each call site independently and decide what to pass. В случае необязательных параметров можно полностью опустить место вызова.For optional parameters you have the option to omit the call site completely.
Change Signature Dialog
Диалоговое окно "Изменение сигнатуры"Change Signature Dialog
Add Parameter Dialog
Диалоговое окно "Добавление параметра"Add Parameter Dialog
  • Авторы анализаторов теперь могут использовать CompletionProviders для завершения IntelliSense при отправке анализаторов с пакетами NuGet.Analyzer authors can now use CompletionProviders for IntelliSense completions when shipping their analyzers with NuGet. Ранее создателям библиотек пришлось бы создать отдельный файл VSIX, так как CompletionProviders были доступны только в VSIX.Before, library authors would have to create a separate VSIX since CompletionProviders was only available in VSIX. Теперь авторы библиотек могут реализовать завершение IntelliSense в пакете NuGet, в котором находятся анализаторы, и им не нужно делать это отдельно.Now library authors can implement IntelliSense completions in the NuGet package where their analyzers are, and they don’t need to do it separately. Поставщики завершения, реализованные в пакетах NuGet, также предоставляют рекомендации для отдельных проектов и будут автоматически работать в каждой интегрированной среде разработки, поддерживающей эту функцию.Completion providers implemented in NuGet packages will also provide suggestions specific to individual projects and will automatically work in each IDE supporting the feature.

RazorRazor

Попробуйте новый редактор Razor с поддержкой экспериментального протокола языкового сервера (Language Server Protocol, LSP) со всеми файлами Razor (.cshtml/.razor), выбрав предварительную версию функции Enable experimental Razor editor (Включить экспериментальный редактор Razor).Try out the new experimental Language Server Protocol (LSP) powered Razor editor with all Razor files (.cshtml/.razor) by selecting the Enable experimental Razor editor preview feature.

Обозреватель тестовTest Explorer

Добавлена функция Запуск/Отладка всех тестов в представлении в Обозревателе тестов.Run/Debug All Tests In View have been added to the Test Explorer. Эти команды теперь доступны там, где раньше были команды Запуск всех тестов и Отладка всех тестов.These commands replace where the Run All Tests and Debug All Tests commands appeared in the Test Explorer. Данное изменение призвано уточнить, что эти команды учитывают фильтры Обозревателя тестов и будут выполнять только тесты, отображаемые в окне.This change clarifies that these commands honor the filters of the Test Explorer so that only tests visible in window are run. Это касается и фильтров столбцов, и фильтров полей поиска.This includes both column filters and search box filters.

Test Explorer Run/Debug All Tests in View commands
Команды для запуска и отладки всех тестов в представлении Обозревателя тестовTest Explorer Run/Debug All Tests in View commands

Команды Глобальный запуск/Отладить все теперь отображаются только в меню тестирования верхнего уровня.The Global Run/Debug All commands will now only appear in the top-level Test menu. Они больше не входят в панель инструментов Обозревателя тестов или в контекстное меню любого представления окна тестов.They are no longer included in the Test Explorer toolbar or context menu of any test window view. При запуске из Обозревателя тестов Анализ покрытия кода для всех тестов теперь применяется также к представлениям окна тестов.When triggered from the Test Explorer, the Analyze Code Coverage for All Tests now applies to the test window views as well.

Сочетания клавиш:Short-cut Keys:

  • CTRL R, A — Запуск всех тестов. Глобальная команда, которая всегда запускает все тесты.Ctrl R, A - Run All Test - Global command always runs all tests
  • CTRL R, V — Запуск всех тестов в представлении. Команда, действующая только в активных окнах тестирования (Обозреватель тестов, Список воспроизведения, Live Unit Testing).Ctrl R, V - Run All Tests In View - Only a valid command when a test window (Test Explorer, Playlist, Live Unit Testing Window) are active windows
  • CTRL R, CTRL A — Отладка всех тестов. Глобальная команда, которая всегда запускает отладку всех тестов.Ctrl R, Ctrl A - Debug All Test - Global command always debugs all tests
  • CTRL R, V — Отладка всех тестов в представлении. Команда, действующая только в активных окнах тестирования (Обозреватель тестов, Список воспроизведения, Live Unit Testing).Ctrl R, Ctrl V - Debug All Tests In View - Only a valid command when a test window (Test Explorer, Playlist, Live Unit Testing Window) are active windows

ОтладчикDebugger

Просмотр управляемых COM-объектов с помощью собственных указателейViewing Managed COM Objects Through Native Pointers

Эта функция автоматически декодирует управляемые COM-объекты, на которые ссылаются собственные указатели, что позволяет выполнять полную проверку значений в окне "Локальные".This feature automatically decodes managed COM objects referenced by native pointers allowing you to fully inspect values in the Locals window. Дополнительные сведения см. в блоге по Visual Studio.You can find more details here at the Visual Studio blog.

профилировщикProfiler

Новое средство счетчиков производительности .NETNew .NET Performance Counters Tool

.NET Performance Counters Tool
Средство счетчиков производительности .NET.NET Performance Counters Tool

Визуализируйте счетчики dotnet непосредственно в профилировщике Visual Studio с помощью средства счетчиков производительности .NET.Visualize dotnet counters right from within the Visual Studio Profiler using the .NET Performance Counters Tool. Чтобы попробовать это средство, перейдите в меню Отладка -> Профилировщик производительности -> Флажок "Средство счетчиков производительности .NET" .To try out the tool go to Debug -> Performance Profiler -> Checkmark .NET Performance Counters Tool.

XamarinXamarin

  • Введены исправления кода для наиболее распространенных типов проблем, с которыми сталкиваются пользователи при работе с файлами макета Android.Code fixers have been introduced for the most common types of problems experienced by users with Android layout files.
  • Интерфейс выбора шаблона Xamarin.Forms стал более удобным и наглядным, а всплывающие элементы и шаблоны с вкладками теперь используют оболочку.The Xamarin.Forms template selection experience now has a fresh and more illustrative look, and the Flyout and Tabbed templates now utilize Shell. Дополнительные сведения об оболочке см. здесь.Read more about Shell here. Если по каким-либо причинам вы не хотите использовать оболочку, выберите пустой шаблон.If for some reason you don't wish to use Shell, use the Blank template.
New Xamarin.Forms template selection experience
Выбор шаблона Xamarin.FormsChoosing a Xamarin.Forms template

Средства XAML (WPF, UWP и Xamarin.Forms)XAML Tools (WPF, UWP & Xamarin.Forms)

Горячая перезагрузка XAML.XAML Hot Reload:

  • Усовершенствования панели инструментов в приложении. Мы еще больше усовершенствовали в приложении панель инструментов, используемую в рабочем процессе горячей перезагрузки XAML для WPF и UWP.In-app Toolbar Improvements: We have further refined the in-app toolbar experience that is part of the XAML Hot Reload tooling workflow for WPF & UWP. В число изменений входят укороченная панель инструментов, которая больше не перекрывает выполняющееся приложение, а также модифицированный механизм свертывания, который при первом щелчке будет сворачивать текст "Горячая перезагрузка XAML", а при втором — всю панель инструментов.Changes include a shorter toolbar so that it no longer covers the running application, and a change in the collapse mechanism which when clicked will now collapse the XAML Hot Reload text first, then collapse the bar fully on the second click.

Конструктор XAML.XAML Designer:

  • Расширенная поддержка данных во время разработки для WPF и UWP. В этом выпуске представлена новая возможность поддержки данных во время разработки для разработчиков WPF .NET Core и UWP.Expanded Design-time Data Support for WPF & UWP: In this release we are introducing a new design-time data feature for WPF .NET Core and UWP developers. Эта новая возможность расширяет текущий список доступных во время разработки свойств за счет использования префикса "d:".This new capability will extend the current list of accessible design-time properties through the use of the d: prefix. Эта функция будет знакома разработчикам Xamarin.Forms, так как она позволяет использовать префикс "d:" для указания свойства, которое должно отображаться только во время разработки и никогда не компилируется в работающее приложение, что делает его очень безопасным для использования при проверке пользовательского интерфейса во время разработки.This feature will be familiar to Xamarin.Forms developers, as it makes available the same approach of using a “d:” prefix to indicate a property that should only be rendered at design-time and never gets compiled into the running app making it very safe to use for design time UI validation. В этом выпуске будут поддерживаться все готовые элементы управления для WPF и UWP. Поддержка сторонних и пользовательских элементов управления планируется в будущих выпусках.In this release we support all the out-of-the-box controls for WPF and UWP and plan to support 3rd party and custom controls in future releases.
  • Кнопка обновления конструктора XAML. Мы добавили кнопку "Обновить" в конструктор XAML. Этот новый значок находится в нижней левой части рядом с индикатором уровня масштабирования.XAML Designer Refresh Button: We have added a refresh button to the XAML designer, this new icon can be found in the bottom-left icon area near the zoom level indicator. Это действие обновления эквивалентно закрытию представления конструктора и его повторному открытию в тех редких случаях, когда это необходимо для решения проблемы с отрисовкой.This refresh action does the equivalent reset of closing the designer view and re-opening it for the rare situations where this is required to resolve a rendering issue. Эта функция доступна разработчикам WPF .NET Core и UWP.This feature is available for WPF .NET Core and UWP developers.

Редактор кода XAML.XAML Code Editor:

  • Визуализатор цветов. Мы доработали новый визуализатор цветов в редакторе кода XAML для проектов WPF .NET Core, WPF .NET Framework и Xamarin.Froms.Color Visualizer: We have further refined our new color visualizer in the XAML code editor for WPF .NET Core, WPF .NET Framework and Xamarin.Froms projects. В этом выпуске добавлена поддержка для визуализации цветов из ресурсов, которые не поддерживались в последней предварительной версии.In this release we have added support for visualizing colors coming from resources, which was previously not supported in the last preview.
Inline Color Previews in XAML Code Editor
Встроенный предварительный просмотр с цветовым выделением в редакторе кода XAMLInline Color Previews in XAML Code Editor

Отображение элементов панели элементов из пакета NuGet без ссылки на пакетShow Toolbox items from a NuGet package without having a package reference

Многие авторы библиотек элементов управления хотят, чтобы их элементы управления были видны на панели элементов, даже если текущий проект еще не ссылался на библиотеку, так как это делает эти элементы управления более наглядными.Many control library authors want their controls to be seen in the Toolbox even when the current project hasn't referenced the library yet, as this helps with discoverability. В пакете SDK для .NET Framework WPF это было реализовано с помощью записей реестра, но в .NET Core это не поддерживается.WPF .NET Framework SDKs have historically accomplished this using registry entries, but this is not supported by .NET Core. Для .NET Core WPF панель элементов теперь можно заполнить элементами управления из файлов VisualStudioToolsManifest.xml, находящихся в пакетах NuGet .NET Core WPF в папках резервных файлов NuGet.For WPF .NET Core, Toolbox can now be populated with controls from VisualStudioToolsManifest.xml files found within WPF .NET Core NuGet packages in NuGet fallback folders. Дополнительные сведения см. в документации по репозиторию GitHub расширяемости конструктора XAML.For more details, see the documentation in the XAML Designer Extensibility GitHub repo.

Windows FormsWindows Forms

Конструктор Windows Forms для .NET CoreWindows Forms Designer for .NET Core

Появился конструктор Windows Forms для проектов .NET Core.The Windows Forms designer for .NET Core projects is now available. Чтобы включить конструктор, последовательно выберите "Сервис" > "Параметры" > "Среда" > "Функции предварительной версии", а затем выберите параметр Use the preview Windows Forms designer for .NET Core apps (Использовать конструктор Windows Forms предварительной версии для приложений .NET Core).To enable the designer in Visual Studio, go to Tools > Options > Environment > Preview Features and select the Use the preview Windows Forms designer for .NET Core apps option.

В этом выпуске внесен ряд улучшений, а также поддерживаются следующие элементы управления:In this release the following controls are now supported along with other improvements:

  • UserControl и инфраструктура пользовательских элементов управленияUserControl and custom controls infrastructure
  • TableLayoutPanelTableLayoutPanel
  • Основные принципы поддержки элементов управления сторонних производителейFundamentals for third-party controls support
  • Основные принципы поддержки привязки данныхFundamentals for data binding support
  • Улучшения взаимодействия конструктора с TableLayoutPanelImprovements in designer interaction with the TableLayoutPanel

Исправления ошибокBug Fixes

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

  • Исправлена ошибка, вызывавшая сбой установки компонента поставщика WMI.Fixed WMI Provider component installation failure.
  • Устранена проблема, из-за которой пользователи не могли видеть ход выполнения тестового запуска при нажатии левой кнопки в нижней части панели.Fixed an issue where users were not able to see test run progress by clicking the left button at the bottom of the bar.
  • Улучшена работа обнаружения доступных планов выставления счетов Visual Studio Codespace.Improved performance of discovering available Visual Studio Codespace billing plans.
  • При создании Visual Studio Codespace время приостановки по умолчанию увеличено с 30 минут до 3 часов.When creating a Visual Studio Codespace, we changed the default suspend time from 30minutes to 3 hours.
  • Исправлена ошибка, из-за которой окно изменений Git сообщает пользователю о наличии входящих и исходящих фиксаций, когда на самом деле они отсутствуют.Fix bug where the Git Changes window informs the user they have incoming/outgoing commits, when in fact they have none.
  • Улучшена стабильность Средств диагностики и Профилировщика производительности.Improved stability of the Diagnostic Tools and Performance Profiler.
  • Исправлена проблема, при которой расширение Azure Sphere для Visual Studio не обновляется автоматически из-за несоответствия дополнительного номера версии.Addressed an issue where Azure Sphere Visual Studio extension will not be automatically updated due to a minor version mismatch. За счет данного исправления Azure Sphere сможет автоматически обновляться при запуске средства автоматического обновления VSIX.With the fix, Azure Sphere will be able to get automatically updated when the VSIX auto updater runs.

От сообщества разработчиковFrom Developer Community


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

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


Обратная связь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