如何在使用VS 2017.3引用.NET 4.6 NuGet包时隐藏.NET Core兼容性警告。

11

我正在开发一个.NET Core CLI应用程序,需要引用第三方NuGet包,但该包未发布与netcoreappX.X目标。我已经运行了分析项目可移植性工具,并获得了100%的兼容性,这是预期的,因为这是一个相对简单的库。

然后问题以这种令人烦恼的NuGet警告的形式出现:

警告:NU1701
包'XXXXXX 1.0.0'使用'.NETFramework,Version=v4.6.1'而不是项目目标框架'.NETCoreApp,Version=v2.0'进行还原。该包可能与您的项目不完全兼容。

是否有一种方法可以隐藏特定NuGet包的此警告?


关于 Visual Studio Code,请查看此链接 - Andrew Cowenhoven
3个回答

19

我在Google图片搜索中找到了关于我的问题的答案,这导致我看到了似乎不相关的SO帖子:

Suppressing issues from Roslyn code Analyzers

简而言之,NuGet包引用的属性页面有一个NoWarn属性,其中可以指定错误代码,如下图所示:

enter image description here


感谢您在此分享您的解决方案,您可以将其标记为答案,以帮助其他遇到相同问题的社区成员。 - Leo Liu
还适用于VS 2022。 官方文档 - NicolasF

1

从VS2019 (v 16.9.1)开始,您可以将代码(或逗号分隔的多个代码)添加到属性Suppress Warnings中,然后重新构建解决方案。

NuGet Package Properties


2
在根NuGet包上使用Suppress Warning是有效的,但依赖包也可能引起未被抑制的警告。例如,在使用NuGet包的.NET 6类库中,iTextSharp依赖于BouncyCastle。iTextSharp的警告消失了,但BouncyCastle的警告仍然存在。你有什么想法? - Brett

1

编辑您的项目(.proj)文件并在项目级别上抑制警告代码。

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <NoWarn>NU1701;RAZORSDK1006</NoWarn>
  </PropertyGroup>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接