你怎么能强迫StyleCop忽略一个文件?

时间:2013-05-30 16:51:39

标签: c# visual-studio-2010 code-formatting stylecop

我在我的代码中包含了第三方.cs文件。它不符合StyleCop的规则,但我迫切需要能够将它从StyleCop的检查中排除,但到目前为止我找到的方法都没有。

这里记录了三种方法:http://sethflowers.com/blog/force-stylecop-to-ignore-a-file/ ..但这些方法似乎都不适用于StyleCop 4.7

最有用的是.csproj中的这个方法:

<Compile Include="AViolatingFile.cs">
    <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>

但是,尽管添加了文件,但StyleCop在解析此文件时仍会导致编译错误。

5 个答案:

答案 0 :(得分:22)

// <auto-generated/>

把它放在班级的顶部

Style cop忽略自动生成的代码

答案 1 :(得分:2)

我之前使用过stylecop,我相信你必须在你的csproj文件中使用以下行:

<Import Project="$(MSBuildExtensionsPath)\StyleCop\v4.6\StyleCop.targets" Condition="Exists('$(MSBuildExtensionsPath)\StyleCop\v4.6\StyleCop.targets')" />

您还需要将xml声明中的版本号更改为已安装的版本号。

希望这有帮助。

答案 2 :(得分:1)

Atm,我正在从Xamarin Studio运行StyleCop 4.7.49,并且我有一些隐藏的自动生成文件在我的控制之外(看着你¬netfx-System.StringFormatWith)......

我的解决方案是禁用该文件的所有规则......怎么做?

您必须修改文件Settings.StyleCop并在StyleCopSettings标记内插入以下内容

<SourceFileList>
    <SourceFile>HideousClass.cs</SourceFile>
    <Settings>
        <GlobalSettings>
        <BooleanProperty Name="RulesEnabledByDefault">False</BooleanProperty>
        </GlobalSettings>
    </Settings>
</SourceFileList>

使用您想要的文件更改HideousClass.cs。如果要一次为各种文件设置规则,也可以有多个SourceFile标记。

取自Using File Lists at StyleCop at CodePlex.com(请参阅“示例”下的“禁用文件子集的所有规则”)。

如果您只想为某些文件启用或禁用某些规则,则可以使用与上述类似的方法。

答案 3 :(得分:0)

任何仍在这方面拔头发的人,我都做了以下事情:

.editorconfig

示例:

[SpecFlow.Plus.Runner.AssemblyHooks.cs]
dotnet_diagnostic.SA1633.severity = none
dotnet_diagnostic.CS1591.severity = none

答案 4 :(得分:-2)

// <auto-generated/>

把它放在命名空间的顶部,那应该很好。