仅编译时Nuget依赖项(FxCop)

时间:2018-08-13 19:27:05

标签: .net-core nuget .net-standard fxcop roslyn-code-analysis

我正在创建.Net Standard 2.0 Nuget程序包,并且希望对该版本执行静态代码分析。但是,当我添加Microsoft.CodeAnalysis.FxCopAnalyzers软件包时,它将成为运行时依赖项,因此任何引用我的Nuget软件包的项目也都将安装分析器。我认为调用代码应该使这些问题成为选择问题。

总有办法阻止这种依赖性吗?

1 个答案:

答案 0 :(得分:5)

我最终自己找到了解决方案。仅对项目文件中的Package Reference语法(特别是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>