visual-studio - 最小的工作 IVsTextViewCreationListener 实现是什么?

标签 visual-studio visual-studio-2013 mef visual-studio-extensions

我创建了一个 VISX 项目,并编写了这段代码:

using Microsoft.VisualStudio.Editor;
using Microsoft.VisualStudio.TextManager.Interop;
using System.ComponentModel.Composition;

namespace MyExtension
{
    [Export(typeof(IVsTextViewCreationListener))]
    public class Main : IVsTextViewCreationListener
    {
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
        }
    }
}

如果我在 VsTextViewCreated 中放置一个断点方法,Visual Studio 通知我它永远不会被击中。在调试器中启动的第二个 Visual Studio 实例中打开文件确实不会触发它。

我究竟做错了什么?

最佳答案

您需要为您的类指定 ContentType 和 TextViewRole:

[Microsoft.VisualStudio.Utilities.ContentType("text")]
[Microsoft.VisualStudio.Text.Editor.TextViewRole(Microsoft.VisualStudio.Text.Editor.PredefinedTextViewRoles.Editable)]

另外不要忘记在扩展 list 中声明 MefComponent Assets :

enter image description here

并确保在 .csproj 中:
<IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer>

关于visual-studio - 最小的工作 IVsTextViewCreationListener 实现是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25836217/

相关文章:

git - Visual Studio Team Explorer 丢失了 Visual Studio Online 的 Git 授权

github - 如何在 NuGet 上自动发布我的 GitHub 分支?

c# - 是否可以更改 MEF 创建导入对象的方式?

prism - 我在哪里向单个区域添加行为?

visual-studio-2010 - VS2010工具栏加载时间太长

c++ - 为什么 Visual Studio 会去定义一些 undefined variable ?

visual-studio - 为什么我应该使用 Visual Studio 服务引用而不是 svcutil?

c# - OpenPop 删除消息

c# - 如何在编译时自动替换字符串(C# DLL)

wpf - 如何使用 MEF 和 MVVM 将 PRISM 模块添加到工具栏