2

我按照非常有用的文章编写您的第一个 Visual Studio 语言服务的指导,为我的软件工作室的内部脚本语言编写了一个新的 Visual Studio 语言服务。我的语法运行良好,一些简单的 goto 案例启动并运行,以及文本着色。我已经在 Irony GrammarExplorer 和 Visual Studio Experimental Hive 中完成了我的测试,我觉得我已经准备好在 Visual Studio 中正常使用它,并将它部署给其他一些程序员进行一些早期测试和反馈。

问题是我不知道如何安装语言服务。我有一个在 Experimental Hive 中工作的漂亮的小 DLL,但不知道如何在我启动 Visual Studio 时运行它。我浏览了整个互联网,发现我所看到的任何地方都掩盖了特定的步骤。也许我只是个盲人,或者它比我想象的要容易得多,但如果有人能给我详细说明如何安装我的语言服务的步骤,我将不胜感激。

提前致谢!

4

2 回答 2

5

在这里获得 Tumbleweed 徽章后,我设法找到了解决方案。有几个重要的部分人们可能会觉得有用。

首先需要一个 PLK(包加载密钥)。它可以在这里生成:http: //msdn.microsoft.com/en-us/vstudio/cc655795.aspx 请确保您输入的所有信息都是正确的,并且已输入到dll 的程序集中。

PLK 通过添加到解决方案的 rsx 文件来安装,通常作为项目 104,然后在代码的 ProvideLoadKey 属性中匹配该项目编号。

接下来测试 PLK 有点麻烦。提示可以在这里找到:http: //msdn.microsoft.com/en-us/library/bb164677%28v=VS.90%29.aspx我强烈建议从一开始就首先使用带有实验性配置单元的 /noVSIP 开关. 我发现使用 /log 并没有真正的帮助,一旦你安装了你的包并且仍然有 PLK 问题,使用包负载分析器会更好。

可以使用以下命令行对包负载分析器进行更详细的描述:devenv /command tools.analyzepackage /analyzeargs {your GUID} analyzepkg.txt

一旦您感到满意并准备好部署,在 MSDN http://msdn.microsoft.com/en-us/library/bb458038%28VS.90%29.aspx上有一个教程似乎比它应该被埋没更多

我发现对 VS SDK bin 目录中的 RegPkg 工具感到好奇的一件事是,它会导致我的包在它存在的开发解决方案中正常加载,但不会在其他解决方案中加载。似乎有一个额外的步骤来调用我缺少的 devenv /setup,这在我在上一段中通过使用自定义操作提供的部署教程中得到了解决。

无论如何,我希望这可以帮助与我经历相同过程的人。

于 2010-11-22T22:34:14.450 回答
3

我花了几个小时碰到的另一件事是 MSDN 教程没有提到:如果您要部署到 64 位计算机,那么给出的说明将不起作用。经过相当多的搜索后,我偶然发现了这个论坛帖子的一半,解释了它: http ://social.msdn.microsoft.com/Forums/en/vsx/thread/989c5bea-3dd0-4e60-891a-f8f006e1b9a2

MSDN 教程说要在此处安装您的注册表项,并且 regpkg.exe 也会在此处生成注册表项:

HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\...

但在 64 位计算机上,Visual Studio 不是从那里加载其设置,而是从这里加载:

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\9.0\...

注意那里有额外的“Wow6432Node”;注册表项在其他方面是相同的,但路径中的那个额外的“Wow6432Node”。因此,在 64 位机器上,您要么需要使用那些扩展的注册表项,要么可以将混合 32/64 位 .dll 安装到两组注册表项而不会产生不良影响。我有一个 .reg 文件,可以安装到两组密钥上,而且效果很好。

希望这有助于节省其他人一些时间!

(对于它的价值,我对 regpkg 使用了“代码库”模式,而不是“汇编”模式。)

于 2011-08-04T22:44:53.377 回答