我的目标是创建一个“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/