我被要求将 StyleCop 以如下方式集成到我们的 CI 构建过程中:
- 我们(大)解决方案中的单个项目文件不受影响
- 我不必使用任何 3rd 方工具
第一个要求(我还没有完全理解)是因为我们不想直接在整个解决方案上运行 StyleCop。显然,当 StyleCop 在 VS 中运行时,它会忽略某些指定要忽略的文件的属性。正因为如此,如果我们让它在开发机器上运行,我们将不断受到数千个我们尚未准备好处理的违规行为的打击。所以底线是我们希望能够只在构建服务器上运行它。
我们的构建环境目前包括:
巡航控制 > 执行 msbuild 的 nant 任务(通过 exec)
南特任务如下:
<target name="buildSolution">
<echo message="Building solution..." />
<exec program="C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe"
commandline="${Project.SolutionFile} /t:Rebuild /p:Configuration=${Project.SolutionBuildConfiguration} /v:q" workingdir="." />
</target>
当我第一次看到这个时,我认为这将是一个以类似于执行 msbuild 的方式执行 StyleCop 的简单案例。
然而,StyleCop 是作为一组 dll 提供的......
所以这意味着我不能做我想做的事......我想......
我今天用谷歌搜索的所有文章都说“使用 StyleCopCmd”,由于 3rd 方工具限制,我也不能这样做。
我查看了该工具,它似乎实现了一个自定义的 nant 任务,该任务启动 StyleCopConsole,挂钩到几个事件并输出格式良好的报告。但是为了能够证明在内部创建任何工具的合理性,我需要能够充分解释为什么我不能在 nant 配置文件中实现我想要的。或以任何其他不涉及创建或使用工具的方式。理想情况下,如果我不必编写或使用工具,它会更快。
所以我的问题是,这可能吗?