我创建了一个 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 :
并确保在 .csproj 中:
<IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer>
关于visual-studio - 最小的工作 IVsTextViewCreationListener 实现是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25836217/