Microsoft.VisualStudio.SDK + Microsoft.VisualStudio.Debugger.Interop.Internal = Ошибка - PullRequest
0 голосов
/ 13 июня 2019

Поскольку «стандартный» API для доступа к отладчику VS выглядит крайне ограниченным, я вручную добавил ссылку на Microsoft.VisualStudio.Debugger.Interop.Internal.dll при использовании nuget VS-SDK. , Это компилируется и запускается, когда я использую этот код:

IDebuggerInternal debugger = Package.GetGlobalService(typeof(SVsShellDebugger)) as IDebuggerInternal;
var session = debugger?.CurrentSession;

но когда я изменяю его на использование явного типа IDebugSession3

IDebuggerInternal debugger = Package.GetGlobalService(typeof(SVsShellDebugger)) as IDebuggerInternal;           
Microsoft.VisualStudio.Debugger.Interop.IDebugSession3 session = debugger?.CurrentSession;

Я получаю сообщение об ошибке:

ошибка CS0433: тип «IDebugSession3» существует как в «Microsoft.VisualStudio.Debugger.Interop, версии = 8.0.1.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a», так и в «Microsoft.VisualStudio.Debugger.InteropA, версия = 9.0». .0.0, Культура = нейтральный, PublicKeyToken = b03f5f7f11d50a3a '

К сожалению, var не может использоваться во всех случаях для обхода ошибок компилятора, например, когда нужны перечисления. Итак, мой вопрос: (Как) Можно ли использовать внутренний отладчик-Api вместе с Nuget VS-SDK?

Кстати: некоторое время назад у меня была похожая проблема с Microsoft.VisualStudio.Publish.dll и типом Microsoft.VisualStudio.Publish.Framework.PublishManager , который я не обнаружил продолжить расследование.

...