C# 从命令行生成代码度量文件不会产生任何结果

C# 从命令行生成代码度量文件不会产生任何结果,c#,visual-studio,xamarin.android,C#,Visual Studio,Xamarin.android,我正在尝试为包含多个模块的项目生成代码度量数据。当我在VisualStudio2019中生成代码度量分析时,我得到了项目的有效结果。 我的命令行生成基于Microsoft文档: 我将以下命令行脚本作为生成后事件运行: msbuild SIMSMobile.sln /t:Metrics /p:MetricsOutputFile="MetricsOutput.xml" /p:Configuration="Debugging Release" 这在一个多月前起

我正在尝试为包含多个模块的项目生成代码度量数据。当我在VisualStudio2019中生成代码度量分析时,我得到了项目的有效结果。 我的命令行生成基于Microsoft文档: 我将以下命令行脚本作为生成后事件运行:

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文档中所述,该文件提供了与上述相同的空文件。 我已经将Microsoft.CodeAnalysis.Analyzers Nuget包更新为最新的稳定版本,但没有任何效果。 在VS 2019中对我的解决方案运行代码度量给了我有意义的结果。
为什么我不能从使用命令行和生成输出文件中获得相同的结果?

我在Windows服务器上也有类似的行为。 设置环境变量
MSBuildSDKsPath
后,Metrics.exe将再次生成正确的度量文件

set MSBuildSDKsPath=C:\Program Files\dotnet\sdk\3.1.302\Sdks

我仍然不知道它以前工作的确切原因,但我会在找到确切的根本原因后通知您。

我已尝试将环境变量设置为系统上的路径,即C:\Program Files\dotnet\sdk\5.0.202\sdk,但这并没有改变我的输出。仍在获取原始帖子中显示的输出文件。@user1845860很抱歉,它不适用于您。我找到了暗示。也许你可以在那里找到信息来找到你的原因。