繁体   English   中英

通过 nuget 与手动参考在 .NET 标准中使用 .NET 框架程序集时的不同错误

[英]Different errors when using .NET framework assembly in .NET standard via nuget vs manual reference

我创建了一个 ASP.NET Core Web 应用程序。 在这个解决方案中,我还有一个 .NET Standard 2.0 项目。

首先,我手动添加了从 .NET Standard 项目到 dll(.NET framework 4.6.1)的引用,没有任何问题,并且工作正常。 然后我为 .NET 框架 dll 创建了一个 Nuget 包,并尝试在 .NET Standard 项目中安装这个包。

我有一个错误

Package xxx was restored using .net framework, version = 4.6.1. instead of project target framework '.NET standard, version = v2.0'. This package may not be fully compatible with your project.

我很困惑,我怎么能在手动引用时使用 .net 框架程序集,当它通过 nuget 安装时,我收到此错误。

此外,当我在 .NET Core 2.1 中安装这个 nuget 时。 项目(相同的解决方案)我得到了同样的错误。

此警告特定于 NuGet。 手动添加 dll 时,构建中的任何部分都不会检查该 dll 的目标框架(理论上,大多数 dll 文件都应该带有TargetFrameworkAttribute程序集元数据,但这不是必需的)并且您有责任确保您使用的是兼容的组装。

要消除此 NuGet 警告(并接受在使用最初为 .NET Framework 编写的包时可能在运行时出现问题),您可以将此NoWarn元数据添加到您的包引用中:

<PackageReference Include="My.Package" Version="1.2.3" NoWarn="NU1603" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM