首页 > 解决方案 > 仅编译时 Nuget 依赖项 (FxCop)

问题描述

我正在创建一个 .Net Standard 2.0 Nuget 包,我想为构建执行静态代码分析。但是,当我添加Microsoft.CodeAnalysis.FxCopAnalyzers包时,它会成为运行时依赖项,因此任何引用我的 Nuget 包的项目也会安装分析器。我觉得那些应该是调用代码选择加入的问题。

有没有办法阻止这种依赖被强制执行?

标签: .net-corenuget.net-standardfxcoproslyn-code-analysis

解决方案


我最终自己找到了解决方案。只是对项目文件中的包引用语法进行了更多研究,特别是Controlling Dependency Assets。关键是打开 *.csproj 文件并添加一个 PrivateAssets 节点,如下所示(注意 ExcludeAssets 和 IncludeAssets 设置为默认值,可以省略):

<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.6.1">
  <PrivateAssets>all</PrivateAssets>
  <ExcludeAssets>none</ExcludeAssets>
  <IncludeAssets>all</IncludeAssets>
</PackageReference>

推荐阅读