Référence à un profil PCL 111 est une norme .NET PCL 1.1

voix
2

Dans un projet .NET standard PCL, je veux faire référence à un paquet NuGet privé qui cible le profil 111 (lib \ portable Win8 + net45 + wpa81 + MonoAndroid + Xamarin.iOS10)

Mais quand j'ajouter le paquet NuGet, NuGet se plaint que le paquet de NuGet ne contient pas des cibles qui est compatible avec netstandard 1.1. Bien que le doc https://docs.microsoft.com/fr-fr/dotnet/articles/standard/library explique que le profil 111 est compatible avec netstandard 1.1, et peut être référencé si le paquet est référencé Microsoft.NETCore.Portable.Compatibility , qui est le cas.

Toute idée de ce qui ne va pas? Je peux mettre à jour le package personnalisé NuGet mais je ne sais pas quoi changer.

Créé 10/10/2016 à 08:38
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
3

Dans le project.json fichier, essayez d'ajouter une importsdirective pour le profil spécifique PCL. Comme ça,

"frameworks": {
  "netstandard1.1": {
    "imports": "portable-win8+net45+wpa81"
  }
}

En outre, pour une compatibilité maximale, je pense que vous devriez laisser tomber le MonoAndroidet Xamarin.iOS10spécifications pour le paquet NuGet. Le gestionnaire de paquets devrait être en mesure de conclure Xamarin applicabilité par lui - même.

Un peu plus d' informations sur la importsdirective se trouve ici .

Créé 11/10/2016 à 06:31
source utilisateur

voix
2

La même astuce fonctionne avec des .csprojfichiers. Vous avez juste besoin d'ajouter que PackageTargetFallbackvous fichier projet (testé dans VS2017):

<PropertyGroup>
  <TargetFramework>netstandard1.1</TargetFramework>
  <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wpa81</PackageTargetFallback>
</PropertyGroup>
Créé 15/04/2017 à 13:59
source utilisateur

voix
0

Parfois, lorsque l'on tente d'utiliser un paquet, le paquet n'a pas le TargetFramework approprié pris en charge. Les importations ont fourni un moyen pour vous de spécifier, pour ce cas, qui les actifs de TargetFramework à utiliser à la place - puisque vous savez qu'ils sont compatibles.

De: https://docs.nuget.org/ndocs/schema/project.json

Les importations Les importations sont conçues pour permettre des paquets qui utilisent le TxM dotnet pour fonctionner avec des paquets qui ne déclarent pas TxM dotnet. Si votre projet utilise le dotnet TxM alors tous les paquets dont vous dépendez doit aussi avoir un TxM dotnet, sauf si vous ajoutez ce qui suit à votre project.json afin de permettre des plates-formes non dotnet soient compatibles avec DotNet. Si vous utilisez le TxM dotnet le système de projet PCL ajoutera la déclaration des importations appropriées sur la base des objectifs pris en charge.

"frameworks": { "dotnet": { "imports" : "portable-net45+win81" } }

syntaxe MSBuild pour soutenir PackageTargetFallback

PackageTargetFallbacks peut l'avoir été dans l'une des cibles Microsoft (nous envisageons), ou d'autres.

Enfin, comme il le dit @altso, vous pouvez résoudre votre problème d'édition du .csproj du projet PCL et ajoutez la ligne suivante:

<PackageTargetFallback Condition="'$(TargetFramework)'=='Net45'">
    $(PackageTargetFallback);portable-net45+win8+wpa81+wp8
</PackageTargetFallback >

Référence: https://github.com/NuGet/Home/wiki/PackageTargetFallback-%28new-design-for-Imports%29

Créé 11/05/2017 à 13:24
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more