我不使用VSIX进行集成(支持旧的VS和SSMS)。安装程序将所有dll放入“程序文件”和pkgdef中,并显示到特定的文件夹中。当前VS2019显示消息,我的扩展程序使用“不推荐使用的API”。
包含来自docs.microsoft.com的消息的图像,但是相同。
我完成了以下步骤:
我的包裹看起来很(构造函数现在为空)
[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同步加载扩展?
答案 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