Почему VS2019 помечает мое расширение как устаревшее - PullRequest
0 голосов
/ 04 апреля 2019

Я не использую VSIX для интеграции (поддерживает старые VS и SSMS). Установщик помещает все dll в «программные файлы» и pkgdef и манифест в определенные папки. В настоящее время VS2019 показывает сообщение о том, что мое расширение использует устаревший API.

Изображение с сообщением от docs.microsoft.com, но оно такое же.

enter image description here

Я сделал следующие шаги:

  • Я создал 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 загружает расширение синхронно?

1 Ответ

3 голосов
/ 12 апреля 2019

Для кого это может помочь решить ту же проблему. Как я упоминал выше, мы не используем VSIX. И все файлы копируются установщиком. Проблема заключалась в том, что это было пропущено:

[$RootKey$\Packages\{YOUR PACKAGE GUID}]
@="YOUR PACKAGE NAME"
"AllowsBackgroundLoad"=dword:00000001

Я нашел его при проверке всех пакетов в личном реестре privateregistry.bin

Также не забудьте о UI Context, если вы его используете:

[$RootKey$\AutoLoadPackages\$UICONTEXT_GUID}]
"$YOUR_PACKAGE_GUID”= dword:00000002

Благодаря MS git

...