XAML-Hot-Upload für xamarin. FormsXAML Hot Reload for Xamarin.Forms

XAML Hot Upload wird in Ihren vorhandenen Workflow integriert, um Ihre Produktivität zu steigern und Zeit zu sparen.XAML Hot Reload plugs into your existing workflow to increase your productivity and save you time. Ohne das erneute Laden von XAML müssen Sie die APP jedes Mal erstellen und bereitstellen, wenn Sie eine XAML-Änderung sehen möchten.Without XAML Hot Reload, you have to build and deploy your app every time you want to see a XAML change. Wenn Sie beim Laden der XAML-Datei die XAML-Datei speichern, werden die Änderungen in der laufenden app Live übernommen.With Hot Reload, when you save your XAML file the changes are reflected live in your running app. Außerdem werden der Navigations Zustand und die Daten beibehalten, sodass Sie Ihre Benutzeroberfläche schnell durchlaufen können, ohne Ihre Position in der APP zu verlieren.In addition, your navigation state and data will be maintained, enabling you to quickly iterate on your UI without losing your place in the app. Mit XAML Hot Neuladen verbringen Sie daher weniger Zeit mit der Neuerstellung und Bereitstellung Ihrer Apps, um Änderungen an der Benutzeroberfläche zu überprüfen.Therefore, with XAML Hot Reload, you'll spend less time rebuilding and deploying your apps to validate UI changes.

Hinweis

Wenn Sie eine WPF-oder UWP-app schreiben, finden Sie weitere Informationen unter XAML-Hot-Upload für UWP und WPF.If you're writing a WPF or UWP app, see XAML Hot Reload for UWP and WPF.

Das Laden von XAML-Hot für xamarin. Forms funktioniert zurzeit nicht für xamarin. Forms-UWP-Projekte.XAML Hot Reload for Xamarin.Forms does not currently work for Xamarin.Forms UWP projects.

SystemanforderungenSystem requirements

IDE/FrameworkIDE/Framework Erforderliche VersionVersion Required
Visual Studio 2019Visual Studio 2019 16,4 oder höher16.4 or greater
Visual Studio 2019 für MacVisual Studio 2019 for Mac 8,4 oder höher8.4 or greater
Xamarin.FormsXamarin.Forms 4,1 oder höher4.1 or greater

XAML-Hot-Upload für xamarin. Forms aktivierenEnable XAML Hot Reload for Xamarin.Forms

Wenn Sie mit einer Vorlage beginnen, ist das aktive XAML-Neuladen standardmäßig aktiviert, und das Projekt ist so konfiguriert, dass es ohne zusätzliches Setup funktioniert.If you are starting from a template, XAML Hot Reload is on by default and the project is configured to work with no additional setup. Debuggen Sie Ihre APP auf einem Android-oder IOS-Emulator, Simulator oder einem physischen Gerät, ändern Sie den XAML-Code, und speichern Sie die Datei, um ein XAML-Hot-NeuladenDebug your app on an Android or iOS emulator, simulator, or physical device, change your XAML, and save your file to trigger a XAML Hot Reload.

Wenn Sie mit einer vorhandenen xamarin. Forms-Projekt Mappe arbeiten, ist keine weitere Installation erforderlich, um das Laden von XAML-Hot zu verwenden, aber Sie müssen möglicherweise die Konfiguration überprüfen, um die bestmögliche Benutzererfahrung zu gewährleisten.If you're working from an existing Xamarin.Forms solution, no additional installation is required to use XAML Hot Reload, but you might have to double check your configuration to ensure the best experience. Aktivieren Sie es zunächst in ihren IDE-Einstellungen:First, enable it in your IDE settings:

  • Aktivieren Sie unter Windows das Kontrollkästchen xamarin Hot Neuladen aktivieren unter Extras > Optionen > xamarin > Hot Neuladen.On Windows, check the Enable Xamarin Hot Reload checkbox at Tools > Options > Xamarin > Hot Reload.
  • Aktivieren Sie auf dem Mac das Kontrollkästchen xamarin Hot Neuladen aktivieren unter Visual Studio > Einstellungen > Tools für xamarin > XAML Hot Neuladen.On Mac, check the Enable Xamarin Hot Reload checkbox at Visual Studio > Preferences > Tools for Xamarin > XAML Hot Reload.
    • In früheren Versionen von Visual Studio für Mac befindet sich das Menü unter Visual Studio > Einstellungen > Projekte > xamarin Hot Neuladen.In earlier versions of Visual Studio for Mac, the menu is at Visual Studio > Preferences > Projects > Xamarin Hot Reload.

