FXcop 和 Msbuild 与 CruiseControl.NET

Posted

技术标签:

【中文标题】FXcop 和 Msbuild 与 CruiseControl.NET【英文标题】:FXcop and Msbuild with CruiseControl.NET 【发布时间】:2011-06-20 13:57:42 【问题描述】:

我是新手,请多多包涵。我想知道如何让 MSbuild 和 FXcop 通宵运行,如果他们没有完成就失败了,我会通知用户。我被告知它们都可以集成到 CruiseControl.NET 中。我目前打算看看 CruiseControl.NET 是否有能力通知用户构建失败。 (由于错误只完成了一半)。如果有人能够轻松地做到这一点,那么如果您能引导我思考或引导我查看文档,那就太好了。

感谢您抽出宝贵时间,丹尼斯·海登。 睡觉

【问题讨论】:

【参考方案1】:

您可以使用<MsBuild> 任务来构建您的项目。 MsBuild 在任务部分中可用。

<msbuild>
      <executable>
        C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe
      </executable>
      <workingDirectory>
        project path
      </workingDirectory>
      <projectFile>project.sln</projectFile>
      <buildArgs>
        /noconsolelogger
        /p:Configuration=Release
      </buildArgs>
      <targets>Build</targets>
      <timeout>900</timeout>
      <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>

    </msbuild>

在任务部分有一个&lt;exec&gt; 标签,可以用来运行FxCop。

   <exec>
          <executable>c:\Program Files\Microsoft FxCop 1.36\FxCopCmd.exe</executable>
          <baseDirectory>project path</baseDirectory>
          <buildTimeoutSeconds>300</buildTimeoutSeconds>
 </exec>

请查看以下链接

ccnet1 和 ccnet2

【讨论】:

这段代码很有帮助,但我不知道它是否成功。我想我应该解释一下我什至无法让 MSbuild 工作。没有人在写一本我可以遵循的指南。代码在哪里它是如何工作的,任何人都可以解释这一点或发布一个易于理解的信息的链接。谢谢【参考方案2】:

在文档的 Tasks 部分中,您应该会看到 MsBuild 的条目。要运行 FxCop,您可以通过 MsBuild 运行它,也可以使用 Executable 任务。

【讨论】:

【参考方案3】:

还有一个很好的 MSBuild Community Tasks 集合,它们支持 FxCop 以及一整套在创建 CI 环境时派上用场的其他工具。

【讨论】:

以上是关于FXcop 和 Msbuild 与 CruiseControl.NET的主要内容,如果未能解决你的问题,请参考以下文章

MSBuild 中的 FxCop 和禁用 CA0060 异常

MSBuild 无法找到 FxCop 二进制文件

Visual Studio 代码分析与 StyleCop + FxCop

是否可以在未安装 VS 的情况下从 MSBuild 命令行运行 FxCop 代码分析?

FxCop 不尊重我的排除

通过命令行从 FXCop 中排除规则