【发布时间】:2014-01-07 18:39:31
【问题描述】:
我正在尝试让 TeamCity 构建我的 C# 解决方案并执行 StyleCop,如果存在任何违规行为,则构建失败。我希望它像在 Visual Studio 的解决方案资源管理器中右键单击解决方案然后单击 Run StyleCop 时一样执行,但我希望将警告视为错误。
我已经尝试了this answer 中的建议,但在实施时遇到了一些问题。
问题是:
<CreateItem Include="$(SourceFolder)\**\*.cs">
在文件夹结构中包含所有 .cs 文件,并且不尊重每个项目的单独 StyleCop 设置(例如要排除的文件)。
另一种选择是拥有一个build.xml 文件,以便MSBuild 可以引用它。但是,这意味着要维护 XML 文件以及 .sln 文件。我确实找到了this answer,这意味着您可以像这样在 XML 中包含解决方案参考
<include name="MyTopSecretApplication.sln"/>
但由于某种原因,当我将 CreateItem 设置为时,它没有传递编译文件
<CreateItem Include="@(Compile)">
如果设置了condition,理论上应该传递编译文件并尊重包含/排除设置(我猜是因为包括.sln的XML文件意味着编译文件不是' t 通过)。
Condition="('%(Compile.ExcludeFromStyleCop)' != 'true') and ('%(Compile.ExcludeFromSourceAnalysis)' != 'true')"
有没有一种好方法可以让 MSBuild 在 TeamCity 中构建我的解决方案文件,验证是否遵循 StyleCop 规则,并尊重每个项目的 StyleCop 规则?
【问题讨论】:
标签: c# msbuild teamcity stylecop