[英]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()
似乎在 Visual Studio 2017 中創建一個新的 VSIX 項目對 HelloWorldCommandPackage.cs 使用了“AsyncPackage”類,它密封了 Initialize() 方法。
文章中的那個人是為 Visual Studio 2015 編寫的,它在創建新的 VSIX 項目時使用“Package”類。 在創建這樣的主類后,我嘗試實現“Package”類:
public sealed class HelloWorldCommandPackage: Package
但是,我收到以下錯誤:
錯誤 CS0115 'HelloWorldCommandPackage.InitializeAsync(CancellationToken, IProgress)': 找不到合適的方法來覆蓋 HelloWorldSsmsExtension
錯誤 VSSDK002 當且僅當包從 AsyncPackage 派生時,PackageRegistrationAttribute.AllowsBackgroundLoading 應設置為 true。
錯誤 CS1061“HelloWorldCommandPackage”不包含“JoinableTaskFactory”的定義,並且找不到接受“HelloWorldCommandPackage”類型的第一個參數的可訪問擴展方法“JoinableTaskFactory”(您是否缺少 using 指令或程序集引用?)
錯誤 CS1503 參數 1:無法從“HelloWorldSsmsExtension.HelloWorldCommandPackage”轉換為“Microsoft.VisualStudio.Shell.AsyncPackage”
如何在 Visual Studio 2017 中完成這項工作?
方法覆蓋僅在派生類中是可能的。 因為一個方法在基類的派生類中被覆蓋。 方法必須是用於覆蓋的非虛擬或靜態方法。 覆蓋方法和虛擬方法必須具有相同的訪問級別修飾符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.