2017-10-08 2 views
1

J'utilisais le paquet nuget sqlite-net-pcl dans mon projet .Net Core 1.0 qui fonctionnait sans aucun problème (le .Net La version standard 1.1 a été utilisée pour le paquet). Maintenant, je mis à jour ce projet .Net Core 2.0 et je reçois soudainement ces avertissements: construireDans mon projet .Net Core 2.0, le paquet .Net FW est utilisé à la place de .Net Standard (avertissement NU1701)

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. 

De toute évidence, mon projet .Net Core 2.0 utilise maintenant la version .Net Framework 4.6.1 du NuGet package, même s'il existe une version .Net Standard 1.1 disponible. Je sais qu'avec .Net Core 2.0 c'est possible, mais je sais aussi que cela ne fonctionne pas toujours pour des raisons de compatibilité, alors pourquoi ne pas utiliser les versions .Net Standard 1.1 qui fonctionneront réellement et comment puis-je force que d'éliminer les avertissements?

Répondre

4

Il semble que cela soit très spécifique aux versions des packages dépendants SQLitePCLRaw.lib.esqlite3.* qui sont des dépendances transitives des tranches .NET Core/.NET Standard de SQLitePCLRaw.bundle_green/. Ceci est probablement aussi spécifique à la version 1.1.5 de ces paquets, car les dernières versions (1.1.8) sont créées différemment pour indiquer les plates-formes supportées - les paquets 1.1.5 ne contiennent pas de dossier lib, seulement un dossier runtimes et aucun groupe de dépendances donc NuGet est Confus à propos des frameworks pris en charge et suppose que le package a été créé pour .NET Framework. Les versions les plus récentes résolvent cela en ayant un dossier lib avec des sous-dossiers pour les cadres supportés contenant un fichier factice _._.

Si vous voulez vous assurer que vous avez seulement des paquets dans votre graphe de dépendance qui prennent en charge explicitement standard .NET ou Core .NET (quels que soient vos cibles en matière de projet), vous pouvez ajouter à votre fichier de projet:

<PropertyGroup> 
    <DisableImplicitAssetTargetFallback>true</DisableImplicitAssetTargetFallback> 
</PropertyGroup> 
+0

Vous sont géniaux, merci beaucoup, la chose csproj l'a résolu :) – Snicker