Überprüfen Sie dann in den Einstellungen für Android-und IOS-Builds, ob der Linker auf "nicht verknüpfen" oder "Link None" festgelegt ist.Then, in your Android and iOS build settings, check that the Linker is set to "Don't Link" or "Link None". Wenn Sie XAML-Hot-Upload mit einem physischen IOS-Gerät verwenden möchten, müssen Sie auch den Mono-Interpreter aktivieren (Visual Studio 16,4 und höher) oder Add --Interpreter zu den zusätzlichen mtouchscreen -Argumenten (Visual Studio 16,3 und niedriger) aktivieren.To use XAML Hot Reload with a physical iOS device, you also have to check Enable the Mono interpreter (Visual Studio 16.4 and above) or add --interpreter to your Additional mtouch args (Visual Studio 16.3 and below).

Sie können das folgende Flussdiagramm verwenden, um das Setup des vorhandenen Projekts für die Verwendung mit XAML Hot Neuladen zu überprüfen:You can use the following flowchart to check your existing project's setup for use with XAML Hot Reload:

Setup für das erneute Laden von XAMLXAML Hot Reload Setup

Resilientes erneutes LadenResilient reloading

Wenn Sie eine Änderung vornehmen, dass das Laden von XAML-Hot nicht erneut geladen werden kann, wird eine Fehlermeldung mit IntelliSense angezeigt.If you make a change that XAML Hot Reload can't reload, it will show you an error message using IntelliSense. Diese Änderungen, die als grobe Bearbeitungen bezeichnet werden, beinhalten das falsche Schreibweise Ihrer XAML oder das Verknüpfen eines Steuer Elements mit einem Ereignishandler, der nicht vorhanden ist.These changes, known as rude edits, include mistyping your XAML or wiring a control to an event handler that doesn't exist. Auch bei einer unhöflichen Bearbeitung können Sie den erneuten Ladevorgang fortsetzen, ohne die APP neu zu starten. nehmen Sie an anderer Stelle in der XAML-Datei eine andere Änderung vor, undEven with a rude edit, you can continue to reload without restarting the app - make another change elsewhere in the XAML file and hit save. Die ungrobe Bearbeitung wird nicht erneut geladen, aber Ihre anderen Änderungen werden weiterhin angewendet.The rude edit won't be reloaded, but your other changes will continue to be applied.

Auf mehreren Plattformen gleichzeitig neu ladenReload on multiple platforms at once

XAML Hot Neuladen unterstützt das gleichzeitige Debuggen in Visual Studio und Visual Studio für Mac.XAML Hot Reload supports simultaneous debugging in Visual Studio and Visual Studio for Mac. Sie können ein Android-und ein IOS-Ziel gleichzeitig bereitstellen, um die Änderungen auf beiden Plattformen gleichzeitig anzuzeigen.You can deploy an Android and an iOS target at the same time to see your changes reflected on both platforms at once. Informationen zum Debuggen auf mehreren Plattformen finden Sie unterTo debug on multiple platforms, see:

