web-dev-qa-db-de.com

Entfernen Sie ios, windows8 und wp8 von Xamarin Forms PCL - Nuget 3.0 Opt-In-Fehler?

Ich arbeite an einem Xamarin Forms-Projekt. Ich möchte Android und Windows 10 UWP ansprechen. 

Wenn ich versuche, die PCL aufzuräumen, indem ich "Windows 8", "Windows Phone Silverlight 8", "Windows Phone 8.1", "Xamarin.ios" und "Xamarin.ios (klassisch)" von den PCL-Zielen entferne, bekomme ich die folgenden fiesen ...

Ich versuche wirklich nur WP8 zu entfernen, da es mir egal ist, ob ich es anvisiere.

Die Projektziele können nicht geändert werden. Die ausgewählten Ziele erfordern Das Projekt, für das NuGet 3.0 aktiviert werden soll, unterstützt jedoch Visual Studio kann dies nicht automatisch für Sie tun. Bitte deinstallieren Sie alle NuGet Pakete und versuchen Sie es erneut.

Wie bekommen Sie ein Projekt, um sich für NuGet 3.0 zu entscheiden? Etwas anderes sollte ich versuchen?

environ: Xamarin Forms, VS2015

 enter image description here

Vielen Dank....

49
Joe Healy

Die Lösung, die für mich funktioniert hat:

Deinstallieren Sie Xamarin.Forms:

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

Dann entfernen Sie Build-Plattformen:

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

Installieren Sie Xamarin.Forms erneut:

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

Eine andere mögliche Lösung besteht darin, packages.config vorübergehend umzubenennen, die PCL-Einstellungen in die neuen Zielplattformen zu ändern und dann den Namen von packages.config erneut zu ändern. Dies funktionierte für mich bei meinem Projekt mit VS 2015. Ich kann diese Lösung nicht anerkennen, sie vor einiger Zeit in einem Blog lesen und einfach hier posten, falls sie jemandem hilft. Wenn ich wieder auf den Blogartikel stoße, poste ich den Link hier.

16
SteveOLeary

Für mich ist das Folgendes behoben: Schauen Sie in die Datei packages.config in diesem Zielprojekt und deinstallieren Sie ALLE installierten Pakete. Dann können Sie das Targeting ändern. Dann installieren Sie Ihre Pakete erneut.

5
Eli Livshitz

Je nach Kommentar zur ursprünglichen Frage gibt es mehrere mögliche Routen. Sie können versuchen, alle Pakete aus den Projekten zu entfernen und die erforderlichen Änderungen vorzunehmen, bevor Sie sie erneut hinzufügen.

3
Paul

Für meinen ersten Prototyp wollte ich keine Zeit auf anderen Plattformen verschwenden. so:

  1. Ich habe eine neue Lösung gestartet - "Blank App (Xamarin Forms Portable)"
  2. Ich habe PackageManager verwendet, um ALLE Pakete aus allen Projekten zu entfernen 
  3. Ich habe die Projektziele geändert, um alle Windows Mobile-Apps auszuschließen (Windows 8.1 sollte beibehalten werden; ich denke, dies war die .NET-Integration, die ich wollte)
  4. Ich habe die 3 Windows-Projekte entfernt
  5. Ich habe PackageManager verwendet, um "Xamarin.Forms" für alle übrigen Projekte einzulesen - und fügte automatisch alle anderen beim Start vorhandenen Pakete hinzu

Jetzt ist meine Lösung nur (wirklich) auf Android und iOS ausgerichtet ....

2
James Joyce

Wenn Ihr Problem darin besteht, dass diese Option überall auf der Lösung angezeigt wird, können Sie im Lösungs-Explorer einfach diejenigen auswählen, die Sie nicht anzeigen möchten, dann mit der rechten Maustaste klicken und auf "Projekt entladen" klicken. Sie werden dort bleiben, um die Projektgröße zu erhöhen, aber sie werden von der Bereitstellungsliste und anderen Orten aufgegeben.

0
Beto Caldas

Keines der oben genannten Probleme hat mein Problem gelöst UND das Deinstallieren von Nuget-Paketen oder das Bearbeiten der Projektdatei ist KEINE Lösung (zumindest für mich - über Referenzhölle sprechen).

Erstens können Sie eine einzelne Zielplattform wie win8, silverlight oder asp.net core nicht entfernen, ohne das .NET Framework ebenfalls zu deaktivieren.

Wenn Sie die Markierung von Windows 8 und ASP.NET Core deaktivieren, deaktivieren Sie auch .NET Framework. Machen Sie sich keine Sorgen, es wird die obige Fehlermeldung nicht angezeigt, aber VS überprüft automatisch .NET Framework (häufig eine niedrigere Version) und fügt nach dem Entfernen der anderen Fenster Windows 8.1 erneut hinzu. 

Sobald dies geschieht, können Sie die anderen anschließend entfernen. Ich habe eine Weile gebraucht, um herauszufinden, da es nicht offensichtlich ist und nirgendwo anders erklärt wird. Sie müssen Xamarin.Forms nicht deinstallieren.

0
Dave Friedel