.net-core - 仅编译时 Nuget 依赖项 (FxCop)
问题描述
我正在创建一个 .Net Standard 2.0 Nuget 包,我想为构建执行静态代码分析。但是,当我添加Microsoft.CodeAnalysis.FxCopAnalyzers包时,它会成为运行时依赖项,因此任何引用我的 Nuget 包的项目也会安装分析器。我觉得那些应该是调用代码选择加入的问题。
有没有办法阻止这种依赖被强制执行?
解决方案
我最终自己找到了解决方案。只是对项目文件中的包引用语法进行了更多研究,特别是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>
推荐阅读
- javascript - 如何将对象的数据传递给 HTML 文件
- python - 用列表填充 Django 多对多关系的问题
- spring-batch - Spring Batch MongoBatchItemWriter 不刷新/提交到 mongo
- javascript - 函数声明之间的区别
- android - 将结果 ResultInfo{who=null, request=1, result=-1, data=null} 传递到活动 {} 失败:java.lang.NullPointerException:uri
- r - 如何从 ggRadar 图中删除最外层的线?
- wordpress - 如何让用户仅从主题编辑器更改我的 wp 主题上的任何图像?
- python - 为什么 ~True 在 Python 中返回值 -2?
- java - 如何使用 Guice 注入对代码运行集成测试?
- android - 在 android studio 的地图上绘制折线和多边形?