Bekannte EinschränkungenKnown limitations

  • Andere xamarin. Forms-Ziele, z. b. UWP und macOS, werden noch nicht unterstützt.Other Xamarin.Forms targets, such as UWP and macOS, are not yet supported. Sie können den Fortschritt der UWP-Unterstützung hierverfolgen.You can track the progress of UWP support here.
  • Sie können während einer XAML-Sitzung zum aktiven erneuten Laden keine Dateien oder nuget-Pakete hinzufügen, entfernen oder umbenennen.You can't add, remove, or rename files or NuGet packages during a XAML Hot Reload session. Wenn Sie eine Datei oder ein nuget-Paket hinzufügen oder entfernen, erstellen Sie Ihre APP erneut, und stellen Sie Sie erneut bereit.If you add or remove a file or NuGet package, rebuild and redeploy your app to continue using XAML Hot Reload.
  • Legen Sie fest, dass der Linker nicht verknüpft oder verknüpft werden soll, um eine optimale Leistung zu erzielenSet your linker to Don't Link or Link None for the best experience. Die Einstellung Link SDK only funktioniert meistens, kann jedoch in bestimmten Fällen fehlschlagen.The Link SDK only setting works most of the time, but it may fail in certain cases. Die Linker-Einstellungen finden Sie in ihren Android-und IOS-Buildoptionen.Linker settings can be found in your Android and iOS build options.
  • Das Debuggen auf einem physischen iPhone erfordert, dass der Interpreter XAML-Hot-Neuladen verwendet.Debugging on a physical iPhone requires the interpreter to use XAML Hot Reload. Öffnen Sie hierzu die Projekteinstellungen, wählen Sie die Registerkarte IOS-Build aus, und vergewissern Sie sich, dass die Einstellung Mono-Interpreter aktivieren aktiviert ist.To do this, open the project settings, select the iOS Build tab, and ensure Enable the Mono interpreter setting is enabled. Möglicherweise müssen Sie die Platt Form Option oben auf der Eigenschaften Seite in iPhoneändern.You may need to change the Platform option at the top of the property page to iPhone.
  • Alle Verweise, x:Name die durch Zuweisen eines Steuer Elements zu einem anderen Feld oder einer Eigenschaft erstellt werdenAny references created by assigning a control to another field or property using its x:Name value won't be reloaded.
  • Das Aktualisieren der visuellen Hierarchie Ihrer Shell-Anwendung in appshell. XAML kann Probleme beim Verwalten des Zustands der Anwendung verursachen.Updating the visual hierarchy of your Shell application in AppShell.xaml can cause issues maintaining the state of your application. Wenn Probleme auftreten, erstellen Sie die APP neu, damit Sie erneut geladen werden kann.If you experience issues, rebuild the app to continue reloading.
  • Beim erneuten Laden von XAML C# kann Code nicht neu geladen werden, einschließlich Ereignis Handlern, benutzerdefinierte Steuerelemente, Seitencode Behind und zusätzliche Klassen.XAML Hot Reload can't reload C# code, including event handlers, custom controls, page code-behind, and additional classes.

Weitere RessourcenMore resources

ProblembehandlungTroubleshooting

  • Wenn XAML-Hot-Neuladen nicht initialisiert werden kann:If XAML Hot Reload fails to initialize:
    • Aktualisieren Sie die xamarin. Forms-Version.Update your Xamarin.Forms version.
    • Stellen Sie sicher, dass Sie über die neueste Version der IDE verfügen.Ensure you are on the latest version of the IDE.
    • Legen Sie die Einstellungen für den Android-oder IOS-Linker auf keine Verknüpfung in den Buildeinstellungen des Projekts fest.Set your Android or iOS Linker settings to Don't Link in the project's build settings.
  • Wenn beim Speichern der XAML-Datei nichts passiert, stellen Sie sicher, dass das XAML-Hot-Neuladen in der IDE aktiviert ist.If nothing happens upon saving your XAML file, ensure that XAML Hot Reload is enabled in the IDE.
  • Wenn Sie auf einem physischen iPhone Debuggen und Ihre APP nicht mehr reagiert, überprüfen Sie, ob der Interpreter aktiviert ist.If you're debugging on a physical iPhone and your app becomes unresponsive, check that the interpreter is enabled. Um dies zu aktivieren, aktivieren Sie die Option Mono-Interpreter aktivieren (Visual Studio 16,4/8.4 und up) oder Add --Interpreter in den zusätzlichen mberührungs-Argument Feldern (Visual Studio 16.3/8.3 und früher) in ihren IOS-Buildeinstellungen.To turn it on, check Enable the Mono interpreter (Visual Studio 16.4/8.4 and up) or add --interpreter to the Additional mtouch arguments field (Visual Studio 16.3/8.3 and prior) in your iOS Build settings.

Um einen Fehler zu melden, verwenden Sie die Hilfe > Senden Sie Feedback > melden Sie ein Problem unter Windows, und helfen Sie > , ein Problem auf dem Mac zu melden.To report a bug, use Help > Send Feedback > Report a Problem on Windows, and Help > Report a Problem on Mac.