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

如何用NDepend加载n天前基线分析结果并与最新分析对比?

如何加载NDepend中n天前基线对应的分析结果?

我需要对比两类NDepend分析结果:

  • 最新的分析结果
  • n天前(例如15天)创建的基线对应的分析结果

目前编写的X#代码只能获取最新结果,TryGetMostRecentAnalysisResultRef仅加载最新分析结果,不清楚如何获取设置的基线对应的结果:

VAR ndProject := ndManager.LoadProject(ndprojPath)
LOCAL analysisResultRef AS IAnalysisResultRef
ndProject:BaselineDuringAnalysis:AnalysisResultMode := BaselineAnalysisResultMode.NDaysAgoAnalysisResult
ndProject:BaselineDuringAnalysis:AnalysisResultCreatedNDaysAgo := 15
VAR result := ndProject:TryGetMostRecentAnalysisResultRef(OUT analysisResultRef)
VAR refDate1 := analysisResultRef:Date
Console.WriteLine(i"Date1: {refDate1}")

解决方案

要获取n天前基线对应的分析结果,需通过项目的历史分析结果集合进行筛选,而非依赖TryGetMostRecentAnalysisResultRef。具体步骤如下:

  1. 获取所有历史分析结果引用
VAR allAnalysisResults := ndProject:GetAllAnalysisResultRefs()
  1. 筛选符合n天前条件的基线结果
    计算目标日期范围,筛选出最接近目标日期且不晚于该日期的分析结果:
LOCAL targetDate := DateTime.Today.AddDays(-15)
VAR baselineResult := allAnalysisResults
    :OrderByDescending(Function(r) r.Date)
    :FirstOrDefault(Function(r) r.Date.Date <= targetDate.Date)
  1. 获取最新分析结果
LOCAL latestAnalysisRef AS IAnalysisResultRef
VAR gotLatest := ndProject:TryGetMostRecentAnalysisResultRef(OUT latestAnalysisRef)
VAR latestResult := gotLatest ? latestAnalysisRef : NULL
  1. 对比两类结果
IF baselineResult <> NULL AND latestResult <> NULL
    Console.WriteLine(i"基线分析日期: {baselineResult.Date}")
    Console.WriteLine(i"最新分析日期: {latestResult.Date}")
    // 在此添加你的结果对比逻辑
ELSE
    Console.WriteLine("未找到符合条件的分析结果")
ENDIF

注意:BaselineDuringAnalysis的设置仅用于后续分析过程中关联基线,并不会直接返回对应的分析结果引用,必须通过筛选历史结果集的方式获取目标基线。

内容的提问来源于stack exchange,提问作者Peter M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:50:14