3

我得到不同風味的5k + StyleCop警告。我正在使用Visual Studio 2010 Express版本,因此沒有菜單選項可用於設置StyleCop,或者在Visual Studio中禁止警告。剩下的選項是編輯StyleCop.Settings我試圖做的atm文件,我使用的StyleCop版本是4.7。如何在StyleCop.Settings文件中添加全局警告規則抑制?

我StyleCop.Settings文件看起來像這樣:

<StyleCopSettings Version="4.3"> 
    <GlobalSettings> 
    <CollectionProperty Name="DeprecatedWords"> 
     <Value>preprocessor,pre-processor</Value> 
     <Value>shortlived,short-lived</Value> 
    </CollectionProperty> 
    </GlobalSettings> 
    <Parsers> 
    <Parser ParserId="StyleCop.CSharp.CsParser"> 
     <ParserSettings> 
     <CollectionProperty Name="GeneratedFileFilters"> 
      <Value>\.g\.cs$</Value> 
      <Value>\.generated\.cs$</Value> 
      <Value>\.g\.i\.cs$</Value> 
     </CollectionProperty> 
     </ParserSettings> 
    </Parser> 
    </Parsers> 
    <Analyzers> 
    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules"> 
     <AnalyzerSettings> 
     <CollectionProperty Name="Hungarian"> 
      <Value>as</Value> 
      <Value>do</Value> 
      <Value>id</Value> 
      <Value>if</Value> 
      <Value>in</Value> 
      <Value>is</Value> 
      <Value>my</Value> 
      <Value>no</Value> 
      <Value>on</Value> 
      <Value>to</Value> 
      <Value>ui</Value> 
     </CollectionProperty> 
     </AnalyzerSettings> 
    </Analyzer> 
    </Analyzers> 
</StyleCopSettings> 

我怎麼會需要編輯設置文件,以抑制不到CSharp.OrderingCSharp.Documentation所有的警告,或做它的代碼通過代碼(SA1202, SA1600)?我不介意任何解決方案。

SA1202 : CSharp.Ordering : All private methods must be placed after all public methods.  
SA1600 : CSharp.Documentation : The method must have a documentation header.  

回答

6

解決自己,在你的了StyleCop安裝文件夾,同一文件夾中StyleCop.Settings文件(在我的情況下,它C:\Program Files\StyleCop 4.7)。
應該有一個名爲StyleCopSettingsEditor.exe的文件。將StyleCop.Settings拖放到StyleCopSettingsEditor.exe上應該啓動應用程序並打開下面截圖中顯示的窗口。

enter image description here

您可以按組或特定代碼編輯設置。

對於那些因爲某種原因無法使用編輯器的人,下面的XML顯示編輯後StyleCop.Settings文件的外觀。

<StyleCopSettings Version="105"> 
    <GlobalSettings> 
    <CollectionProperty Name="DeprecatedWords"> 
     <Value>preprocessor,pre-processor</Value> 
     <Value>shortlived,short-lived</Value> 
    </CollectionProperty> 
    </GlobalSettings> 
    <Parsers> 
    <Parser ParserId="StyleCop.CSharp.CsParser"> 
     <ParserSettings> 
     <CollectionProperty Name="GeneratedFileFilters"> 
      <Value>\.g\.cs$</Value> 
      <Value>\.generated\.cs$</Value> 
      <Value>\.g\.i\.cs$</Value> 
     </CollectionProperty> 
     </ParserSettings> 
    </Parser> 
    </Parsers> 
    <Analyzers> 
    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules"> 
     <AnalyzerSettings> 
     <CollectionProperty Name="Hungarian"> 
      <Value>as</Value> 
      <Value>do</Value> 
      <Value>id</Value> 
      <Value>if</Value> 
      <Value>in</Value> 
      <Value>is</Value> 
      <Value>my</Value> 
      <Value>no</Value> 
      <Value>on</Value> 
      <Value>to</Value> 
      <Value>ui</Value> 
     </CollectionProperty> 
     </AnalyzerSettings> 
    </Analyzer> 
    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules"> 
     <Rules> 
     <Rule Name="ElementsMustBeDocumented"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="PartialElementsMustBeDocumented"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="EnumerationItemsMustBeDocumented"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="DocumentationMustContainValidXml"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementDocumentationMustHaveSummary"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="PartialElementDocumentationMustHaveSummary"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementDocumentationMustHaveSummaryText"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="PartialElementDocumentationMustHaveSummaryText"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementDocumentationMustNotHaveDefaultSummary"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementParametersMustBeDocumented"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementParameterDocumentationMustMatchElementParameters"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementParameterDocumentationMustDeclareParameterName"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementParameterDocumentationMustHaveText"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementReturnValueMustBeDocumented"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementReturnValueDocumentationMustHaveText"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="VoidReturnValueMustNotBeDocumented"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="GenericTypeParametersMustBeDocumented"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="GenericTypeParametersMustBeDocumentedPartialClass"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="GenericTypeParameterDocumentationMustHaveText"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="PropertySummaryDocumentationMustMatchAccessors"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementDocumentationMustNotBeCopiedAndPasted"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="DocumentationTextMustNotBeEmpty"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="DocumentationTextMustContainWhitespace"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="DocumentationMustMeetCharacterPercentage"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="DocumentationHeadersMustNotContainBlankLines"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="IncludedDocumentationXPathDoesNotExist"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="IncludeNodeDoesNotContainValidFileAndPath"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="InheritDocMustBeUsedWithInheritingClass"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementDocumentationMustBeSpelledCorrectly"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="FileMustHaveHeader"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="FileHeaderMustShowCopyright"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="FileHeaderMustHaveCopyrightText"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="FileHeaderMustContainFileName"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="FileHeaderFileNameDocumentationMustMatchFileName"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="FileHeaderMustHaveValidCompanyText"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     </Rules> 
     <AnalyzerSettings /> 
    </Analyzer> 
    <Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules"> 
     <Rules> 
     <Rule Name="UsingDirectivesMustBePlacedWithinNamespace"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementsMustAppearInTheCorrectOrder"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ElementsMustBeOrderedByAccess"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ConstantsMustAppearBeforeFields"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="StaticElementsMustAppearBeforeInstanceElements"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="DeclarationKeywordsMustFollowOrder"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="ProtectedMustComeBeforeInternal"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="PropertyAccessorsMustFollowOrder"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="EventAccessorsMustFollowOrder"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     <Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements"> 
      <RuleSettings> 
      <BooleanProperty Name="Enabled">False</BooleanProperty> 
      </RuleSettings> 
     </Rule> 
     </Rules> 
     <AnalyzerSettings /> 
    </Analyzer> 
    </Analyzers> 
</StyleCopSettings>