netcore將StyleCop.Analyzers自定義規則應用到整個解決方案

概述

編碼中會用一些基於Roslyn的編碼規範工具 如:StyleCop.Analyzers,但不是每一項規則都是適合自己或團隊,所以都會對規則進行微調,但是StyleCop.Analyzers規則默認針對單個項目,我們肯定希望規則統一管理,防止項目間配置不同導致約束不一致。本文將介紹如何將自定義規則應用到整個解決方案。


  1. 利用Nuget安裝StyleCop.Analyzers
    在這裏插入圖片描述
    安裝成功後能在分析器下面看到多了兩項,所有規則在下圖的StyleCop.Analyzers中
    在這裏插入圖片描述
  2. 展開StyleCop.Analyzers 選擇想要配置的規則右鍵設置規則集嚴重性。
    在這裏插入圖片描述
    設置成功過後項目下會產生一個.ruleset結尾的規則文件。(PS~ .net framework的項目則右鍵StyleCop.Analyzers 會有一個打開規則設置的選項能生成此文件)
    在這裏插入圖片描述
  3. 有了規則文件後我們就要把所有項目的StyleCop.Analyzers配置指向這同一個規則文件即可,.net framework的項目->屬性->代碼分析手動選擇文件即可,真是很方便,netcore我卻沒找到代碼分析選項,可能目前還沒支持手動選擇配置(如果有知道確切爲什麼請告知一下)。重點來了,此時我們右鍵項目編輯csproj。添加上規則文件位置即可。
    在這裏插入圖片描述
    打開後默認如下圖,有兩條配置都指向了相對位置的.ruleset文件。
    在這裏插入圖片描述
    爲了工程的規範性推薦大家在解決方案下新建目錄放置此類規則文件。下圖我把之前的ruleset文件放到解決方案下config目錄並且重命名爲StyleCop.releset。然後在工程中也添加了此項(這步可以省,只不過感覺工程配置能在vs中能看舒服些)。
    在這裏插入圖片描述
    此時我們配置如下圖,設置相對目錄,兩個點表示上一層,我的項目文件夾距離解決方案config有兩層所以寫了兩遍。
    在這裏插入圖片描述
  4. 此時我們可以每個項目安裝StyleCop.Analyzers,然後直接修改項目.csproj文件指向規則文件。在任何一個項目中更改的規則都會保存到同一個規則文件裏面,其他項目也會直接生效配置。
  5. 如果對每個解決方案的項目都要修改配置感到麻煩,可以考慮去StyleCop.Analyzers的github 拉取源碼更改默認配置或增加新的規則,然後自己發佈nuget,以後可以統一版本控制每個解決方案的編碼規則。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章