2016-12-31 619 views
5

使用了StyleCop根據這一this article在Asp.net核心使用了StyleCop,在Asp.net核心

1)增加以下到project.json文件的相關部分:

"StyleCop.Analyzers": { 
    "version": "1.0.0", 
    "type": "build" 
} 

並建立該項目。

2)創建stylecop.json並添加就可以了你的配置,這是我stylecop.json內容:

{ 
    "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", 
    "settings": { 
    "documentationRules": { 
     "documentInterfaces": true, 
     "documentInternalMembers": false  
    } 
    } 
} 

3)在project.json文件buildOptions節點下的以下內容:

"additionalArguments": ["/additionalfile:path/to/stylecop.json" ] 

但我有一些錯誤:問題是什麼?

enter image description here

+1

什麼是stylecop.json的路徑? stylecop.json位於解決方案的哪個位置,您將不得不在附加文件中提及。 – Sanket

+0

此外,雖然建設項目確保錯誤列表輸出設置爲「Build + IntelliSense」 – Sanket

+1

我更改addtionalArguments到'「additionalArguments」:[「stylecop.json」]',但它給了我另一個錯誤:'類型或命名空間定義或文件結束' – pejman

回答

2

簡答

的時候了StyleCop找不到你stylecop.json那些NullReferenceException錯誤發生。這裏是related GitHub issue

要修復它(假設你的stylecop.json是在你的項目的根目錄)路徑更改爲這樣:

"additionalArguments": [ 
    "/additionalfile:./stylecop.json" 
] 

全部工作實例

目錄結構

bin 
obj 
Program.cs 
project.json 
project.lock.json 
stylecop.json 
StyleCop.ruleset 

項目.json

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "debugType": "portable", 
    "emitEntryPoint": true, 
    "warningsAsErrors": true, 
    "nowarn": [ 
     "1591" 
    ], 
    "xmlDoc": true, 
    "additionalArguments": [ 
     "/ruleset:./StyleCop.ruleset", 
     "/additionalfile:./stylecop.json" <----- This is probably the problem. 
    ] 
    }, 
    "dependencies": { 
    "StyleCop.Analyzers": { 
     "type": "build", 
     "version": "1.0.0" 
    } 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.1" 
     } 
     } 
    } 
    } 
} 

stylecop.json

{ 
    "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", 
    "settings": { 
    "documentationRules": { 
     "documentExposedElements": false, 
     "documentInterfaces": false 
    } 
    } 
} 

StyleCop.ruleset

<?xml version="1.0" encoding="utf-8"?> 
<RuleSet Name="New Rule Set" Description=" " ToolsVersion="14.0"> 
    <Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers"> 
    <Rule Id="SA0000" Action="Warning" /> 
    <Rule Id="SA1005" Action="Warning" /> 
    <Rule Id="SA1208" Action="Warning" /> 
    <Rule Id="SA1028" Action="Warning" /> 
    <Rule Id="SA1210" Action="Warning" /> 
    </Rules> 
</RuleSet> 

克隆和運行示例

git clone [email protected]:bigfont/StackOverflow.git 
cd .\StackOverflow\AspNetCoreStyleCop\ 
dotnet restore 
dotnet build 
+0

當我想創建'StyleCop.ruleset'它給了我錯誤'數據在根目錄級別無效「。 – pejman

+0

該錯誤表示規則集的XML無效。 @pejman –

+0

爲什麼?我照你說的做,它不讓我編輯它,並給我同樣的錯誤 – pejman