繁体   English   中英

通过 Visual Studio 2017 VSIX 项目构建 SQL Server Management Studio 扩展:为 AsyncPackage 类绕过 Initialiaze()

[英]Building a SQL Server Management Studio Extension via Visual Studio 2017 VSIX project: Bypass Initialiaze() for AsyncPackage class

我正在使用本指南通过 Visual Studio 2017 VSIX 项目构建 SSMS 扩展: https ://www.codeproject.com/Articles/1243356/Create-Your-Own-SQL-Server-Management-Studio-SSMS

但是,我被困在最后一步。 我做了它所说的一切,但该项目无法构建,因为我从 Initialize() 方法收到此错误消息:

protected override void Initialize()

  1. “HelloWorldCommandPackage.Initialize()”:无法覆盖继承的成员“AsyncPackage.Initialize()”,因为它是密封的。

似乎在 Visual Studio 2017 中创建一个新的 VSIX 项目对 HelloWorldCommandPackage.cs 使用了“AsyncPackage”类,它密封了 Initialize() 方法。

文章中的那个人是为 Visual Studio 2015 编写的,它在创建新的 VSIX 项目时使用“Package”类。 在创建这样的主类后,我尝试实现“Package”类:

public sealed class HelloWorldCommandPackage: Package

但是,我收到以下错误:

  1. 错误 CS0115 'HelloWorldCommandPackage.InitializeAsync(CancellationToken, IProgress)': 找不到合适的方法来覆盖 HelloWorldSsmsExtension

  2. 错误 VSSDK002 当且仅当包从 AsyncPackage 派生时,PackageRegistrationAttribute.AllowsBackgroundLoading 应设置为 true。

  3. 错误 CS1061“HelloWorldCommandPackage”不包含“JoinableTaskFactory”的定义,并且找不到接受“HelloWorldCommandPackage”类型的第一个参数的可访问扩展方法“JoinableTaskFactory”(您是否缺少 using 指令或程序集引用?)

  4. 错误 CS1503 参数 1:无法从“HelloWorldSsmsExtension.HelloWorldCommandPackage”转换为“Microsoft.VisualStudio.Shell.AsyncPackage”

如何在 Visual Studio 2017 中完成这项工作?

方法覆盖仅在派生类中是可能的。 因为一个方法在基类的派生类中被覆盖。 方法必须是用于覆盖的非虚拟或静态方法。 覆盖方法和虚拟方法必须具有相同的访问级别修饰符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM