Я не использую VSIX для интеграции (поддерживает старые VS и SSMS). Установщик помещает все dll в "программные файлы", а pkgdef и манифест в определенные папки. В настоящее время VS2019 показывает сообщение о том, что мое расширение использует «устаревший API».
Изображение с сообщением от docs.microsoft.com, но оно то же самое.
Я сделал следующие шаги:
- Я создал asyncPackage (теперь пустой).
- Добавлен с помощью Microsoft.VisualStudio.Component.CoreEditor в vsixmanifest
- Сгенерированы catalog.json и manifest.json с использованием кода из здесь
Мой пакет выглядит так (конструктор сейчас пуст)
[PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
[InstalledProductRegistration("#110", "#112", "7.1.7", IconResourceID = 115)]
[ProvideMenuResource("MyMenus.ctmenu", 1)]
[ProvideAutoLoad(GuidList.ShellInitialized, PackageAutoLoadFlags.BackgroundLoad)]
[ProvideAutoLoad(VSConstants.UICONTEXT.NoSolution_string, PackageAutoLoadFlags.BackgroundLoad)]
[System.Runtime.InteropServices.Guid(GuidList.guidMyPkgString)]
public sealed class MyPackage : AsyncPackage {
Но VisualStudio снова и снова показывает сообщение об устаревшем API. Что я упустил? Что проверяет VS при загрузке пакета?
Изменить: я создал AsyncPackage, добавил атрибуты, обновил файлы интеграции для VsixV3. Почему VS загружает расширение синхронно?
"AllowsBackgroundLoad"=dword:00000001
в pkgdef. - person vik_78   schedule 12.04.2019