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
        }
    }
}
4

1 に答える 1

1

MEF 拡張機能が vsixmanifest ファイルに登録されていることを確認する必要があります。

于 2015-11-12T19:33:05.447 に答える