将新GUID插入Visual Studio 2013

时间:2013-10-09 21:13:09

标签: guid visual-studio-2013

如何在Visual Studio 2013中创建GUID?我有一个在VS2012中运行良好但在VS2013中无效的插件。我发现这个Create GUID in VS2012How to convert VS2012 add ins to VS2013 Packages但是无法使它工作(添加ins不是我的强项 - 我只是编辑SQL脚本)。有没有一种简单的方法可以取回这个功能?

6 个答案:

答案 0 :(得分:48)

如果您正在使用ReSharper(强烈推荐),则可以通过键入nguid并按 Tab 在任何地方创建新的GUID。

答案 1 :(得分:19)

实际上,你可以使用guidgen.exe,它应该安装VS。

使用菜单TOOLS - >外部工具...添加:

%Installation Path%\Microsoft Visual Studio 12.0\Common7\Tools\guidgen.exe

e.g。

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\guidgen.exe

给出“创建GUID”的标题,就像它在VS2010中一样。

答案 2 :(得分:5)

答案 3 :(得分:3)

我也想知道我应该怎么做。我看到了以下示例:Inserting a Guid for VS 2012。对于VS2013,您必须安装SDK。完成后,您将看到包的模板项目项以及添加新项目时的插件。

尽管文档说在VS2013中不推荐使用addins,但它们看起来确实有效(我使用的是VS2013 Ulitmate v 12.0.21005.1 REL)。您可以按照上一篇文章中的说明进行操作。

我还创建了一个相对简单的包。使用如何:Convert an Addin to a VS Package我能够创建包。

在文章中,我添加了以下使用语句:

using EnvDTE;
using EnvDTE80;

然后我将MenuItemCallback方法更改为以下内容:

private void MenuItemCallback(object sender, EventArgs e)
        {
            DTE2 dte = (DTE2)GetService(typeof(DTE));

            if (dte.ActiveDocument != null)
            {
                TextSelection objSel = (EnvDTE.TextSelection)(dte.ActiveDocument.Selection);

                objSel.Insert(Guid.NewGuid().ToString());
            }
        }

构建项目后,我转到bin \ Debug文件夹并启动了vsix文件(在我的例子中为GuidPackage.vsix)。这安装了包以在IDE中使用。

我现在有一个菜单项可以在我的代码中插入guid,并且能够以通常的方式为它创建快捷键。

答案 4 :(得分:2)

只需使用VS Package Manage Console中的PowerShell:

  1. 切换到Package Manager控制台(或者您可以打开PowerShell cmd)。
  2. 执行[guid]::NewGuid()
  3. 结果:

    Guid                                
    ----                                
    61dabfd8-9151-46f5-8d92-72306044d844
    

答案 5 :(得分:0)

我更喜欢使用这个解决方案:

  

_TUCHAR * guidStr = 0x00;

     

GUID * pguid = 0x00;

     

pguid = new GUID;

     

CoCreateGuid(pguid);

     

//将GUID转换为字符串UuidToString(pguid,& guidStr);

     

删除pguid;