【问题标题】:Specifying the Code Analysis output file for multiple projects为多个项目指定代码分析输出文件
【发布时间】:2014-02-13 03:36:56
【问题描述】:

我正在尝试使用 MSBuild 构建解决方案,我想为每个项目启动代码分析并将所有输出放置到某个目录中。我正在运行的命令是:

msbuild.exe MySolution.sln /p:RunCodeAnalysis=True;CodeAnalysisLogFile=c:\BuildOutput\code-analysis.xml

我遇到的问题是代码分析覆盖了解决方案中每个项目的 xml 文件,所以我只获得了最后一个项目的输出。有没有办法告诉 MSBuild 附加输出以进行代码分析或为每个输出生成唯一文件?

注意:我宁愿不必使用 CodeAnalysisLogFile xml 标记更新每个 CSProj 文件,但如果没有其他方法,那么我会这样做。

【问题讨论】:

  • 我什至无法生成要生成的日志文件,甚至无法为每个项目覆盖一个日志文件。 :-(

标签: c# .net msbuild


【解决方案1】:

创建或使用现有的通用“Imports.Props”文件导入,并在其中包含 CodeAnalysisLog 的定义。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <CodeAnalysisLogFile>$(OutputPath)\CodeAnalysis\$(AssemblyName).$(Platform).$(Configuration).xml</CodeAnalysisLogFile>
  </PropertyGroup>
</Project>

然后在你的项目文件中导入这个通用的 props 文件:

<Import Project="$(PropertyOfSourceFolder)\CodeAnalysis.props" />

【讨论】:

    【解决方案2】:

    您可以简单地将CodeAnalysisLogFile 参数设置为这样的相对路径:

    CodeAnalysisLogFile=code-analysis.xml

    这将为每个项目的代码分析创建单独的日志文件。该文件将单独出现在每个项目目录中。

    我似乎无法找到一种方法让它们都在一个日志文件中...似乎应该支持的东西,只是一个日志文件中单个解决方案的所有错误。

    【讨论】:

    • 虽然这似乎不适用于这个特定的问题,但这就是我想要的。谢谢
    猜你喜欢
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多