You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用CodeRush后Visual Studio构建出现诊断分析器内部错误

解决Visual Studio+CodeRush构建时"Diagnostic analyzer runner is currently unavailable"错误

问题详情

  • 环境:Visual Studio 17.12.3 + CodeRush for VS 2022 24.2.3
  • 症状:启用CodeRush执行构建时弹出错误提示:

    Diagnostic analyzer runner is currently unavailable due to an internal error (with CodeRush)

  • 关联堆栈跟踪:
StreamJsonRpc.RemoteInvocationException: Argument contains duplicate analyzer instances. (Parameter 'analyzers')
   at StreamJsonRpc.JsonRpc.<InvokeCoreAsync>d__156`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.CodeAnalysis.Remote.BrokeredServiceConnection`1.<TryInvokeAsync>d__18`1.MoveNext()
RPC server exception:
System.ArgumentException: Argument contains duplicate analyzer instances. (Parameter 'analyzers')
      at Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers.VerifyAnalyzersArgumentForStaticApis(ImmutableArray`1 analyzers, Boolean allowDefaultOrEmpty)
      at Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers..ctor(Compilation compilation, ImmutableArray`1 analyzers, CompilationWithAnalyzersOptions analysisOptions)
      at Microsoft.CodeAnalysis.Remote.Diagnostics.DiagnosticComputer.GetDiagnosticsAsync(ImmutableArray`1 projectAnalyzerIds, ImmutableArray`1 hostAnalyzerIds, Boolean reportSuppressedDiagnostics, Boolean logPerformanceInfo, Boolean getTelemetryInfo, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.Diagnostics.DiagnosticComputer.GetNormalPriorityDiagnosticsAsync(ImmutableArray`1 projectAnalyzerIds, ImmutableArray`1 hostAnalyzerIds, Boolean reportSuppressedDiagnostics, Boolean logPerformanceInfo, Boolean getTelemetryInfo, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.RemoteDiagnosticAnalyzerService.<>c__DisplayClass3_0.<<CalculateDiagnosticsAsync>b__0>d.MoveNext()
   --- End of stack trace from previous location ---
      at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.<>c__DisplayClass7_0`1.<<RunWithSolutionAsync>g__ProcessSolutionAsync|1>d.MoveNext()
   --- End of stack trace from previous location ---
      at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.RunWithSolutionAsync[T](AssetProvider assetProvider, Checksum solutionChecksum, Boolean updatePrimaryBranch, Func`2 implementation, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.RunWithSolutionAsync[T](AssetProvider assetProvider, Checksum solutionChecksum, Boolean updatePrimaryBranch, Func`2 implementation, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.BrokeredServiceBase.RunWithSolutionAsync[T](Checksum solutionChecksum, Func`2 implementation, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.RemoteDiagnosticAnalyzerService.CalculateDiagnosticsAsync(Checksum solutionChecksum, DiagnosticArguments arguments, CancellationToken cancellationToken)
  • 备注:禁用CodeRush后错误消失,需保留CodeRush功能并解决问题。

解决方案

1. 重置CodeRush设置

  • 打开Visual Studio,点击顶部菜单栏的CodeRush -> Settings
  • 在设置窗口右上角,点击齿轮图标,选择Reset All Settings
  • 确认重置后重启Visual Studio,再次尝试构建操作

2. 更新CodeRush至最新版本

  • 打开Visual Studio,依次点击Extensions -> Manage Extensions
  • 在Installed标签页找到CodeRush,检查是否有可用更新
  • 安装更新后重启Visual Studio,验证问题是否解决

3. 移除重复的分析器引用

  • 打开项目的.csproj文件,检查是否存在重复的分析器NuGet包引用(尤其是CodeRush相关的分析器),删除重复条目
  • 或右键项目 -> Properties -> Code Analysis,查看启用的分析器列表,移除重复的CodeRush分析器项

4. 清理Visual Studio缓存

  • 完全关闭Visual Studio
  • 删除以下目录的缓存文件:
    • %LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ComponentModelCache
    • %USERPROFILE%\AppData\Local\Temp\VisualStudioBuildTemp
  • 重启Visual Studio后尝试构建

5. 修复Visual Studio安装

  • 打开Visual Studio Installer,选择当前使用的VS版本,点击Modify
  • 选择Repair选项,等待修复完成后重启Visual Studio,再进行测试

内容的提问来源于stack exchange,提问作者Kirsten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:15:24