我试图让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文件意味着编译的文件没有通过。
Condition="('%(Compile.ExcludeFromStyleCop)' != 'true') and ('%(Compile.ExcludeFromSourceAnalysis)' != 'true')"
有没有一种方法可以让MSBuild在TeamCity中构建我的解决方案文件,验证是否遵循StyleCop规则,并尊重每个项目的StyleCop规则?
答案 0 :(得分:2)