C# 制作Visual Studio外接程序时如何实现IVsStatusbar

C# 制作Visual Studio外接程序时如何实现IVsStatusbar,c#,visual-studio-2012,C#,Visual Studio 2012,我正在尝试创建一个VisualStudio插件,我需要做的一件事就是与状态栏交互。据认为,这应该是一个相当简单的过程。但是,我无法在IVsStatusbar对象上正确解析它 该示例建议遵循相当标准的流程,例如: IVsStatusbar StatusBar = (IVsStatusbar)GetService(typeof(SVsStatusbar)); 但是VisualStudio不会解析引用,并告诉我IVsStatusbar不存在。如果我右键单击自动解析,它只会告诉我为它生成一个新

我正在尝试创建一个VisualStudio插件,我需要做的一件事就是与状态栏交互。据认为,这应该是一个相当简单的过程。但是,我无法在
IVsStatusbar
对象上正确解析它

该示例建议遵循相当标准的流程,例如:

    IVsStatusbar StatusBar = (IVsStatusbar)GetService(typeof(SVsStatusbar));
但是VisualStudio不会解析引用,并告诉我
IVsStatusbar
不存在。如果我右键单击自动解析,它只会告诉我为它生成一个新类

我知道它需要我添加的
Microsoft.VisualStudio.Shell.Interop
,但仍然不走运。我试过dll的V10.0和V11.0,但都不起作用。它是否不再存在于命名空间中?或者我是否应该使用其他引用/对象

我应该有我需要的所有参考资料:

    using System;
    using Extensibility;
    using EnvDTE;
    using EnvDTE80;
    using Microsoft.VisualStudio.CommandBars;
    using Microsoft.VisualStudio.Shell.Interop;
    using System.Resources;
    using System.Reflection;
    using System.Globalization;
    using Microsoft.VisualStudio.Shell;

您需要引用Microsoft.VisualStudio.Shell.Interop.xx.dll的所有版本,而不仅仅是其中一个版本。它们创建了一个新的程序集,并添加了接口,而不是随着时间的推移而更改接口,这些接口是服务在以前版本的基础上实现的


编辑:请注意,这仅适用于互操作程序集。对于其他程序集,例如Microsoft.VisualStudio.Shell,您只需要参考10.0版(对于Visual Studio 2010或2010+2012扩展)或11.0版(对于仅Visual Studio 2012扩展)。

啊,我想我也需要2005和2008的版本?是的,
IVsStatusBar
是在Visual Studio 2005引入的
Microsoft.VisualStudio.Shell.Interop.dll
中定义的。果然!谢谢你的帮助,我担心我会在这件事上碰壁。