我不使用VSIX进行集成(支持旧VS和SSMS)。安装程序将所有dll放入“程序文件”,将pkgdef和manifest放到特定文件夹中。目前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同步加载扩展?
对谁来说,这可以帮助解决同样的问题。如上所述,我们不使用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