2016-12-31 3 views
5

Согласно этому this article для использования StyleCop в 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) следующие под узлом buildOptions в файле project.json:

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

но я получил некоторые ошибки: в чем проблема?

enter image description here

+1

Какой путь stylecop.json? Где stylecop.json находится в вашем решении, этот путь вам придется упомянуть в дополнительном файле. – Sanket

+0

Кроме того, при создании проекта убедитесь, что для вывода журнала ошибок установлено значение 'Build + IntelliSense' – Sanket

+1

Я изменяю addTionalArguments на' "дополнительныеArguments": ["stylecop.json"] ', но это дает мне еще одну ошибку:' Тип или пространство имен определение или конец ожидаемого файла – pejman

ответ

2

Короткий ответ

Те NullReferenceException ошибки случаются, когда StyleCop не может найти свой stylecop.json. Вот 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> 

Clone и запустить пример

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

Когда я хочу создать 'StyleCop.ruleset', он дает мне ошибку' Данные в корне уровень недействителен'. – pejman

+0

Эта ошибка означает, что XML-код набора правил недействителен. @pejman –

+0

Почему? Я делаю, как сказал, это не позволяет мне редактировать его тоже, и дать мне ту же ошибку – pejman

Смежные вопросы