.net-core - 仅编译时 Nuget 依赖项 (FxCop)

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

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

是否有办法阻止强制执行这种依赖关系?

最佳答案

我最终自己找到了解决方案。只需对 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>

关于.net-core - 仅编译时 Nuget 依赖项 (FxCop),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51829296/

相关文章:

c# - NuGet:在项目中将包依赖项显式列出为包引用,以便可以卸载它们

c# - Azure 事件中心 - 如何在 .Net Core WebAPI 中实现使用者?

Azure 部署失败

c# - '无法加载文件或程序集 'netstandard, Version=2.0.0.0, ...'。不应加载引用程序集以执行

c# - 如何在.net Core 3.0中显示400错误的自定义页面

c# - Msbuild v15 无法解析 nuspec 文件的元数据变量

nuget - 获取现有 nuget 包的 .nuspec 文件

visual-studio-2017 - Nuget 输入不是有效的 Base-64 字符串,因为它包含非 Base 64 字符、超过两个填充字符

.net-core - System.Threading.Thread.CurrentThread.ManagedThreadId 的 .NET Core 1.0 等效项

android - 如何修复 .NetStandard 上的 HTTPClient 中的 "java.io.IOException: unexpected end of stream on Connection"异常