安装自定义Visual Studio语言服务

时间:2010-11-11 23:47:22

标签: visual-studio installation languageservice irony

我根据一篇非常有用的文章Writing Your First Visual Studio Language Service的指示,为我的软件工作室的内部脚本语言编写了一个新的Visual Studio语言服务。我的语法很棒,一些简单的goto案例正在运行,还有文本着色。我已经在Irony GrammarExplorer和Visual Studio Experimental Hive中完成了我的测试,我觉得我已经准备好在visual studio中正常使用它并将其部署到其他一些程序员那里进行早期测试和反馈。

问题是我不知道如何安装语言服务。我有这个漂亮的小DLL,可以在Experimental Hive中运行,但是无论如何在我启动visual studio时都能运行它。我在互联网上看了一眼,发现在我看的每个地方都有特别的步骤。也许我只是盲目,或者比我想象的要容易得多,但如果有人能给我详细介绍如何安装我的语言服务,我真的很感激。

提前致谢!

2 个答案:

答案 0 :(得分:5)

在这里获得Tumbleweed徽章后,我设法找到解决方案。人们可能会发现一些有用的重要内容。

首先需要PLK(包装加载键)。它可以在这里生成:http://msdn.microsoft.com/en-us/vstudio/cc655795.aspx 请务必确保输入的所有信息都正确无误,并输入到dll的程序集中。

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

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

可以使用以下命令行从程序包负载分析器中进行更详细的描述: 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,这是通过使用自定义操作在前一段中提供的部署教程中处理的。

无论如何,我希望这能帮助有人和我一样经历同样的过程。

答案 1 :(得分: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的“Codebase”模式,而不是“Assembly”模式。)