【问题标题】:Msbuild not producing XML file with code analysisMsbuild 不生成带有代码分析的 XML 文件
【发布时间】:2020-05-02 23:32:57
【问题描述】:

我一直在挖掘,但找不到答案 - 我以为我在 this question 中找到了它,但它在我的系统上不起作用。我能看到的唯一区别是我给 msbuild 一个解决方案文件而不是一个单独的项目文件 - 我必须在项目级别执行它以获得输出吗?我输入的命令行是:

msbuild Interlink.NET.sln /p:RunCodeAnalysis=true /p:CodeAnalysisLogFile=test.xml

显然,test.xml 没有创建,否则我不会问这个问题...

解决方案是 VS2015 中的 C# 项目,以防万一。在 Visual Studio 中,我可以选择“分析 | 对解决方案运行代码分析”,一切正常。我想将分析合并到一个自动构建过程中,并生成一个带有分析的 XML 文件。

【问题讨论】:

  • 你有办法解决这个问题吗?我在解决方案(.sln)文件上运行msbuild 时遇到了同样的问题。代码分析输出写入控制台,但没有写入xml日志文件。
  • 对我来说有两个问题。一方面,缺少一些规则集(未安装),其次,代码分析只能针对平台/配置的某些组合运行。

标签: c# msbuild code-analysis


【解决方案1】:

是的,您使用的命令是正确的,并且适用于 .sln 文件。 在每个组成项目中只会创建一个test.xml 文件。 这些副本将包含该特定项目的静态代码分析报告。 它不会在 .sln 文件级别创建。

【讨论】:

  • 我们能否将 .xml 报告文件更改为在不同的目录级别而不是默认的“bin/Release”目录位置生成?我正在尝试将其集成到 Azure Pipeline 中。示例:/p:CodeAnalysisLogFile=$(Build.SourcesDirectory)\xyz\abc\MyXmlReport.xml
【解决方案2】:

我使用以下参数运行msbuild,并在输出目录中生成了 xml 文件,我给出的文件名被忽略了。它被命名为vc.nativecodeanalysis.all.xml

msbuild Project.sln /p:Configuration=Release /p:Platform=x64 /p:RunCodeAnalysis=true /p:CodeAnalysisLogFile=test.xml /t:Clean;Rebuild

Project.sln 是 VS2017 中的 C++ 项目。

【讨论】:

    【解决方案3】:

    请参考以下论坛

    https://stackoverflow.com/questions/30472569/how-to-get-an-xml-report-out-of-msbuild-code-analysis

    msbuild MyProject.csproj /p:RunCodeAnalysis=true /p:CodeAnalysisLogFile=MyXmlReport.xml

    【讨论】:

      猜你喜欢
      • 2013-03-31
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 2023-04-05
      • 1970-01-01
      • 2013-01-11
      • 2013-11-18
      相关资源
      最近更新 更多