1

我已经编写了一个代码分析器作为我的 Visual Studio 包的一部分。

这与此页面上的说明相对应,只是它是我现有包的一部分而不是独立分析器。

分析器注册自身以分析 SyntaxNode 类型 StringLiteralExpression 和 InterpolatedStringExpression。

public override void Initialize ( AnalysisContext context )
{
  context.RegisterSyntaxNodeAction ( AnalyzeString, SyntaxKind.StringLiteralExpression, SyntaxKind.InterpolatedStringExpression ) ;
}

如此处所述

默认情况下,实时代码分析仅针对 Visual Studio 中打开的文件执行分析器。

这是对的。我的分析器在打开的文件上运行。

同一页面继续:

手动运行代码分析

  • 在解决方案资源管理器中,单击该项目。

  • 在分析菜单上,单击对项目名称运行代码分析。

代码分析将在后台开始执行。您应该在左下角的 Visual Studio 状态栏中看到消息 Running code analysis for ...。代码分析完成后,状态消息将更改为Code analysis completed for。错误列表将很快刷新所有代码分析诊断

在这种情况下,我的分析不会运行。

我在构造函数、SupportedDiagnostics 属性 get、Initialize 函数和分析函数本身中放置了断点。如果我通过“分析”菜单(或通过解决方案资源管理器中的上下文菜单)手动启动代码分析,则不会输入任何内容。

是否需要一些额外的条件来激活代码分析器以进行手动代码分析?

4

1 回答 1

0

我也遇到了这个奇怪的问题。就我而言,我使用了“错误的”开发人员命令提示符。我在安装 VS2017 后安装了 VS Build 工具,它还安装了第二个开发人员命令提示符。

2 开发者命令提示符的开始菜单快捷方式如下:

A:BuildTools(不起作用!)

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat"

B. VS 专业(有效!)

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\VsDevCmd.bat"

我花了整个下午试图弄清楚这一点!:-(

于 2021-01-15T11:01:32.043 回答