2013-05-30 63 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採取的措施(見「禁用所有規則文件的子集」下的「示例」)。

類似的方法來一個上面可以看出,如果要啓用或禁用只有一些文件的一些規則中使用。