我正在尝试为包含多个模块的项目生成Code Metrics数据。当我在Visual Studio 2019中生成代码度量分析时,我得到了项目的有效结果。我将我的命令行生成基于微软文档:https://docs.microsoft.com/en-us/visualstudio/code-quality/how-to-generate-code-metrics-data?view=vs-2019我有以下命令行脚本作为构建后事件运行:
msbuild SIMSMobile.sln /t:Metrics /p:MetricsOutputFile="MetricsOutput.xml" /p:Configuration="Debugging Release"就在一个多月前,这种方法在一个xml文件中给出了有效的结果,如Microsoft文档中所述。最近我发现我的结果不再有效。生成的文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<CodeMetricsReport Version="1.0">
<Targets>
<Target Name="SIMSMobileView.csproj">
<Assembly Name="SIMSMobileView, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<Metrics>
<Metric Name="MaintainabilityIndex" Value="100" />
<Metric Name="CyclomaticComplexity" Value="0" />
<Metric Name="ClassCoupling" Value="0" />
<Metric Name="DepthOfInheritance" Value="0" />
<Metric Name="SourceLines" Value="0" />
<Metric Name="ExecutableLines" Value="0" />
</Metrics>
</Assembly>
</Target>
</Targets>
</CodeMetricsReport>我不明白这是怎么发生的。我没有改变我的脚本或者其他什么。我尝试检出我知道当时正在工作的提交,但运行我的命令行指标生成得到与上面相同的空xml文件。
我尝试使用Metrics.exe方法生成我的输出指标文件,如微软文档中所述,这给出了与上面相同的空文件。我已经将Microsoft.CodeAnalysis.Analyzers Nuget包更新到了最新的稳定版本,但这没有任何作用。在VS 2019中对我的解决方案运行Code Metrics会给我带来有意义的结果。为什么使用命令行和生成输出文件不能得到相同的结果?
发布于 2021-05-07 01:30:16
我在Windows服务器上也有类似的行为。在我设置了环境变量MSBuildSDKsPath之后,Metrics.exe再次生成正确的指标文件。
set MSBuildSDKsPath=C:\Program Files\dotnet\sdk\3.1.302\Sdks我仍然不知道之前它为什么有效,但当我找到确切的根本原因时,我会让你知道的。
https://stackoverflow.com/questions/67150469
复制相似问题