如何在没有语言服务的情况下将代码片段添加到VSIX MEF编辑器扩展

时间:2014-12-03 18:46:56

标签: c# visual-studio-2012 mef visual-studio-extensions vsix

我正在尝试使用VS2012的MEF编辑器扩展来实现代码片段,我遵循了演练"实现代码片段"来自链接:http://msdn.microsoft.com/en-us/library/ff926100(v=vs.110).aspx

该实现基于演练显示语句完成。此功能正常。

"实施代码片段的第一部分"是"创建和注册代码片段"这不起作用。在该部分的最后是第8步:

构建并运行项目。在项目运行时启动的Visual Studio实验实例中,您刚注册的代码段应以TestSnippets语言显示在代码片段管理器中。

没有错误,但Code Snippets Manager不显示TestSnippets语言,因此片段不存在。我已经被困了几个星期了,并且找不到资源来理解这个问题。

对于如何解决这个问题的任何想法将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

我意识到这并不容易,但我现在已经搞乱了VSIX很长一段时间了。如果你想解决这些问题,你需要使用reflector或dotPeek进行核心调试。

通过调试,我的意思是,你需要逐行调试所有MEF管道的实际执行代码,以及使用MEF的内容。

基本上,只需找出" Code Snippets Manager"正在做它的工作,然后看看为什么你的语言没有被拉入。

基本上,你需要问一个问题:

1)为什么Code Snippets Manager没有显示TestSnippets语言?

然后,您只需要通过调试回答它,找到Code Snippets Manager决定显示语言的位置,并了解它为什么不出现在那里。

我已经通过这种方式解决了很多问题,我很感激大部分代码都是C#,这意味着可以轻松地逐步执行代码并查看执行的位置。< / p>