lis*_*ous 5 c# stylecop asp.net-core
当我使用Directory.Build.props
文件定义StyleCop分析器及其自定义全局规则集时,不会考虑第二个规则集。我的意思是在全球范围stylecop.json
内定义,但在一般情况下不起作用。Directory.Build.props
loans.ruleset
我尝试的所有这些都与此回购有关。
当我将StyleCop.Analyzers
包安装到单个项目中并包含它时,loans.ruleset
它适用于 WebAPI 项目(这可以通过提交cd1b1f2和53b4a4c精确反映)。然后我尝试将它们移至此处的全局工作ff8b017。结果是 StyleCop 有效,但规则集却无效。
概述如下:
Directory: C:\Repos\LoansManagerRestApi
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 03.06.2019 08:50 LoansManager
d----- 03.06.2019 08:48 LoansManager.DAL
d----- 03.06.2019 08:48 LoansManager.Domain
d----- 03.06.2019 08:48 LoansManager.E2ETest
d----- 03.06.2019 08:48 LoansManager.Services
d----- 03.06.2019 08:48 LoansManager.UnitTest
d----- 03.06.2019 08:48 LoansManager.Util
-a---- 02.06.2019 21:07 5912 .gitignore
-a---- 03.06.2019 08:49 271 .stylecop.json
-a---- 03.06.2019 08:57 338 Directory.Build.props
-a---- 03.06.2019 08:51 348 loans.ruleset
-a---- 02.06.2019 21:40 4208 LoansManager.sln
-a---- 02.06.2019 21:07 1360 README.md
Run Code Online (Sandbox Code Playgroud)
目录.Build.props:
<Project>
<PropertyGroup>
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)loans.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
<AdditionalFiles Include="$(MSBuildThisFileDirectory).stylecop.json" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
贷款规则集:
<RuleSet Name="StyleCopRules" Description="These rules configure StyleCop." ToolsVersion="1.0">
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
<Rule Id="SA1101" Action="None" />
<Rule Id="SA1633" Action="None" />
<Rule Id="SA1600" Action="None" />
<Rule Id="SA1615" Action="None" />
</Rules>
</RuleSet>
Run Code Online (Sandbox Code Playgroud)
总而言之,我需要帮助才能使用使用文件stylecop.json
将loans.ruleset
规则应用于全局解决方案Directory.Build.props
,而不是针对每个项目单独配置它。
使用简单文件导入包含 StyleCop 分析器依赖项及其设置(和文件)的包:stylecop.json
.ruleset
Directory.Build.props
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<PackageReference Include="loans.stylecop" Version="1.0.0" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
即使在 VS EE 2019 v16.1.1 中,该问题也按预期工作,但它不是完美的解决方法,因为每个规则更改都需要包项目版本控制、构建和发布,因此它仍然不能满足我的期望。
归档时间: |
|
查看次数: |
2371 次 |
最近记录: |