IVsUIShell5的双重定义

时间:2013-11-08 08:52:34

标签: c# visual-studio visual-studio-2012 com-interop visual-studio-2013

我正在尝试简单地执行以下操作:

this.GetService(typeof(IVsUIShell5))

但是我没有机会获得这项服务,因为我收到了这个错误:

  

嵌入式互操作类型'Microsoft.VisualStudio.Shell.Interop.IVsUIShell5'在“Microsoft.VisualStudio.Shell.Interop.11.0”和“Microsoft.VisualStudio.ReferenceManager.Providers.dll”中定义。调试时不支持对此类对象的某些操作。在调试或构建“嵌入互操作类型”属性设置为false时,请考虑将此对象强制转换为“动态”。

有什么想法吗?我甚至无法理解错误。

嵌入互操作类型属性设置为False

1 个答案:

答案 0 :(得分:1)

我以这种方式解决了。

using IVsUIShell5 = Microsoft.VisualStudio.Shell.Interop.IVsUIShell5;
......
IVsUIShell5 shell5 = (IVsUIShell5)this.GetService(typeof(IVsUIShell));

我希望它有所帮助!