为什么VS2019将我的扩展标记为已弃用

时间:2019-04-04 11:01:38

标签: visual-studio-extensions vsix vs-extensibility

我不使用VSIX进行集成(支持旧的VS和SSMS)。安装程序将所有dll放入“程序文件”和pkgdef中,并显示到特定的文件夹中。当前VS2019显示消息,我的扩展程序使用“不推荐使用的API”。

包含来自docs.microsoft.com的消息的图像,但是相同。

enter image description here

我完成了以下步骤:

  • 我创建了asyncPackage(现在为空)。
  • 添加了 Microsoft.VisualStudio.Component.CoreEditor转换为vsixmanifest
  • 使用here中的代码生成的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 个答案:

答案 0 :(得分:1)

这可以帮助谁解决相同的问题。 如前所述,我们不使用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