c# - 在我的 .Net Core 2.0 项目中,使用 .Net FW 包代替 .Net Standard(警告 NU1701)

标签 c# .net nuget .net-core

我使用的是 nuget 包 sqlite-net-pcl在我的 .Net Core 1.0 项目中,该项目运行没有任何问题(包中使用了 .Net Standard 1.1 版本)。现在,我将这个项目升级到 .Net Core 2.0,突然我收到了这些构建警告:

1>C:\Projects\Project.csproj : warning NU1701: Package 'SQLitePCLRaw.lib.e_sqlite3.linux 1.1.5' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
1>C:\Projects\Project.csproj : warning NU1701: Package 'SQLitePCLRaw.lib.e_sqlite3.osx 1.1.5' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
1>C:\Projects\Project.csproj : warning NU1701: Package 'SQLitePCLRaw.lib.e_sqlite3.v110_xp 1.1.5' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.

很明显,我的 .Net Core 2.0 项目现在使用的是 .Net Framework 4.6.1 版本的 nuget 包,即使有可用的 .Net Standard 1.1 版本也是如此。我知道使用 .Net Core 2.0 这是可能的,但我也知道由于兼容性原因这并不总是有效,所以为什么 nuget 不只使用实际有效的 .Net Standard 1.1 版本我怎么能强制消除警告?

最佳答案

看起来这非常特定于依赖包 SQLitePCLRaw.lib.esqlite3.* 的版本,它们是 SQLitePCLRaw 的 .NET Core/.NET Standard 切片的传递依赖项。 bundle_green/sqlite-net-pcl。这可能也特定于这些软件包的 1.1.5 版本,因为最新版本 (1.1.8) 的编写方式不同以指示支持的平台 - 1.1.5 包不包含 lib 文件夹,只有一个 runtimes 文件夹并且没有依赖组,因此 NuGet 对支持的框架感到困惑并假定包是为 .NET Framework 编写的。较新的版本通过一个 lib 文件夹解决了这个问题,该文件夹包含一个包含虚拟 _._ 文件的受支持框架的子文件夹。

如果您想确保您的依赖图中只有明确支持 .NET Standard 或 .NET Core 的包(无论您的项目目标是什么),您可以将其添加到您的项目文件中:

<PropertyGroup>
  <DisableImplicitAssetTargetFallback>true</DisableImplicitAssetTargetFallback>
</PropertyGroup>

关于c# - 在我的 .Net Core 2.0 项目中,使用 .Net FW 包代替 .Net Standard(警告 NU1701),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46630188/

相关文章:

c# - 修改或隐藏表单的标题工具提示

c# - 从下载 URL 下载视频 MP4 文件

routes - NuGet 服务器 - 私有(private)存储库 - 动态更改 nuget 包位置

github - Nuget Push 总是返回 404(未找到)

visual-studio - 为什么对 NuGet 存储库使用 SSL?

c# - 如何使用脚本更改 Unity UI 中的占位符文本?

c# - 根据文件名中的日期过滤目录中的文件

c# - CollectionChanged 和 IList of Items - 为什么困难

c# - 禁用 DataGridView 系统上下文菜单

java - 是否需要 Java 才能运行某些基于 .NET 的程序?