c# - 每个 UI 上下文的 Visual Studio 可扩展性 : ProvideAutoLoad for Package. cs

标签 c# visual-studio visual-studio-2013 visual-studio-extensions

我的目标是创建一个“Visual Studio Extensibility”,它将“Npm install”上下文菜单项添加到 package.json 文件中。

到目前为止,如果我打开一个解决方案,效果很好,因为我已经将 [ProvideAutoLoad(Microsoft.VisualStudio.Shell.Interop.UIContextGuids.SolutionExists)] 属性添加到 Package 类。

但是如果我打开一个网站(文件->打开->网站...),它就不起作用了。您知道如何为每个 UI 上下文自动加载 Package.cs 吗?

编辑:进一步调查后的更多信息:如果我将网站另存为解决方案,则会调用“初始化”方法。但是没有调用package.json的MenuItem的BeforeQueryStatus。解决方案结构如下所示:

-Solution
 -project
  -package.json

如果我将 package.json 直接添加到解决方案中,则会出现上下文菜单项。结构:

-Solution
 -Solution Items
  -package.json
 -project

有什么想法吗?

最佳答案

将以下代码添加到您的包定义中:

[ProvideAutoLoad(VSConstants.UICONTEXT.NoSolution_string)]
[ProvideAutoLoad(VSConstants.UICONTEXT.SolutionExists_string)]
[ProvideAutoLoad(VSConstants.UICONTEXT.SolutionHasMultipleProjects_string)]
[ProvideAutoLoad(VSConstants.UICONTEXT.SolutionHasSingleProject_string)]

您的包应该在所有情况下加载。

关于c# - 每个 UI 上下文的 Visual Studio 可扩展性 : ProvideAutoLoad for Package. cs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27687954/

相关文章:

c# - C# 中的电子邮件通知系统

android - 类似于visual studio region的eclipse手动代码折叠

visual-studio-2013 - 我可以在 Visual Studio Professional 2013 中创建 Outlook 2010 插件吗?

C# 确定平面文件中的 EOL 字符

c# - 在 .NET 中使用 Go CD

c# - JavaScript 是/否前面的 ASP.NET 按钮事件

vb.net - 使用EmguCV从IP摄像机捕获帧

visual-studio - TFS 2013 + GIT, checkin 政策

c# - 尝试从 Visual Studio 2013 update 4 发布 azure webjob

visual-studio-2013 - Visual Studio 2013 和 TFS Build 2015 : Devenv. exe 无法生成 MSI 文件