21

如何在 Visual Studio 2013 中创建 GUID?我有一个插件在 VS2012 中运行良好,但在 VS2013 中不起作用。我在 VS2012 中找到了这个 Create GUID和这个How to convert VS2012 add ins to VS2013 Packages但无法使其工作(插件不是我的强项 - 我只是编辑 SQL 脚本)。有没有一种简单的方法可以恢复此功能?

4

6 回答 6

49

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

于 2013-10-09T21:35:53.887 回答
19

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

使用菜单 TOOLS -> External Tools... 添加:

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

例如

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

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

于 2014-04-16T03:12:25.373 回答
5

最好的工具/插件是:http: //visualstudiogallery.msdn.microsoft.com/22795583-5cc9-4681-af8e-6084f3441655

于 2014-06-06T01:53:15.450 回答
3

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

尽管文档说插件在 VS2013 中已被弃用,但它们似乎确实可以工作(我使用的是 VS2013 Ulitmate v 12.0.21005.1 REL)。您可以按照上一篇文章中的说明进行操作。

我还创建了一个相对简单的包。使用如何:将插件转换为 VS 包我能够创建包。

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

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,并且能够以通常的方式为其创建快捷键。

于 2013-10-24T10:13:53.660 回答
2

只需使用 VS 包管理控制台中的 PowerShell:

  1. 切换到包管理器控制台(或者您可以打开 PowerShell cmd)。
  2. 执行[guid]::NewGuid()

结果:

Guid                                
----                                
61dabfd8-9151-46f5-8d92-72306044d844
于 2016-10-07T08:50:05.133 回答
0

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

_TUCHAR *guidStr = 0x00;

GUID *pguid = 0x00;

pguid = 新的 GUID;

CoCreateGuid(pguid);

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

删除 pguid;

于 2016-01-12T10:09:10.023 回答