VS2010鼠处理器扩-不工作
-
21-09-2019 - |
题
我在尝试一些工作室2010年扩展,在那里,我需要工作,与该事件暴露IMouseProcessor.
我可以告诉文档,我应该创造一个IMouseProcessorProvider和出口使用的是MEF,以便使它可以自动取Visual Studio.
我创建了这类:
[Export(typeof(IMouseProcessorProvider))]
[ContentType("code")]
internal sealed class MouseProcessorFactory : IMouseProcessorProvider
{
public IMouseProcessor GetAssociatedProcessor(IWpfTextView wpfTextView)
{
return new MouseProcessor();
}
}
当我运行的实验实例,我的扩展是可见的,在扩展经理。但是我的自鼠处理器提供者是永远不会被称为。我失去了一些东西什么我做错了什么?
解决方案
采取直接从这个(没有地雷)网站:
延伸Visual Studio2010UML设计师–第1部分:开始
有关测试2错误的解决方法
不幸的是,有几个错误,在当前的有关测试2,我们必须围绕工作。我已经告诉他们将被固定在一个更新版本,但直到那时,让我带你通过这个项目的清理要求,使这项工作:
步骤1–调整。csproj文件
- 右侧击你的项目,并选择"卸载"项目。
- 右击再次在您的项目和选择"的编辑Yourprojectname.csproj"
- 在顶层的房地产集团,寻找的XML标签
<IncludeAssemblyInVSIXContainer>
.它将被置于错误的。改变它,真的。 - 保存。csproj文件和重新装载到Visual Studio.
步骤2–调整。此文件
- 右键文件"的来源。扩展。此"和选择视码
在该文件的底部的一节添加下面的线。(是的,那些垂直柱都很重要。)
<MefComponent>|Yourprojectname|</MefComponent>
保存和关闭的文件。
其他提示
它花了我一段时间才能找到完全解决这个问题,因此我将发布完整的解决方案:
- 正如所建议的280Z28,有一个错误的Beta SDK for2.你需要编辑。csproj手动,以确保你会被包括在产生安的文件。
- 作为JaredPar回答,TextViewRole attribtute应当添加到IMouseProcessorProvider执行情况。
- 最后,IMouseProcessorProvider还应当装饰的一名属性。
所有在所有,这个代码的工作:
[Export(typeof(IMouseProcessorProvider))]
[ContentType("code")]
[TextViewRole(PredefinedTextViewRoles.Editable)]
[Name("mouseproc")]
internal sealed class MouseProcessorFactory : IMouseProcessorProvider
{
public IMouseProcessor GetAssociatedProcessor(IWpfTextView wpfTextView)
{
return new MouseProcessor();
}
}
我相信你需要添加一个TextViewRole
属性为好。
[TextViewRole(PredefinedTextViewRoles.Editable)]
不隶属于 StackOverflow