我有一个针对Visual Studio 2012的VSIX项目,它工作正常。
但是,当我将项目更新为针对Visual Studio 2013时。
没有调用跟随函数“ VsTextViewCreated”

using Microsoft.VisualStudio.Editor;
using Microsoft.VisualStudio.Language.Intellisense;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.TextManager.Interop;
using Microsoft.VisualStudio.Utilities;
using SnippetsUI;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace VSIXProject1
{
    class CompletionHandler
    {
        [Export(typeof(IVsTextViewCreationListener))]
        [ContentType("CSharp")]
        [Name("CodeCompletionTypeZero")]
        [TextViewRole(PredefinedTextViewRoles.Editable)]
        internal class CompletionHandlerProvider : IVsTextViewCreationListener
        {
            [Import]
            internal IVsEditorAdaptersFactoryService _adapterService = null;
            [Import]
            internal ICompletionBroker _completionBroker { get; set; }
            [Import]
            internal SVsServiceProvider _serviceProvider { get; set; }

            public void VsTextViewCreated(IVsTextView textViewAdapter)
            {
                Printer.Print("VsTextViewCreated");
                ITextView textView = _adapterService.GetWpfTextView(textViewAdapter);
                if (textView == null)
                {
                    return;
                }
                return;
            }
        }
    }
}


此外,如果我想在此行设置一个断点:“ Printer.Print(” VsTextViewCreated“);”
我得到“断点当前不会被命中。没有为该文档加载任何符号”

谢谢所有读过本文的人:)

最佳答案

删除

“ C:\ Users \您的用户名\ AppData \ Local \ yourCompanyName”

“ C:\ Users \您的用户名\ AppData \ Local \ Microsoft \ VisualStudio \ 12.0Exp”

另外,修改VSIXxShellExtensions清单文件,并将包标记为“ MEFComponent”。

这也是一个很好的主题:VSIX extension for VS2012 not running when debugging

关于c# - 从2012年到2013年VSIX项目更新后,IVsTextViewCreationListener不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20188402/

10-11 03:34