TL;博士
VSIX PackageAnalyzer项目项问题描述:
有很多教程(甚至官方文档)都是从项目模板Analyzer with Code Fix (NuGet + VSIX)开始的。但是,在最新版本的.NET编译器平台中,我没有这样的项目模板。
所以,我创建了一个VSIX project。然后,我创建了一个Analyzer项目项。注意,我没有CodeFix项,因为我不需要修复代码,只显示一些警告。
这就是我所拥有的(我做了一些改变):
[DiagnosticAnalyzer(LanguageNames.CSharp)]
public class MyAnalyzer : DiagnosticAnalyzer
{
public const string DiagnosticId = "MyAnalyzer";
internal static readonly LocalizableString Title = "MyAnalyzer Title";
internal static readonly LocalizableString MessageFormat = "MyAnalyzer";
internal const string Category = "MyAnalyzer Category";
internal static DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category, DiagnosticSeverity.Warning, true);
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
=> ImmutableArray.Create(Rule);
public override void Initialize(AnalysisContext context)
{
context.RegisterSyntaxNodeAction(Analyze, SyntaxKind.IfStatement);
}
private void Analyze(SyntaxNodeAnalysisContext context)
{
IfStatementSyntax ifStatement = context.Node as IfStatementSyntax;
if(ifStatement == null)
return;
context.ReportDiagnostic(
Diagnostic.Create(
Rule,
context.Node.GetLocation(),
"Hey, this is an IF statement."));
}
}
}就这样。该项目仅包含此文件、.vsixmanifest和packages.config。
当我以调试模式(使用F5)运行该项目时,将加载实验实例,并且我可以在Extensions and Updates中看到该包。但是,没有命中断点(没有加载符号),分析器在分析器列表中(在解决方案资源管理器中)不可见。
然后我做以下几件事:
然后,突然,符号被加载,调试器在断点上停止。
在实验实例中有什么方法可以自动加载分析器吗?我是不是漏掉了什么配置?
发布于 2016-05-16 08:53:54
https://stackoverflow.com/questions/37248644
复制相似问题