Opětovné načítání za provozu XAML proXamarin.Forms

XAML Opětovné načítání za provozu připojí k vašemu stávajícímu pracovnímu postupu, aby se zvýšila produktivita a ušetřila vám čas. Bez Opětovné načítání za provozu XAML musíte aplikaci sestavit a nasadit pokaždé, když chcete vidět změnu XAML. Když v Opětovné načítání za provozu uložíte soubor XAML, změny se projeví živě ve spuštěné aplikaci. Kromě toho se zachová stav navigace a data, což vám umožní rychle iterovat v uživatelském rozhraní bez ztráty místa v aplikaci. Díky Opětovné načítání za provozu XAML tedy strávíte méně času opětovným sestavením a nasazením aplikací, abyste ověřili změny uživatelského rozhraní.

Poznámka:

Pokud píšete nativní aplikaci pro UPW nebo WPF, nepoužíváte Xamarin.Formsji, přečtěte si téma XAML Opětovné načítání za provozu pro UPW a WPF.

Systémové požadavky

Integrované vývojové prostředí /architektura Minimální požadovaná verze
Visual Studio 2019 16.9 pro režim pouze změn, 16.4 pro režim celé stránky
Visual Studio 2019 pro Mac 8.9 pro režim pouze změn, 8.4 pro režim celé stránky
Xamarin.Forms 5.0.0.2012 pouze pro režim změn; 4.1 pro režim celé stránky

Povolení Opětovné načítání za provozu XAML proXamarin.Forms

Pokud začínáte ze šablony, Opětovné načítání za provozu XAML je ve výchozím nastavení zapnuté a projekt je nakonfigurovaný tak, aby fungoval bez dalšího nastavení. Ladit aplikaci pro Android, iOS nebo UPW v emulátoru nebo fyzickém zařízení a změnit XAML tak, aby aktivovala Opětovné načítání za provozu XAML.

Pokud pracujete z existujícího Xamarin.Forms řešení, k použití Opětovné načítání za provozu XAML se nevyžaduje žádná další instalace, ale možná budete muset pečlivě zkontrolovat konfiguraci, abyste zajistili nejlepší prostředí. Nejdřív ho povolte v nastavení integrovaného vývojového prostředí:

  • Ve Windows zaškrtněte políčko Povolit xaml Opětovné načítání za provozu (a požadované platformy) v části Ladění možností>> nástrojů>Opětovné načítání za provozu.
    • Ve starších verzích sady Visual Studio 2019 je zaškrtávací políčko v >nástrojích Možnosti>Xamarin> Opětovné načítání za provozu.
  • Na Macu zaškrtněte políčko Povolit Opětovné načítání za provozu Xamarinu v nástrojích Visual Studio>Preferences>Tools for Xamarin>XAML Opětovné načítání za provozu.
    • V dřívějších verzích Visual Studio pro Mac je zaškrtávací políčko na Opětovné načítání za provozu Visual Studio>Preferences>Projects>Xamarin.

Potom v nastavení sestavení pro Android a iOS zkontrolujte, jestli je linker nastavený na Ne linkovat nebo Žádná. Pokud chcete použít XAML Opětovné načítání za provozu s fyzickým zařízením s iOSem, musíte také zkontrolovat povolení interpretu Mono (Visual Studio 16.4 a novější) nebo přidat --interpret do dalších args mtouch (Visual Studio 16.3 a novější).

Pomocí následujícího vývojového diagramu můžete zkontrolovat nastavení existujícího projektu pro použití s Opětovné načítání za provozu XAML:

XAML Hot Reload Setup

režimy Opětovné načítání za provozu

XAML Opětovné načítání za provozu může fungovat ve dvou různých režimech – novější režim pouze změny a starší režim celé stránky.

V sadě Visual Studio 16.9 a Visual Studio pro Mac 8.9 je výchozí chování pouze pro použití režimu změn pro všechny aplikace, které používají Xamarin.Forms verzi 5.0 nebo novější. Pro starší verze Xamarin.Formsse používá režim celé stránky. Můžete ale vynutit použití režimu celé stránky pro všechny aplikace v nastavení integrovaného vývojového prostředí Opětovné načítání za provozu (Ladění> možností>nástrojů>Opětovné načítání za provozu ve Windows nebo v nástrojích Předvoleb>sady Visual Studio>pro Xamarin>XAML. Opětovné načítání za provozu na Macu).

Režim změny parsuje XAML, aby přesně viděl, co se změnilo při provádění úprav, a odešle jenom tyto změny do spuštěné aplikace. To je stejná technologie používaná pro WPF a UPW Opětovné načítání za provozu. Zachová stav uživatelského rozhraní, protože znovu nevytvořije uživatelské rozhraní pro celou stránku, pouze aktualizuje změněné vlastnosti ovládacích prvků ovlivněných úpravami. Režim pouze změn umožňuje použití živého vizuálního stromu.

Ve výchozím nastavení platí, že s režimem změn nemusíte soubor ukládat, abyste viděli změny – aktualizace se použijí okamžitě při psaní. Toto chování však můžete změnit tak, aby se aktualizovalo pouze při ukládání souborů. Toho lze dosáhnout zaškrtnutím políčka Použít Opětovné načítání za provozu XAML u ukládání dokumentu (aktuálně k dispozici pouze ve Windows) v nastavení Opětovné načítání za provozu IDE. Aktualizace ukládání dokumentů může být někdy užitečná jenom v případě, že provedete větší aktualizace XAML a nechcete, aby se zobrazovaly, dokud nebudou dokončeny.

