我在我的代码中包含了第三方.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在解析此文件时仍会导致编译错误。
答案 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/>
把它放在命名空间的顶部,那应该很好。