首页 > 解决方案 > Microsoft.VisualStudio.SDK + Microsoft.VisualStudio.Debugger.Interop.Internal = 错误

问题描述

由于访问 VS 调试器的“标准”Api 似乎极为有限,因此我在使用 VS-SDK nuget 时手动添加了对Microsoft.VisualStudio.Debugger.Interop.Internal.dll的引用。当我使用此代码时,它会编译并运行:

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:“Microsoft.VisualStudio.Debugger.Interop, Version=8.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”和“Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0”中都存在“IDebugSession3”类型,文化=中立,PublicKeyToken=b03f5f7f11d50a3a'

遗憾的是,不能在所有情况下都使用var来规避编译器错误,例如当需要枚举时。所以,我的问题是:(如何)内部调试器-Api 可以与 VS-SDK nuget 一起使用吗?

顺便说一句:不久前,我在Microsoft.VisualStudio.Publish.dll和Microsoft.VisualStudio.Publish.Framework.PublishManager类型方面遇到了类似的问题,我没有进一步调查。

标签: visual-studio-extensionsvs-extensibility

解决方案


推荐阅读