簡體   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