Я использую это руководство для создания расширения SSMS с помощью проекта VSIX Visual Studio 2017: https://www.codeproject.com/Articles/1243356/Create-Your-Own-SQL-Server-Management-Studio-SSMS
Однако я застрял на последнем шаге.Я сделал все, что он сказал, но проект не будет собран, потому что я получаю это сообщение об ошибке из метода Initialize ():
protected override void Initialize()
- 'HelloWorldCommandPackage.Initialize ()': невозможно переопределить унаследованный член' AsyncPackage.Initialize () ', потому что он запечатан.
Кажется, что при создании нового проекта VSIX в Visual Studio 2017 используется класс AsyncPackage для HelloWorldCommandPackage.csкоторые закрывают метод Initialize ().
Парень из этой статьи написал его для Visual Studio 2015, который использует класс Package при создании нового проекта VSIX.Я пытаюсь реализовать класс Package после создания основного класса следующим образом:
public sealed class HelloWorldCommandPackage: Package
Однако я получаю следующие ошибки:
Ошибка CS0115 «HelloWorldCommandPackage.InitializeAsync (CancellationToken, IProgress)»: не найдено подходящего метода для переопределения HelloWorldSsmsExtension
Ошибка VSSDK002 PackageRegistrationAttribute.AllowsBackgroundLoading должно быть установлено только в том случае, если для параметра packageRegistrationAttribute.из AsyncPackage.
Ошибка CS1061 «HelloWorldCommandPackage» не содержит определения для «JoinableTaskFactory», и нет доступного метода расширения «JoinableTaskFactory», принимающего первый аргумент типа «HelloWorldCommandPackage» (Вы пропускаете директиву using или ссылку на сборку?)
Ошибка CS1503 Аргумент 1: невозможно преобразовать из HelloWorldSsmsExtension.HelloWorldCommandPackage в Microsoft.VisualStudio.Shell.AsyncPackage '
Как сделатьЯ делаю эту работу в Visual Studio 2017?