Režim celé stránky odešle celý soubor XAML do spuštěné aplikace po provedení úprav a uložení. Spuštěná aplikace pak znovu načte stránku a znovu vytvoří její ovládací prvky – zobrazí se aktualizace uživatelského rozhraní.

Režim změny je budoucností Opětovné načítání za provozu a doporučujeme ho používat, kdykoli je to možné. Je rychlý, zachovává stav uživatelského rozhraní a podporuje živý vizuální strom. Režim celé stránky je stále k dispozici pro aplikace, které ještě nebyly aktualizovány na Xamarin.Forms verzi 5.0.

Poznámka:

Při přepínání režimů budete muset restartovat ladicí relaci.

Chyby XAML

Režim pouze změn: Pokud provedete změnu Opětovné načítání za provozu analyzátoru XAML uvidí, že je neplatný, zobrazí se v editoru podtržené chyby a zahrne ji do okna chyb. Tyto Opětovné načítání za provozu chyby mají kód chyby začínající na XHR (pro xaml Opětovné načítání za provozu). Pokud na stránce dojde k nějakým takovým chybám, Opětovné načítání za provozu nebudou platit změny, i když jsou provedeny na jiných částech stránky. Opravte všechny chyby pro Opětovné načítání za provozu, aby se na stránce začaly znovu pracovat.

Režim celé stránky: Pokud provedete změnu, kterou XAML Opětovné načítání za provozu nemůže znovu načíst, zobrazí se chyba podtržená v editoru a zahrne ji do okna chyb. Tyto změny, označované jako hrubá úprava, zahrnují chybné zadávání kódu XAML nebo zapojení ovládacího prvku do obslužné rutiny události, která neexistuje. I v případě hrubých úprav můžete pokračovat v opětovném načítání bez restartování aplikace – proveďte jinou změnu jinde v souboru XAML a stiskněte uložit. Hrubá úprava se znovu nenačte, ale vaše ostatní změny se budou dál používat.

Opětovné načtení na více platformách najednou

Opětovné načítání za provozu XAML podporuje současné ladění v sadě Visual Studio a Visual Studio pro Mac. Můžete nasadit cíl pro Android a iOS najednou, abyste viděli změny, které se projeví na obou platformách najednou. Pokud chcete ladit na více platformách, přečtěte si:

Známá omezení

  • Xamarin.Forms cíle mimo Android, iOS a UPW (například macOS) se v současné době nepodporují.
  • Použití funkce [XamlCompilation(XamlCompilationOptions.Skip)], zakázání kompilace XAML, není podporováno a může způsobit problémy se stromem živého vizuálu.
  • Během relace Opětovné načítání za provozu XAML nemůžete přidávat, odebírat ani přejmenovávat soubory ani balíčky NuGet. Pokud přidáte nebo odeberete soubor nebo balíček NuGet, znovu sestavte a nasaďte aplikaci a pokračujte v používání xaml Opětovné načítání za provozu.
  • Nastavte linker na Ne linkovat nebo Propojit žádné , aby to bylo nejlepší. Nastavení link sdk funguje většinu času, ale v některých případech může selhat. Nastavení linkeru najdete v možnostech sestavení pro Android a iOS.
  • Ladění na fyzickém i Telefon vyžaduje, aby interpret používal Opětovné načítání za provozu XAML. Uděláte to tak, že otevřete nastavení projektu, vyberete kartu Sestavení pro iOS a povolíte nastavení mono interpreta . Možná budete muset změnit možnost Platforma v horní části stránky vlastností na i Telefon.
  • Xaml Opětovné načítání za provozu nemůže znovu načíst kód jazyka C#, včetně obslužných rutin událostí, vlastních ovládacích prvků, kódu stránky a dalších tříd.

Řešení problému

  • Zobrazením výstupu Opětovné načítání za provozu XAML zobrazíte stavové zprávy, které vám můžou pomoct při řešení potíží:
    • Windows: Vyvolání výstupu s výstupemzobrazení>a výběr Xamarinu Opětovné načítání za provozu v části Zobrazit výstup z: nahoře
    • Mac: Najeďte myší na Opětovné načítání za provozu XAML na stavovém řádku, aby se zobrazila tato podložka.
  • Pokud se Opětovné načítání za provozu XAML nepodaří inicializovat:
    • Aktualizujte svou Xamarin.Forms verzi.
    • Ujistěte se, že používáte nejnovější verzi integrovaného vývojového prostředí (IDE).
    • Nastavení Linkeru pro Android nebo iOS nastavte na Ne linkování v nastavení sestavení projektu.
  • Pokud se při ukládání souboru XAML nic nestane, ujistěte se, že je v integrovaném vývojovém prostředí povolené Opětovné načítání za provozu XAML.
  • Pokud ladíte na fyzickém i Telefon a vaše aplikace přestane reagovat, zkontrolujte, jestli je interpret povolený. Pokud ho chcete zapnout, zkontrolujte v nastavení sestavení iOS povolit interpret Mono (Visual Studio 16.4/8.4 a novější) nebo přidatdo pole Další argumenty mtouch (Visual Studio 16.3/8.3 a starší).

Pokud chcete nahlásit chybu, použijte nápovědu >k odeslání zprávy o problému>ve Windows a nahlásit>problém na Macu.