如何在 Visual Studio 2013 中创建 GUID?我有一个插件在 VS2012 中运行良好,但在 VS2013 中不起作用。我在 VS2012 中找到了这个 Create GUID和这个How to convert VS2012 add ins to VS2013 Packages但无法使其工作(插件不是我的强项 - 我只是编辑 SQL 脚本)。有没有一种简单的方法可以恢复此功能?
6 回答
如果您使用的是ReSharper(强烈推荐),您可以通过键入nguid
并按 来在任何地方创建新的 GUID Tab。
实际上,你可以使用 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 中一样。
我也想知道我应该怎么做。我看到了以下示例: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,并且能够以通常的方式为其创建快捷键。
只需使用 VS 包管理控制台中的 PowerShell:
- 切换到包管理器控制台(或者您可以打开 PowerShell cmd)。
- 执行
[guid]::NewGuid()
。
结果:
Guid
----
61dabfd8-9151-46f5-8d92-72306044d844
我更喜欢使用这个解决方案:
_TUCHAR *guidStr = 0x00;
GUID *pguid = 0x00;
pguid = 新的 GUID;
CoCreateGuid(pguid);
// 将 GUID 转换为字符串 UuidToString(pguid, &guidStr);
删除 pguid;