我创建了一个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的第二个实例中的文件确实不会触发它。
我做错了什么?
答案 0 :(得分:4)
您需要为您的班级指定ContentType和TextViewRole:
[Microsoft.VisualStudio.Utilities.ContentType("text")]
[Microsoft.VisualStudio.Text.Editor.TextViewRole(Microsoft.VisualStudio.Text.Editor.PredefinedTextViewRoles.Editable)]
也不要忘记在扩展程序清单中声明MefComponent资产:
并确保在.csproj:
<IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer>