web-dev-qa-db-fra.com

Supprimer ios, windows8 et wp8 de Xamarin Forms PCL - Erreur d’acceptation de nuget 3.0?

Je travaille sur un projet Xamarin Forms. Je souhaite cibler Android et Windows 10 UWP. 

Lorsque j'essaie de nettoyer la PCL en supprimant "Windows 8", "Windows Phone Silverlight 8", "Windows Phone 8.1", "Xamarin.ios" et "Xamarin.ios (classique)" des cibles PCL, je reçois le méchant suivant ...

J'essaie vraiment de supprimer WP8 car je me moque de le cibler.

Les objectifs du projet ne peuvent pas être modifiés. Les cibles sélectionnées nécessitent Le projet d’adhésion à NuGet 3.0 prend toutefois en charge Visual Studio ne peut pas le faire automatiquement pour vous. Veuillez désinstaller tous les NuGet forfaits et essayez à nouveau.

Comment faire en sorte qu'un projet adhère à NuGet 3.0? Quelque chose d'autre que je devrais essayer?

environ: Xamarin Forms, VS2015

 enter image description here

Merci....

49
Joe Healy

La solution qui a fonctionné pour moi:

Désinstallez Xamarin.Forms:

Right Click Solution -> Manage NuGet Packages -> Uninstall Xamarin.Forms -> Restart VS

Puis supprimez les plates-formes de construction:

Right Click Solution -> Properties -> Build -> under Targeting select Change -> Remove platform(s) -> Restart VS

Réinstallez Xamarin.Forms:

Manage NuGet packages -> Search for Xamarin.Forms -> Install -> Restart VS
38
D-W

Une autre solution possible consiste à renommer temporairement packages.config, à modifier les paramètres PCL en fonction des nouvelles plates-formes cibles, puis à modifier à nouveau le nom de packages.config. Cela a fonctionné pour moi sur mon projet utilisant VS 2015. Vous ne pouvez pas prendre crédit pour cette solution, lisez-la sur un blog il y a quelque temps et publiez-la simplement au cas où elle aiderait quelqu'un. Si je rencontre à nouveau l'article du blog, je posterai le lien ici.

16
SteveOLeary

Pour moi, voici ce qui a été corrigé: Recherchez le fichier packages.config dans ce projet cible et désinstallez TOUS les packages installés. Ensuite, vous pourrez modifier le ciblage. Puis réinstallez vos paquets.

5
Eli Livshitz

Selon les commentaires sur la question initiale, il existe deux itinéraires potentiels; l'une serait d'essayer de supprimer tous les packages des projets et d'apporter les modifications nécessaires avant de les rajouter à nouveau.

3
Paul

Pour mon prototype initial, je ne voulais pas perdre de temps sur d'autres plates-formes; alors:

  1. J'ai lancé une nouvelle solution: "Application vide (Xamarin Forms Portable)"
  2. J'ai utilisé PackageManager pour supprimer TOUS les packages de tous les projets 
  3. J'ai modifié les cibles du projet pour exclure toutes les applications Windows Mobile (il voulait conserver Windows 8.1; je pense que c'était l'inclusion .NET que je voulais).
  4. J'ai enlevé les 3 projets Windows
  5. J'ai utilisé PackageManager pour lire "Xamarin.Forms" dans tous les projets restants - et il a automatiquement ajouté tous les autres packages existant au démarrage.

Maintenant, ma solution ne cible que (vraiment) Android et iOS ....

2
James Joyce

Si votre problème concerne les options affichées partout dans la solution, vous pouvez simplement sélectionner dans la solution Explorer celles que vous ne souhaitez pas afficher, puis cliquez avec le bouton droit de la souris et cliquez sur "Décharger le projet". Ils y resteront en augmentant la taille du projet, mais ils partiront de la liste de déploiement et d’autres lieux.

0
Beto Caldas

Aucune des solutions ci-dessus n'a résolu mon problème ET la désinstallation de packages de nuget ou la modification du fichier de projet n'est PAS une solution (du moins pour moi - parler d'enfer de référence), mais cette méthode fonctionne:

Tout d'abord, vous ne pouvez pas supprimer une plate-forme ciblée unique telle que win8, silverlight ou asp.net core sans désélectionner également le .NET Framework.

Lorsque vous décochez la case Windows 8 et ASP.NET Core, cochez également la case .NET Framework. Ne vous inquiétez pas, il ne présentera pas le message d'erreur ci-dessus, mais VS revérifiera automatiquement le .NET Framework (souvent une version inférieure), puis une fois terminé, rajoutera Window 8.1 après avoir supprimé les autres. 

Une fois que cela se produit, vous pouvez ensuite supprimer les autres par la suite. Cela m'a pris un certain temps à comprendre, car ce n'est pas évident ni expliqué ailleurs. Vous n'avez pas besoin de désinstaller Xamarin.Forms.

0
Dave Friedel