2016-12-31 226 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