我一直在忙于为我们的一种解决方案打开代码分析功能。星期五一切进展顺利。
我已将以下内容添加到我们的csproj文件的一个 中:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<CodeAnalysisRuleSet>ca.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.6.2" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
</ItemGroup>
并在星期五花一些时间来处理警告,例如:
这一直很好。我是今天早上来的,从我上次停下来的地方去接站,除了当我到达第4步(重建解决方案)时,突然从单元测试项目中收到3k +警告。
我不确定为什么现在将代码分析应用于另一个项目,并且我似乎无法禁用它。
一些观察:
dotnet clean
没有帮助我开始认为这一定是MSBuild的问题。
有人曾见过吗?解决的是什么?
更新:与MSBuild团队有filed a bug。
根据错误报告,这似乎是MSBuild的常规问题,与任何特定环境无关。现在,我只添加一个通用的ignore
规则集,但这并不理想。
答案 0 :(得分:0)
通过我的错误报告找到了解决方法。
Nick Guerra suggested在主项目的csproj文件的PrivateAssets="All"
语句中添加PackageReference
。
换句话说,对我来说,
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.6.2" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
对此表示敬意:
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.6.2" PrivateAssets="All" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" PrivateAssets="All" />
稍后dotnet clean && dotnet build
,所有这些警告都消失了!
该属性似乎强制执行了默认行为:应该将分析器视为直接添加到其的项目的私有属性。 Relevant bug.