![](/img/trans.png)
[英]warning NU1701: Package 'System.Linq.Queryable 4.0.1' was restored using '.NETFramework,V ersion=v4.6.1' instead of the project target framework
[英]In my .Net Core 2.0 project, .Net FW package is used instead of .Net Standard (warning NU1701)
我在我的.Net Core 1.0项目中使用了nuget包sqlite-net-pcl ,它没有任何问题(使用了.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这是可能的,但我也知道,由于兼容性原因,这并不总是有效,所以为什么不能只使用实际可行的.Net Standard 1.1版本,我该怎么办?强制消除警告?
看起来这非常特定于依赖包SQLitePCLRaw.lib.esqlite3.*
的版本,它们是SQLitePCLRaw.bundle_green
/ sqlite-net-pcl
的.NET Core / .NET标准片的传递依赖性。 这可能也是这些软件包的1.1.5
版本所特有的,因为最新版本( 1.1.8
)的编写方式不同以表示支持的平台 - 1.1.5
软件包不包含lib
文件夹,只包含runtimes
文件夹和没有依赖关系组,因此NuGet对支持的框架感到困惑,并假设该软件包是为.NET Framework编写的。 较新的版本通过为包含虚拟_._
文件的受支持框架提供包含子文件夹的lib
文件夹来解决此问题。
如果您想确保在依赖关系图中只有明确支持.NET Standard或.NET Core的软件包(无论您的项目目标是什么),您可以将其添加到项目文件中:
<PropertyGroup>
<DisableImplicitAssetTargetFallback>true</DisableImplicitAssetTargetFallback>
</PropertyGroup>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.