Ricaricamento a caldo di XAML per Novell. Forms (anteprima)XAML Hot Reload for Xamarin.Forms (Preview)

Funzionalità di anteprima

Il ricaricamento a caldo di XAML si collega al flusso di lavoro esistente per aumentare la produttività e risparmiare tempo.XAML Hot Reload plugs into your existing workflow to increase your productivity and save you time. Senza il ricaricamento a caldo di XAML, è necessario compilare e distribuire l'app ogni volta che si desidera visualizzare una modifica XAML.Without XAML Hot Reload, you have to build and deploy your app every time you want to see a XAML change. Con il ricaricamento a caldo, quando si salva il file XAML le modifiche vengono riflesse in tempo reale nell'app in esecuzione.With Hot Reload, when you save your XAML file the changes are reflected live in your running app. Inoltre, lo stato e i dati di navigazione verranno conservati, consentendo di eseguire rapidamente l'iterazione sull'interfaccia utente senza perdere il posto nell'app.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. Pertanto, con il ricaricamento a caldo di XAML, dedicare meno tempo alla ricompilazione e alla distribuzione delle app per convalidare le modifiche dell'interfaccia utente.Therefore, with XAML Hot Reload, you'll spend less time rebuilding and deploying your apps to validate UI changes.

Nota

Se si sta scrivendo un'app WPF o UWP, vedere ricaricamento a caldo di XAML per UWP e WPF.If you're writing a WPF or UWP app, see XAML Hot Reload for UWP and WPF.

Requisiti di sistemaSystem requirements

IDE/FrameworkIDE/Framework Versione obbligatoriaVersion Required
Visual Studio 2019Visual Studio 2019 16,3 o versione successiva16.3 or greater
Visual Studio 2019 per MacVisual Studio 2019 for Mac 8,3 o versione successiva8.3 or greater
Xamarin.FormsXamarin.Forms 4,1 o versione successiva4.1 or greater

Usare il ricaricamento a caldo di XAML per Novell. FormsUse XAML Hot Reload for Xamarin.Forms

Non è necessaria alcuna installazione o installazione aggiuntiva per usare il ricaricamento a caldo di XAML.No additional installation or setup is required to use XAML Hot Reload. È incorporata in Visual Studio e può essere abilitata nelle impostazioni dell'IDE.It's built into Visual Studio and can be enabled in the IDE settings. Una volta abilitata, è possibile iniziare a usare il ricaricamento a caldo di XAML eseguendo il debug dell'app in un emulatore, un simulatore o un dispositivo fisico.Once enabled, you can start using XAML Hot Reload by debugging your app on an emulator, simulator, or physical device. Attualmente, il ricaricamento a caldo di XAML funziona solo quando si esegue il debug in iOS o Android.Currently, XAML Hot Reload only works when debugging on iOS or Android.

In Windows è possibile abilitare il ricaricamento a caldo di XAML selezionando la casella di controllo Abilita ricarica a caldo Novell in strumenti > opzioni > Novell > ricarica a caldo.On Windows, XAML Hot Reload can be enabled by checking the Enable Xamarin Hot Reload checkbox at Tools > Options > Xamarin > Hot Reload.

In un Mac è possibile abilitare il ricaricamento a caldo di XAML selezionando la casella di controllo Abilita ricaricamento a caldo Novell in Visual Studio > preferenze > progetti > Novell Hot reload.On a Mac, XAML Hot Reload can be enabled by checking the Enable Xamarin Hot Reload checkbox at Visual Studio > Preferences > Projects > Xamarin Hot Reload.

Ricaricamento resilienteResilient reloading

Se si effettua una modifica che non è possibile ricaricare il ricaricamento frequente di XAML, verrà visualizzato un messaggio di errore con IntelliSense.If you make a change that XAML Hot Reload can't reload, it will show you an error message using IntelliSense. Queste modifiche, note come modifiche scortesi, includono la digitazione errata del codice XAML o il collegamento di un controllo a un gestore eventi che non esiste.These changes, known as rude edits, include mistyping your XAML or wiring a control to an event handler that doesn't exist. Anche con una modifica non elaborata, è possibile continuare a ricaricare senza riavviare l'app. apportare un'altra modifica altrove nel file XAML e fare clic su Salva.Even with a rude edit, you can continue to reload without restarting the app - make another change elsewhere in the XAML file and hit save. La modifica rude non verrà ricaricata, ma le altre modifiche continueranno a essere applicate.The rude edit won't be reloaded, but your other changes will continue to be applied.

