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