+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новости

Visual Studio 2019 v.16.1 Preview 1 - первое превью первого обновления Visual Studio 2019

Visual Studio 2019 v.16.1 Preview 1 - первое превью первого обновления Visual Studio 2019

Microsoft выпустил Visual Studio 2019 v.16.1 Preview 1. Это первое превью первого обновления Visual Studio 2019. Если вы еще не настроили получение Preview-версий, то сделайте это сейчас. Preview-версия без проблем устанавливается рядом с Release-версией, так что они не мешают друг другу. Microsoft рекомендует всем авторам расширений установить Preview-версию.

Некоторые новые функции Visual Studio 2019 v.16.1 Preview 1, которые могут вам понравиться.

Поддержка общего проекта (Shared Project)

Существует несколько причин, по которым авторам расширений иногда приходится разбивать расширение на несколько проектов для поддержки различных версий Visual Studio. Если вы используете API, который не существовал для более ранней версии Visual Studio, или если между версиями, которые вы хотите поддерживать, есть существенные изменения. Теперь теперь стало намного проще разделить расширение.

В Visual Studio 2019 v.16.1 Preview 1 мы добавили поддержку ссылок на Shared Project из проектов VSIX в том же решении.

Вы можете поместить общий код в отдельный Shared Project, который компилируется непосредственно в проекты VSIX во время сборки. Единственный код, который затем существует в самих проектах VSIX — это специфичный код для поддерживаемой версии Visual Studio. Результатом являются две отдельные VSIX, которые нацелены на собственный диапазон версий Visual Studio и совместно используют большую часть кода из общего проекта. Проверьте код для расширения Extension Manager, который делает именно это.

Больше нет необходимости в файле .resx

При добавлении команд, меню и т.д., используя файл VSCT, необходимо указать файл .resx, помеченный свойством MergeWithCTOMSBuild. Шаблоны в Visual Studio заботятся о добавлении этого файла, а также добавляют файл .ico, на который ссылается файл .resx. Тем не менее, необходимость в .resx является деталью имплементации, и большинству расширений ее не нужно использовать.

В целях упрощения проекта VSIX требование к файлам .resx /.ico было удалено для использующих последнюю версию пакета NuGet Microsoft.VSSDK.BuildTools 16.0 или более новую.

За кулисами пакет NuGet предоставляет пустой .resx для компиляции со свойством MergeWithCTO до тех пор, пока вы не зарегистрировали свой собственный в проекте.

Per-Monitor Awareness

Дополнительная поддержка per-monitor включена в 16.1 с установленной .NET Framework 4.8. Windows Forms UI теперь лучше справляется с масштабированием DPI на мониторах. Однако это может вызвать проблемы с UI в вашем расширении после установки .NET Framework 4.8.

При использовании Windows Forms в расширении вы можете сопоставить поведения масштабирования Visual Studio 2017, упаковав создание вышей формы или элемента управления в DpiAwareness.EnterDpiScope.

Все, что вам нужно, это добавить ссылку на пакет NuGet Microsoft.VisualStudio.DpiAwareness. Используйте этот пакет в расширениях, ориентированных на более ранние версии Visual Studio, но имейте в виду, что он заработает только при использовании в версии 16.1 и новее. Таким образом, его можно использовать в расширениях, охватывающих несколько версий Visual Studio.

Чтобы упростить имитацию нескольких мониторов, работающих с различным масштабированием DPI, инженер из команды Visual Studio IDE создал небольшой удобный инструмент и поместил его на GitHub. Команда использовала этот инструмент, когда добавляла поддержку для per-monitor awareness, так что вы тоже можете посчитать его полезным.

Прочитайте подробнее о том, как работать с Per-Monitor Awareness.

Отключена синхронная автозагрузка

18 месяцев назад Microsoft отправил электронное письмо партнерам по расширению, объявив об устаревании синхронной автозагрузки пакетов расширений. Год назад Microsoft опубликовал пост в блоге с более подробной информацией о том, что синхронно автозагружаемый пакет не будет поддерживаться в будущей версии Visual Studio. Эта версия — 16.1.

Есть отличные примеры того, как перейти на AsyncPackage с включенной фоновой загрузкой, и большинство расширений сегодня уже осуществили переход. Если вы еще этого не сделали, сейчас самое время сделать это до того, как 16.1 выйдет из режима предварительного просмотра.

Новый метапакет SDK

Метапакет Microsoft.VisualStudio.SDK — это отдельный пакет NuGet, который ссылается на все различные пакеты Visual Studio, составляющие SDK. Самое крутое в метапакете — это то, что у вас есть доступ ко всем интерфейсам и сервисам. Кроме того, вы также избегаете проблем с несовпадающими версиями пакетов.

Когда Microsoft выпустил Visual Studio 2019 (16.0), шаблон проекта VSIX ссылался на версию 15.9 метапакета SDK. Это было потому, что версия 16.0 все еще находилась в стадии разработки. Все отдельные пакеты должны были быть опубликованы в NuGet, прежде чем мы могли получить зависимость от них из метапакета.

Хорошей новостью является то, что теперь у Microsoft наконец-то готова версия 16.0. Если ваше расширение поддерживает версию 16.0, то вы должны использовать ее.

Другие новости