My goal is to create a "Visual Studio Extensibility" which adds a "Npm install" Context Menu Item to a package.json file.
So far, this works great if I open a solution, because I've added the [ProvideAutoLoad(Microsoft.VisualStudio.Shell.Interop.UIContextGuids.SolutionExists)]
attribute to the Package class.
But it's not working if I open a Web Site (File->Open->Web Site...). Do you have any idea, how I can AutoLoad the Package.cs for every UI Context?
Edit: More information after further investigation: If I save the Web Site as a Solution, the "Initialize"-Method is called. But the BeforeQueryStatus of the MenuItem of package.json is not called. The solution structure looks like this:
-Solution
-project
-package.json
If I add the package.json directly into the solution, the Context Menu Item appears. Structure:
-Solution
-Solution Items
-package.json
-project
Any ideas?
Add the below code to your package definition:
[ProvideAutoLoad(VSConstants.UICONTEXT.NoSolution_string)]
[ProvideAutoLoad(VSConstants.UICONTEXT.SolutionExists_string)]
[ProvideAutoLoad(VSConstants.UICONTEXT.SolutionHasMultipleProjects_string)]
[ProvideAutoLoad(VSConstants.UICONTEXT.SolutionHasSingleProject_string)]
Your package should load in all scenarios.
You can add the second ProvideAutoLoad attribute with the NoSolution value to load your package in all contexts.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With