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

问题描述 投票:0回答:1

我不使用VSIX进行集成(支持旧VS和SSMS)。安装程序将所有dll放入“程序文件”,将pkgdef和manifest放到特定文件夹中。目前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同步加载扩展?

visual-studio-extensions vsix vs-extensibility
1个回答
3
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.