是否可以向Visual Studio 2012添加特定于解决方案的工具

时间:2012-12-18 13:39:51

标签: visual-studio-2012 extensibility

您可以对VS2012中的.SLN / .CSPROJ文件执行某些操作,以便在解决方案资源管理器中右键单击解决方案/项目时,上下文菜单中会有一个新项目运行您指定的工具?

我知道您可以在“工具”菜单中添加自定义条目,但在这种情况下,这些工具特定于该特定解决方案。

1 个答案:

答案 0 :(得分:0)

您可以从加载项

Solution上下文菜单添加按钮,如下所示
Microsoft.VisualStudio.CommandBars.CommandBar menuBarCommandBar = ((Microsoft.VisualStudio.CommandBars.CommandBars)_applicationObject.CommandBars)["Solution"];

try
{
    //Add a command to the Commands collection:
    Command command = commands.AddNamedCommand2(_addInInstance, "MyAddinMenuBar", "MyAddinMenuBar", "Executes the command for MyAddinMenuBar", true, 59, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported + (int)vsCommandStatus.vsCommandStatusEnabled, (int)vsCommandStyle.vsCommandStylePictAndText, vsCommandControlType.vsCommandControlTypeButton);

    //Add a control for the command to the solution context menu:
    if (command != null)
    {
        command.AddControl(menuBarCommandBar, 1);
    }
}
catch (System.ArgumentException)
{
    //  safely ignore the exception.
}

不同解决方案的工具规范应由您的加载项在内部处理。您可以提取解决方案的完整路径(来自_applicationObject.Solution.FullName)以及所包含项目的属性(来自_applicationObject.Solution.Projects)。

如果您使用VSPackage,则应定义vsct文件以添加命令和菜单项。