繁体   English   中英

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

[英]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.

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