visual-studio-2010 - 如何创建运行 VSIX 方法的快捷方式?

标签 visual-studio-2010 vsix vs-extensibility visual-studio-extensions

请看 this问题。

最初的问题已经解决,我的扩展中有一个方法。
我希望当用户安装扩展程序时,也应该安装一个键盘快捷键,并且应该在按下时运行该方法。

我该怎么做呢?

最佳答案

您可以将快捷方式添加到 .vsct 文件。当您生成新扩展并说它将具有菜单命令时,该文件会在向导中自动创建。手动添加:

  • 创建 MyCommands.vsct
  • 将文件属性设置为 VSCTCompile
  • 卸载项目,右键编辑项目:

  • <VSCTCompile Include="MyCommands.vsct">
        <ResourceName>Menus.ctmenu</ResourceName>
        <SubType>Designer</SubType>
    </VSCTCompile>
    
  • 声明您的项目将有菜单和快捷方式:

  • [ProvideMenuResource("Menus.ctmenu",1)]
    public sealed class MyPackage : Package
    
  • 添加键绑定(bind)部分:

  • <KeyBindings>
       <KeyBinding guid="yourCmdSet" id="cmdAwesome"
        editor="guidVSStd97"
        key1="VK_F7" mod1="Control Alt"
        key2="VK_F1">
       </KeyBinding>
    </KeyBindings>
    
  • 在你的包中。初始化:

  • // Add our command handlers for menu/shortcut (commands must exist in the .vsct file)
    OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
    if (null != mcs)
    {
        //// Create the command for the menu item.
        var menuCommandID = new CommandID(GuidList.yourCmdSet,(int)PkgCmdIDList.cmdAwesome);
        var menuItem = new MenuCommand((sender, evt) =>
        {
            // Do stuff
        }
    }
    

    更多资源:
  • http://dotneteers.net/blogs/divedeeper/archive/2008/04/17/LearnVSXNowPart18A.aspx
  • http://msdn.microsoft.com/de-de/library/bb165138(v=vs.90).aspx
  • http://dotneteers.net/blogs/divedeeper/archive/2008/02/22/LearnVSXNowPart13.aspx
  • 关于visual-studio-2010 - 如何创建运行 VSIX 方法的快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392622/

    相关文章:

    c# - 在 Visual Studio 源 View 中显示图像或控件

    c++ - 为 arm 设置 visual studio express

    c++ - Visual Studio 2010 是否支持 Unicode 中的 C++ 源代码和字符串文字中的 Unicode 字符

    c# - Visual Studio 扩展找不到所需的程序集

    c# - DialogPage - 字符串数组未保留

    wpf - VS 2012 扩展中的标准控件

    c++ - Cstring 到 BYTE 的转换

    visual-studio-2010 - Visual Studio 2012 停靠窗口 Tab 键顺序

    visual-studio - Visual Studio不安装.vsix文件

    c# - 如何获取特定 OutputWindowPane 的 IVsTextView?