Limitazioni noteKnown limitations

  • Non è possibile aggiungere, rimuovere o rinominare i file o i pacchetti NuGet durante una sessione di ricaricamento a caldo di XAML.You can't add, remove, or rename files or NuGet packages during a XAML Hot Reload session. Se si aggiunge o rimuove un file o un pacchetto NuGet, ricompilare e ridistribuire l'app per continuare a usare il ricaricamento a caldo di XAML.If you add or remove a file or NuGet package, rebuild and redeploy your app to continue using XAML Hot Reload.
  • Impostare il linker in modo che non venga collegato per l'esperienza ottimale.Set the linker to Don't Link for the best experience. L'impostazione di link SDK only funziona la maggior parte del tempo, ma in alcuni casi potrebbe non riuscire.The Link SDK only setting works most of the time, but it may fail in certain cases.
  • Per eseguire il debug su un iPhone fisico è necessario che l'interprete usi il ricaricamento a caldo di XAML.Debugging on a physical iPhone requires the interpreter to use XAML Hot Reload. Aggiungere l' interprete al campo argomenti mTouch aggiuntivi nelle impostazioni di compilazione iOS per usare il ricaricamento a caldo di XAML.Add --interpreter to the Additional mtouch arguments field in your iOS Build settings to use XAML Hot Reload.
  • Tutti i riferimenti creati assegnando un controllo a un altro campo o a una proprietà utilizzando il relativo valore x:Name non verranno ricaricati.Any references created by assigning a control to another field or property using its x:Name value won't be reloaded.
  • L'aggiornamento della gerarchia visiva dell'applicazione shell in AppShell. XAML può causare problemi di gestione dello stato dell'applicazione.Updating the visual hierarchy of your Shell application in AppShell.xaml can cause issues maintaining the state of your application. Ricompilare l'app per continuare il ricaricamento.Rebuild the app to continue reloading.
  • Il ricaricamento a caldo di C# XAML non è in grado di ricaricare il codice, inclusi gestori eventi, controlli personalizzati, code-behind della pagina e classi aggiuntive.XAML Hot Reload can't reload C# code, including event handlers, custom controls, page code-behind, and additional classes.

Eseguire la migrazione dall'anteprima privataMigrate from the private preview

Se si fa parte dell'anteprima privata, l'estensione per il ricaricamento a caldo di XAML verrà aggiornata automaticamente al momento dell'aggiornamento di Visual Studio.If you were part of the private preview, your XAML Hot Reload extension will be automatically updated when Visual Studio updates. Se si sceglie di non aggiornare Visual Studio, è possibile continuare a usare la versione corrente del ricaricamento a caldo di XAML, ma non si riceveranno altri aggiornamenti tramite il feed dell'estensione di anteprima privata.If you choose not to update Visual Studio, you can continue using the current version of XAML Hot Reload, but you won't receive any further updates through the private preview extension feed.

Risoluzione dei problemiTroubleshooting

  • Se non è possibile inizializzare il ricaricamento a caldo di XAML:If XAML Hot Reload fails to initialize:
    • Aggiornare la versione di Novell. Forms.Update your Xamarin.Forms version.
    • Assicurarsi di avere la versione più recente dell'IDE.Ensure you are on the latest version of the IDE.
    • Impostare le impostazioni del linker per Android o iOS in modo che non vengano collegate nelle impostazioni di compilazione del progetto.Set your Android or iOS Linker settings to Don't Link in the project's build settings.
  • Se non si verifica nulla quando si salva il file XAML, verificare che il ricaricamento a caldo sia abilitato nell'IDE.If nothing happens upon saving your XAML file, ensure that Hot Reload is enabled in the IDE.
  • Se si sta eseguendo il debug in un iPhone fisico e l'app smette di rispondere, verificare che l'interprete sia abilitato.If you're debugging on a physical iPhone and your app becomes unresponsive, check that the interpreter is enabled. Per attivarlo, aggiungere l' interprete al campo argomenti mTouch aggiuntivi nelle impostazioni di compilazione iOS.To turn it on, add --interpreter to the Additional mtouch arguments field in your iOS Build settings.

Per segnalare un bug, usare lo strumento per il feedback nella guida@no__t-**1 inviare commenti e suggerimenti** > segnalare un problema in Windows e il menu Guida > segnala un problema in un computer Mac.To report a bug, use the feedback tool at the Help > Send Feedback > Report a Problem menu on Windows, and the Help > Report a Problem menu on a Mac.