2013-05-30 59 views
16

我在我的代码中包含了第三方的.cs文件。它不符合StyleCop的规则,但我迫切需要能够将它从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

等等,你有没有尝试**所有**? –

+0

这是ExcludeFromStyleCop方法我真的很想工作,因为它是唯一实现的方法。最后两种方法会涉及到每个文件的更改,每当更新时就会中断。第二种方法也行不通。 – NickG

+0

尝试第三种方法,就好像它的工作原理一样,在改变时添加一个快速程序很容易。 –

回答

2

我用了StyleCop而回,以及和我认为你必须使用下面一行在你的csproj文件:

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

您还需要在XML声明中改变的版本号,无论你已安装。

希望这会有所帮助。

+0

我已经有一个类似的行,我认为它也会做同样的事情:(我只是使用不同的目标文件路径)。 – NickG

+0

我的行显示为: '' – NickG

11
// <auto-generated/> 

把这个在班上名列前茅

风格警察忽略自动生成的代码

+3

通常情况下,第三方代码不能或不应该编辑,所以这对这种情况没有用处。 –

+0

优秀的ole chap! – John

1

ATM,我从Xamarin Studio中运行了StyleCop 49年4月7日,和我有一些可怕的自动生成的文件在我的控制之外(看着你¬¬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采取的措施(见“禁用所有规则文件的子集”下的“示例”)。

类似的方法来一个上面可以看出,如果要启用或禁用只有一些文件的一些规则中使用。