我有一个(公司指定的)stylecop设置文件,其中包含一些规则。
这是我放入项目的父文件夹(测试项目,本地,没有源代码控制 - stylecop设置仍然说“与父文件夹中找到的设置文件合并”)。
当运行Stylecop(4.7.42,Rescan All)时,我收到了一些警告,如SA1400,SA1200等,我还没有定义。
另一方面,我有
<Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.MaintainabilityRules">
<Rules>
<Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
<RuleSettings>
<BooleanProperty Name="Enabled">True</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
<AnalyzerSettings />
</Analyzer>
和
i = i * 2 + 3 * 6;
并没有得到任何警告。 (规则说明:http://stylecop.soyuz5.com/SA1407.html。实际上,在此处设置True或False不会产生任何消息。)
此外,打开设置编辑器时,会检查所有设置,但我只在设置文件中指定了一些。
我认为我的设置文件与Stylecop报告的内容没什么关系?!
如何解决?
答案 0 :(得分:1)
我认为你正在寻找:https://stackoverflow.com/a/13434198/1505426
从链接的答案中复制:
默认情况下,您的设置文件会合并到父设置中,这可能会导致一些问题。尝试通过添加以下设置来停止解决方案根目录中的合并:
<GlobalSettings>
<StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
</GlobalSettings>
这将确保StyleCop在所有开发和构建计算机上的行为相同,无论在层次结构中较高的位置配置哪些设置(例如StyleCop应用程序文件夹中的设置)。但是,如果这样做,请确保从不再合并的文件中复制所有必需的设置。