Я не использую VSIX для интеграции (поддерживает старые VS и SSMS). Установщик помещает все dll в «программные файлы» и pkgdef и манифест в определенные папки. В настоящее время VS2019 показывает сообщение о том, что мое расширение использует устаревший API.
Изображение с сообщением от docs.microsoft.com, но оно такое же.
Я сделал следующие шаги:
- Я создал asyncPackage (теперь пустой).
- Добавлено с
Microsoft.VisualStudio.Component.CoreEditor to 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 загружает расширение синхронно?