首页 文章

我能够为我的扩展程序获取Roslyn分析器,但未能获得相同诊断程序的codeFix提供程序

提问于
浏览
0

我创建了一个引用Roslyn分析器和代码修复库的vsix项目 . 我能够为我的扩展程序获取分析器,但无法获得相同诊断程序的代码修复提供程序 .

分析器

namespace CSharpDiagnostics
{
    [DiagnosticAnalyzer(LanguageNames.CSharp)]
    public class AsyncMethodNameAnalyzer : SyntaxNodeAnalyzer
    {
        // Analyzer code, which I am able to debug and working fine.
    }
}

CodeFix提供程序

这是上面提到的 AsyncMethodNameAnalyzer 的代码修复 . 看起来 Export 属性无法正常运行 .

namespace CSharpDiagnostics
{
    [ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(AsyncMethodNameCodeFix))]
    public class AsyncMethodNameCodeFix : CodeFixProvider
    {
        public override ImmutableArray<string> FixableDiagnosticIds
        {
            get
            {
                return ImmutableArray.Create(AsyncMethodNameAnalyzer.DiagnosticId);
            }
        }

        public sealed override FixAllProvider GetFixAllProvider()
        {
            return WellKnownFixAllProviders.BatchFixer;
        }

        public override async Task RegisterCodeFixesAsync(CodeFixContext context)
        {
            // My code for fix provider
        }
    }
}

1 回答

  • 1

    您必须确保MEF扩展名已在您的vsixmanifest文件中注册 .

相关问题