0

我正在尝试创建一个视觉工作室插件,我需要做的一件事是与状态栏进行交互。根据MSN:状态栏,这应该是一个相当简单的过程。但是,我无法让它在IVsStatusbar对象上正确解析。

该示例建议遵循一个非常标准的过程,例如:

    IVsStatusbar StatusBar = (IVsStatusbar)GetService(typeof(SVsStatusbar));

但是 Visual Studio 不会解析引用并告诉我IVsStatusbar不存在。如果我右键单击自动解析,它只会告诉我为它生成一个新类。

我知道它需要Microsoft.VisualStudio.Shell.Interop我添加,但仍然没有运气。我已经尝试了 dll 的 v 10.0 和 v 11.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;
4

1 回答 1

1

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

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

于 2013-05-21T19:39:52.773 回答