2010-01-22 75 views
5

是否可以將StyleCop規則壓制在更全局的內容中......換言之,不僅僅是使用源內聯屬性?StyleCop抑制

回答

8

您可以使用Settings.StyleCop文件禁用某些stylecop規則。例如,stylecop內置的某些內容不符合我們的標準。例如,在我的Settings.StyleCop文件有:「這個」

<Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.ReadabilityRules"> 
    <Rules> 
    <Rule Name="PrefixLocalCallsWithThis"> 
     <RuleSettings> 
     <BooleanProperty Name="Enabled">False</BooleanProperty> 
     </RuleSettings> 
    </Rule> 
    </Rules> 
    <AnalyzerSettings /> 
</Analyzer> 

,使得在一個成員變量或屬性,我們不必有爲每一個人。

+0

而我卻陷入低調的原因? – McAden 2010-04-07 20:13:41

+0

' False'必須是我見過的最傻的xml。 – 2013-09-27 08:48:20

+0

' True' – McAden 2013-09-27 16:48:57

2

絕對!

來源屬性只應用於最罕見的情況下,絕大多數StyleCop配置應該通過StyleCopSettingsEditor完成(右鍵單擊一個項目,選擇「StyleCop設置」,它將打開一個) 。

這將在項目目錄中爲該項目創建一個Settings.StyleCop文件。該文件可以作爲其他答案提及的手工編輯,但我絕不會建議在編輯器中對XML進行黑客攻擊。 StyleCopSettingsEditor絕對是您的選擇。

一旦你修改了你的StyleCop設置,你就沒有完成!
這些設置將只適用於那一個項目,這可能肯定是不夠的。
我個人建議將StyleCop.Settings文件上移一個目錄到解決方案級別,並將其添加爲「解決方案項目」。然後將該文件檢入TFS(或任何您使用的源代碼管理系統)。現在,這些StyleCop設置是整個解決方案的一部分,每個人在獲得「獲取最新」時都會獲得這些設置。如有必要,可以使用項目設置覆蓋解決方案設置(項目級別的StyleCop.Settings文件將覆蓋解決方案級別的文件)。

使您的StyleCop設置更加全局化的唯一方法是在目錄樹中將它們移動到更高的位置(如果您使用的是TFS,則可以將其移動到Team Project級別,因爲在解決方案中執行GetLatest時不可靠級別不會將它們分發給每個人),或者覆蓋StyleCop安裝目錄中的Settings.StyleCop文件(由於無法通過源代碼控制處理,因此必須通過電子郵件發送給所有人或其他人),因此更加不可靠。

總體而言,您可以根據自己的需要爲團隊制定特定StyleCop設置的絕對路徑,您有很多選擇。