[Tools] 為專案加上程式碼風格檢查 StyleCop.Analyzers

為專案加上程式碼風格檢查 StyleCop.Analyzers

團隊N個人就有N種開發風格,加上StryleCop強制風格統一吧


1.Install Nuget Package

dotnet add package StyleCop.Analyzers

2.Build一下專案,所有不符合規則的都會出現Warning,訊息中的[SAXXXX]就是規則的編號,可以從這邊查詢更詳細的內容

3.若想讓他不是Warn而是Error,可以在專案檔 .csproj 內加上這行,相關設定可以參考這邊

<TreatWarningsAsErrors>true</TreatWarningsAsErrors>

4.這樣只要不符合規則,編譯就會失敗了

5.若想要忽略掉某些規則,可以在專案內加上設定檔 .ruleset,指定要忽略的規則

<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="StyleCopRules" Description="StyleCop Analyzers" ToolsVersion="15.0">
    <Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
        <Rule Id="SA0001" Action="None"/>
        <Rule Id="SA1003" Action="None"/>
    </Rules>
</RuleSet>

6.還需要調整專案檔 .csproj,讓他讀取設定

    <PropertyGroup>
        <TargetFramework>netcoreapp3.1</TargetFramework>
        <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
        <CodeAnalysisRuleSet>My.ruleset</CodeAnalysisRuleSet>
    </PropertyGroup>

7.若有多個專案要讀同一個設定檔,可以把設定檔放在專案外層,記得也要一併調整 .csproj 的內的設定檔路徑

8.讓設定跟著專案跑,這樣也不用擔心團隊每個人都要額外設定Code Style了


StyleCopAnalyzers https://github.com/DotNetAnalyzers/StyleCopAnalyzers

Sample Code https://github.com/ianChen806/StyleCopAnalyzersSample