是否可以创建代码段或类似的代码来自动化在Visual Studio 2012中将GUID生成和插入到文本编辑器的过程?
我经常需要生成新的GUID(例如,WiX安装程序以及我们自己的内部框架)。

我曾经使用宏来执行此工作,创建一个新的GUID,然后将其插入到当前的ActiveDocument中。我将宏绑定(bind)到Shift-Ctrl G,这样我就可以快速插入一个新ID,而不必启动Create Guid工具并从那里复制。

现在,宏功能已从Visual Studio 2012中删除,因此我需要一种替代方法,我认为可以使用扩展程序,但是我不熟悉开发扩展程序,这种方法似乎有点费劲!

将不胜感激任何建议,否则将不胜感激,将需要指向任何信息的指针以与文本窗口进行交互并插入文本。然后,我可以进行扩展并将其发布在Visual Studio画廊中。

谢谢,
安东尼

编辑添加-提出的任何解决方案都需要可以通过键盘快捷键“触发”。如上所述,我将宏绑定(bind)到Ctrl Shift G,因为在编写代码时很容易记住和按下它。

最佳答案

您可以编写Visual Studio 2012扩展来完成此操作!
如果您以前从未编写过外接程序,那么这是一个入门的简单方法!

以下是创建此类型的加载项的步骤:

  • 在Visual Studio 2012中创建新项目
  • 选择模板-> 其他项目类型-> 可扩展性-> Visual Studio外接程序
  • 为您的项目命名,单击“确定”。
  • 遵循外接程序向导步骤。出现提示时,选中以下框:“是,创建一个'工具'菜单项。 (可选)我也选中“我的加载项将永远不会出现模式UI ...”
  • 完成向导并在 Exec(...)中实现以下代码
    public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
    {
        handled = false;
        if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
        {
            if (commandName == this.GetType().Namespace + ".Connect." + this.GetType().Namespace)
            {
                if (_applicationObject.ActiveDocument != null)
                {
                    TextSelection objSel = (EnvDTE.TextSelection)(_applicationObject.ActiveDocument.Selection);
    
                    objSel.Insert(Guid.NewGuid().ToString());
                }
    
                handled = true;
                return;
            }
        }
    }
    
  • 生成项目,然后将 AddInName.dll AddInName.AddIn AddInName.xml 部署到c:\ users \ username \ documents \ Visual Studio 2012 \ Addins。 [如果Addins文件夹不存在,请创建它]
  • 在Visual Studio 2012中,在工具-> 插件管理器下,选中AddInName旁边的复选框。
  • 重新启动Visual Studio 2012
  • 您现在应该看到在工具下列出的AddInName。 [可能带有笑脸!]
  • 单击此按钮时,它将在光标所在的位置插入一个新的GUID。
  • 通过导航到工具将此文件映射到热键-> 选项-> 环境-> 键盘,搜索AddInName并将其绑定(bind)一个热键。

  • 瞧!热键GUID生成和Visual Studio加载项的一点点知道如何。 :)

    关于visual-studio-2012 - 将新的GUID插入Visual Studio 2012,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12350028/

    10-16 17:53