【问题标题】:Automatically load a VSPackage visual studio extension when a solution loads?加载解决方案时自动加载 VSPackage Visual Studio 扩展?
【发布时间】:2014-03-27 11:41:35
【问题描述】:

我创建了一个 Visual Studio 扩展并绑定行为来构建事件。我希望它在用户加载解决方案时自动加载。我该怎么做?

【问题讨论】:

    标签: visual-studio vspackage


    【解决方案1】:

    您需要在继承自 Package 的类上使用属性 ProvideAutoLoadAttribute,并将表示加载解决方案的 UI 上下文的 guid 传递给它:

    [PackageRegistration(UseManagedResourcesOnly = true)]
    // This attribute is used to register the information needed to show this package
    // in the Help/About dialog of Visual Studio.
    [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)]
    [Guid(GuidList.guidHookIntoBuildEventsPkgString)]
    [ProvideAutoLoadAttribute("{F1536EF8-92EC-443C-9ED7-FDADF150DA82}")]
    public sealed class HookIntoBuildEventsPackage : Package
    {
       ...
    }
    

    更多 UI 上下文可以在这里找到: http://sandrinodimattia.net/blog/posts/some-clarity-on-auto-loading-visual-studio-2010-extensions/

    【讨论】:

    • 如果您不想硬编码 GUID,也可以使用 UIContextGuids。例如,如果解决方案存在,则自动加载:[ProvideAutoLoad(UIContextGuids.SolutionExists)]
    • 如果打开了具有特定名称的解决方案,您知道如何自动加载包吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多