Sdílet prostřednictvím


Nasazení a ladění aplikací pro UPW

Tento článek vás provede postupem cílení na různé cíle nasazení a ladění.

Microsoft Visual Studio umožňuje nasazovat a ladit aplikace univerzální platformy Windows (UPW) na různých zařízeních s Windows 10. Visual Studio bude zpracovávat proces sestavování a registrace aplikace na cílovém zařízení.

Výběr cíle nasazení

Pokud chcete vybrat cíl, přejděte do rozevíracího seznamu cíle ladění vedle tlačítka Spustit ladění a zvolte cíl, do kterého chcete aplikaci nasadit. Jakmile je cíl vybraný, vyberte Spustit ladění (F5) pro nasazení a ladění na daném cíli, nebo vyberte Ctrl+F5 pro pouhé nasazení do cíle.

Seznam cílových zařízení pro ladění

  • Simulátor nasadí aplikaci do simulovaného prostředí na vašem aktuálním vývojovém počítači. Tato možnost je dostupná jen v případě, že cílová platforma vaší aplikace Min. verze je menší nebo rovna verzi operačního systému na vašem vývojovém počítači.
  • místní počítač nasadí aplikaci do vašeho aktuálního vývojového počítače. Tato možnost je dostupná jen v případě, že cílová platforma vaší aplikace Min. verze je menší nebo rovna verzi operačního systému na vašem vývojovém počítači.
  • Vzdálený stroj vám umožní zadat vzdálený cíl pro nasazení aplikace. Další informace o nasazení do vzdáleného počítače najdete v části Určení vzdáleného zařízení.
  • zařízení nasadí aplikaci do zařízení připojeného přes USB. Zařízení musí být odemknuté vývojářem a musí mít odemknutou obrazovku.
  • Cíl emulátoru se spustí a nasadí aplikaci na emulátor s konfigurací zadanou v názvu. Emulátory jsou dostupné jenom na Hyper-V počítačích s Windows 8.1 nebo novějším.

Ladění nasazených aplikací

Visual Studio se také může připojit k libovolnému běžícímu procesu aplikace UWP výběrem Laděnía poté Připojit k procesu. Připojení ke spuštěném procesu nevyžaduje původní projekt sady Visual Studio, ale načtení symbolů procesu pomůže výrazně při ladění procesu, pro který nemáte původní kód.

Kromě toho lze připojit a ladit všechny nainstalované balíčky aplikace výběrem Ladění, Dalšía poté Ladění nainstalovaných balíčků aplikací.

dialogové okno ladění balíčku nainstalované aplikace

Výběr Nespouštět, ale ladit můj kód při spuštění způsobí, že se ladicí program sady Visual Studio připojí k vaší aplikaci UWP při spuštění v čase, který si určíte. Toto je efektivní způsob, jak ladit cesty řízení z různých metod spuštění, jako je aktivace protokolu s vlastními parametry.

Aplikace pro UPW je možné vyvíjet a kompilovat ve Windows 8.1 nebo novějším, ale ke spuštění vyžadovat Windows 10. Pokud vyvíjíte aplikaci pro UPW na počítači s Windows 8.1, můžete vzdáleně ladit aplikaci pro UPW spuštěnou na jiném zařízení s Windows 10 za předpokladu, že hostitel i cílový počítač jsou ve stejné síti LAN. Chcete-li to provést, stáhněte a nainstalujte Remote Tools for Visual Studio na oba počítače. Nainstalovaná verze se musí shodovat se stávající verzí sady Visual Studio, kterou jste nainstalovali, a architektura, kterou vyberete (x86, x64), se musí shodovat s vaší cílovou aplikací.

Rozložení balíčku

Od aktualizace Visual Studio 2015 Update 3 jsme přidali možnost, aby vývojáři určili cestu rozložení pro své aplikace pro UPW. Určuje, kam se při sestavování aplikace zkopíruje rozložení balíčku na disk. Ve výchozím nastavení je tato vlastnost nastavena vzhledem ke kořenovému adresáři projektu. Pokud tuto vlastnost neupravíte, chování zůstane stejné jako u předchozích verzí sady Visual Studio.

Tuto vlastnost lze upravit ve vlastnostech Ladění projektu.

Pokud chcete do balíčku zahrnout všechny soubory rozložení při vytváření balíčku pro aplikaci, musíte přidat vlastnost projektu <IncludeLayoutFilesInPackage>true</IncludeLayoutFilesInPackage>.

Přidání této vlastnosti:

  1. Klikněte pravým tlačítkem myši na projekt a vyberte Uvolnit projekt.
  2. Klikněte pravým tlačítkem myši na projekt a pak vyberte Upravit [název_projektu].xxproj (.xxproj se změní v závislosti na jazyce projektu).
  3. Přidejte vlastnost a pak projekt znovu načtěte.

Určení vzdáleného zařízení

C# a Microsoft Visual Basic

Pokud chcete zadat vzdálený počítač pro aplikace jazyka C# nebo Microsoft Visual Basic, vyberte v rozevíracím seznamu pro ladění jako cíl Vzdálený počítač. Zobrazí se dialogové okno vzdálená připojení, které vám umožní zadat IP adresu nebo vybrat zjištěné zařízení. Ve výchozím nastavení je vybraný režim ověřování Univerzální. Pokud chcete zjistit, který režim ověřování se má použít, přečtěte si témarežimy ověřování .

dialogové okno Vzdálená připojení

Pokud se chcete vrátit do tohoto dialogového okna, můžete otevřít vlastnosti projektu a přejít na kartu Ladění. Odtud vyberte Najít vedle vzdáleného počítače :

karta Ladění

Pokud chcete nasadit aplikaci do vzdáleného počítače před Creators Update, budete také muset stáhnout a nainstalovat nástroje Visual Studio Remote Tools na cílový počítač. Úplné pokyny najdete v tématu Pokyny k vzdálenému počítači. Od aktualizace Creators Update však počítač také podporuje vzdálené nasazení.

C++ a JavaScript

Určení cíle vzdáleného počítače pro aplikaci C++ nebo JavaScript UWP:

  1. V Průzkumníku projektů klikněte pravým tlačítkem myši na projekt a potom klikněte na Vlastnosti.
  2. Přejděte na Nastavení ladění a v části Debugger spusťte, vyberte vzdálený počítač.
  3. Zadejte název počítače (nebo klikněte na Najít vyhledejte) a nastavte vlastnost Typ ověřování.

ladicí stránky vlastností

Po zadání počítače můžete v rozevíracím seznamu cílů ladění vybrat vzdálený počítač a vrátit se tak k zadanému počítači. Najednou je možné vybrat jenom jeden vzdálený počítač.

Pokyny ke vzdálenému počítači

Poznámka:

Tyto pokyny se vyžadují jenom pro starší verze Windows 10. Od verze Creators Update může být počítač považován za Xbox. To znamená, že povolíte zjišťování zařízení v nabídce vývojářského režimu počítače a pomocí univerzálního ověřování se spojíte s počítačem párováním pomocí PIN kódu.

Aby bylo možné nasazení do vzdáleného počítače před creators Update, musí být na cílovém počítači nainstalované nástroje Visual Studio Remote Tools. Na vzdáleném počítači musí také běžet verze Windows, která je stejná nebo vyšší než vlastnost Minimální verze cílové platformy vaší aplikace . Po instalaci vzdálených nástrojů musíte na cílovém počítači spustit vzdálený ladicí program.

Uděláte to tak, že v nabídce Start vyhledejte Remote Debugger, otevřete ho a pokud se zobrazí výzva, povolte ladicímu programu konfigurovat nastavení brány firewall. Ve výchozím nastavení se ladicí program spustí s ověřováním systému Windows. To bude vyžadovat přihlašovací údaje uživatele, pokud přihlášený uživatel není na obou počítačích stejný.

Pokud ho chcete změnit na žádnéověřování , přejděte v vzdáleného ladicího programu na Nástroje –>Možnostia nastavte ho na Žádné ověřování. Po nastavení vzdáleného ladicího programu musíte se také ujistit, že jste nastavili hostitelské zařízení do režimu vývojáře. Potom můžete nasazení provést z vývojového počítače.

Další informace najdete na stránce webu Download Center sady Visual Studio.

Předávání argumentů ladění příkazového řádku

V sadě Visual Studio 2019 můžete při spuštění ladění aplikací UWP předat argumenty ladění přes příkazový řádek. K argumentům ladění příkazového řádku můžete přistupovat z parametru args v metodě OnLaunched třídy Application. Pokud chcete zadat argumenty ladění příkazového řádku, otevřete vlastnosti projektu a přejděte na kartu Ladění.

Poznámka:

Tato možnost je dostupná v sadě Visual Studio 2017 (verze 15.1) pro C#, VB a C++. JavaScript je k dispozici v novějších verzích. Argumenty ladění příkazového řádku jsou k dispozici pro všechny typy nasazení s výjimkou simulátoru.

U projektů C# a VB UPW uvidíte argumenty příkazového řádku : pole v části Možnosti spuštění.

argumenty příkazového řádku

U projektů pro C++ a JS UWP uvidíte argumenty příkazového řádku jako pole ve ladicích vlastnostech.

Snímek obrazovky stránky vlastností aplikace App 4 s možnostmi konfigurace a vybranou možností Ladění > ukazující vlastnost argumentů příkazového řádku uvedenou v tabulce.

Jakmile zadáte argumenty příkazového řádku, můžete získat přístup k hodnotě argumentu v metodě OnLaunched aplikace. LaunchActivatedEventArgs objekt argumenty bude mít vlastnost Argumenty s hodnotou nastavenou na text v poli argumenty příkazového řádku.

Snímek obrazovky s argumenty příkazového řádku pro C++ a JS

Režimy ověřování

Pro nasazení vzdáleného počítače existují tři režimy ověřování:

  • Universal (Unencrypted Protocol): Tento režim ověřování použijte při každém nasazení do vzdáleného zařízení. V současné době se jedná o zařízení IoT, zařízení Xbox a zařízení HoloLens a také počítače s Windows verze 1703 (Creators Update) nebo novější. Univerzální (nešifrovaný protokol) by se měl používat jenom v důvěryhodných sítích. Ladicí připojení je zranitelné vůči uživatelům se zlými úmysly, kteří můžou zachytit a změnit data předávaná mezi vývojovým zařízením a vzdáleným počítačem.
  • Windows: Tento režim ověřování je určený jenom pro vzdálený počítač (stolní nebo přenosný počítač) se spuštěnými nástroji Visual Studio Remote Tools. Tento režim ověřování použijte, pokud máte přístup k přihlašovacím údajům přihlášeného uživatele cílového počítače. Toto je nejbezpečnější kanál pro vzdálené nasazení.
  • Žádné: Tento režim ověřování je určen pouze pro vzdálený počítač (stolní nebo přenosný počítač) se spuštěnými nástroji Visual Studio Remote Tools. Tento režim ověřování použijte, pokud máte testovací počítač nastavený v prostředí s přihlášeným testovacím účtem a nemůžete zadat přihlašovací údaje. Ujistěte se, že je nastavení vzdáleného ladicího programu nakonfigurováno tak, aby přijímalo připojení bez ověřování.

Pokročilé možnosti vzdáleného nasazení

Od vydání sady Visual Studio 2015 Update 3 a Windows 10 Anniversary Update existují nové pokročilé možnosti vzdáleného nasazení pro určitá zařízení s Windows 10. Rozšířené možnosti vzdáleného nasazení najdete v menu Ladění pro vlastnosti projektu.

Mezi nové vlastnosti patří:

  • Typ nasazení
  • Cesta registrace balíčku
  • Zachovat všechny soubory na zařízení – i ty, které už nejsou součástí vašeho rozložení

Požadavky

Pokud chcete využít pokročilé možnosti vzdáleného nasazení, musíte splňovat následující požadavky:

  • Máte nainstalovanou verzi sady Visual Studio 2015 Update 3 nebo novější s Windows 10 Tools 1.4.1 nebo novější (která zahrnuje sadu Windows 10 Anniversary Update SDK). Doporučujeme používat nejnovější verzi sady Visual Studio s aktualizacemi, abyste měli jistotu, že získáte všechny nejnovější funkce pro vývoj a zabezpečení.
  • Zaměřte se na vzdálené zařízení Xbox s aktualizací Windows 10 Anniversary Update nebo na PC s aktualizací Windows 10 Creators Update
  • Použití režimu univerzálního ověřování

Stránky vlastností

V případě aplikace pro UPW jazyka C# nebo Visual Basic bude stránka vlastností vypadat následovně.

vlastnosti CS nebo VB

V případě aplikace pro UPW jazyka C++ bude stránka vlastností vypadat následovně.

Cpp vlastnosti

Kopírování souborů do zařízení

Kopírování souborů do zařízení fyzicky přenese soubory přes síť do vzdáleného zařízení. Zkopíruje a zaregistruje rozložení balíčku vytvořené do složky cesty Layout. Visual Studio zachová soubory, které se zkopírují do zařízení, synchronizované se soubory v projektu sady Visual Studio; existuje však možnost zachovat všechny soubory na zařízení – i ty, které už nejsou součástí vašeho rozložení. Když tuto možnost vyberete, znamená to, že všechny soubory, které byly dříve zkopírovány do vzdáleného zařízení, ale už nejsou součástí projektu, zůstanou na vzdáleném zařízení.

Cesta pro registraci balíčku , určená při kopírování souborů do zařízení, představuje fyzické umístění na vzdáleném zařízení, kam se soubory kopírují. Tuto cestu lze zadat jako jakoukoli relativní cestu. Umístění, kam jsou soubory nasazené, bude relativní vzhledem ke kořenovému adresáři vývojových souborů, které se budou lišit v závislosti na cílovém zařízení. Zadání této cesty je užitečné pro více vývojářů, kteří sdílejí stejné zařízení a pracují na balíčcích s určitou odchylkou sestavení.

Poznámka:

Kopírování souborů do zařízení se v současné době podporuje na Xboxu s Windows 10 Anniversary Update a počítači s Windows 10 Creators Update .

Na vzdáleném zařízení se rozložení zkopíruje do následujícího výchozího umístění: \\MY-DEVKIT\DevelopmentFiles\PACKAGE-REGISTRATION-PATH

Registrace rozložení ze sítě

Když se rozhodnete rozložení zaregistrovat ze sítě, můžete vytvořit rozložení balíčku do sdílené síťové složky a pak toto rozložení zaregistrovat na vzdáleném zařízení přímo ze sítě. To vyžaduje, abyste zadali cestu ke složce rozložení (síťové sdílení), která je přístupná ze vzdáleného zařízení. Vlastnost cesty ke složce rozložení je cesta nastavená vzhledem k počítači, na kterém běží Visual Studio, zatímco vlastnost cesty k registraci balíčku je stejná cesta, ale zadaná vzhledem ke vzdálenému zařízení.

Pokud chcete úspěšně zaregistrovat rozložení ze sítě, musíte nejprve udělat z cesty ke složce rozložení sdílenou síťovou složku. Uděláte to tak, že kliknete pravým tlačítkem na složku v Průzkumníkovi souborů, vyberete Sdílet s > Konkrétní lidéa pak zvolíte uživatele, se kterými chcete složku sdílet. Když se pokusíte zaregistrovat rozložení ze sítě, zobrazí se výzva k zadání přihlašovacích údajů, abyste se ujistili, že se registrujete jako uživatel s přístupem ke sdílené složce.

Nápovědu k tomu najdete v následujících příkladech:

  • Příklad 1 (místní složka rozložení, přístupná jako sdílená složka sítě):

    • cesta ke složce Layout = D:\Layouts\App1
    • cesta registrace balíčku = \\NETWORK-SHARE\Layouts\App1
  • Příklad 2 (složka rozložení sítě):

    • cesta ke složce Layout = \\NETWORK-SHARE\Layouts\App1
    • cesta registrace balíčku = \\NETWORK-SHARE\Layouts\App1

Při první registraci rozložení ze sítě se vaše přihlašovací údaje uloží do mezipaměti na cílovém zařízení, takže se nemusíte opakovaně přihlašovat. Pokud chcete odebrat přihlašovací údaje uložené v mezipaměti, můžete použít nástroj WinAppDeployCmd.exe ze sady Windows 10 SDK pomocí příkazu deletecreds.

Při registraci rozložení ze sítě nelze vybrat možnost ponechat všechny soubory na zařízení, protože do vzdáleného zařízení nejsou fyzicky zkopírovány žádné soubory.

Poznámka:

Rozložení registru z sítě je v současné době podporováno na Xboxu a počítačích s aktualizací Windows 10 Anniversary Update nebo Creators Update.

Na vzdáleném zařízení se rozložení zaregistruje do následujícího výchozího umístění v závislosti na rodině zařízení: Xbox: \\MY-DEVKIT\DevelopmentFiles\XrfsFiles – jedná se o odkaz na cestu registrace balíčku počítač nepoužívá symlink a místo toho přímo zaregistruje cestu registrace balíčku

Možnosti ladění

Ve Windows 10 se výkon při spouštění aplikací pro UPW vylepšuje proaktivním spuštěním a následným pozastavením aplikací v technice označované jako předběžné spuštění. Mnoho aplikací nemusí pro práci v tomto režimu dělat nic zvláštního, ale některé aplikace můžou potřebovat upravit jejich chování. Pokud chcete ladit případné problémy v těchto cestách kódu, můžete spustit ladění aplikace z Visual Studio v režimu předběžného spuštění.

Ladění je podporováno jak z projektu sady Visual Studio (Ladění –>Další cíle ladění –>Ladění univerzálních aplikací pro Windows), tak pro aplikace již nainstalované na počítači (Ladění –>Další cíle ladění –>Ladění nainstalovaného balíčku aplikace výběrem políčka Aktivovat aplikaci s předběžným spuštěním). Další informace naleznete v tématu Ladění UWP předběžné spuštění.

Na stránce vlastností Debug projektu spuštění můžete nastavit následující možnosti nasazení:

  • Povolit loopback místní sítě

    Z bezpečnostních důvodů není aplikaci UWP, která je nainstalována standardním způsobem, povoleno provádět síťové hovory k zařízení, na které je nainstalována. Nasazení sady Visual Studio ve výchozím nastavení vytvoří výjimku z tohoto pravidla pro nasazenou aplikaci. Tato výjimka umožňuje otestovat komunikační postupy na jednom počítači. Před odesláním aplikace do Microsoft Storu byste měli aplikaci otestovat bez výjimky.

    Chcete-li odebrat výjimku zpětné smyčky sítě v aplikaci:

    • Na stránce vlastností C# a Visual Basic Debug zrušte zaškrtnutí políčka Povolit zpětnou smyčku místní sítě.
    • Na stránce vlastností Ladění jazyka JavaScript a C++ nastavte hodnotu Povolit zpětné smyčky místní sítě na hodnotu No.
  • Nespouštět, ale ladit můj kód při spuštění / Spustit aplikaci

    Chcete-li nakonfigurovat nasazení tak, aby se při spuštění aplikace automaticky spustila ladicí relace:

    • Na stránce vlastností C# a Visual Basic Debug zaškrtněte políčko Nespouštět, ale při spuštění ladit kód.
    • Na stránce vlastností JavaScriptu a C++ Ladění nastavte hodnotu Spustit aplikaci na Ano.

Symboly

Soubory symbolů obsahují řadu velmi užitečných dat při ladění kódu, jako jsou proměnné, názvy funkcí a adresy vstupního bodu, což vám umožní lépe porozumět výjimkám a pořadí provádění volání. Symboly pro většinu variant Windows jsou k dispozici prostřednictvím Microsoft Symbol Server nebo je lze stáhnout pro rychlejší, offline vyhledávání v Stáhnout balíčky symbolů systému Windows.

Pokud chcete nastavit možnosti symbolů pro Visual Studio, vyberte Tools > Optionsa pak v dialogovém okně přejděte na Ladění > Symboly.

dialogové okno Možnosti

Pokud chcete načíst symboly v ladicí relaci s WinDbg, nastavte proměnnou sympath na umístění balíčku symbolů. Spuštěním následujícího příkazu se například načtou symboly ze serveru Microsoft Symbol Server a uloží je do mezipaměti v adresáři C:\Symbols:

.sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
.reload

Další cesty můžete přidat pomocí oddělovače ‘;’ nebo pomocí příkazu .sympath+. Pro více pokročilé operace se symboly, které používají WinDbg, viz téma Veřejné a Soukromé Symboly.

WinDbg

WinDbg je výkonný ladicí program, který je dodáván jako součást sady Nástroje ladění pro Windows, který je součástí sady Windows SDK. Instalace sady Windows SDK umožňuje nainstalovat nástroje ladění pro Windows jako samostatný produkt. I když je vysoce užitečný pro ladění nativního kódu, nedoporučujeme WinDbg pro aplikace napsané ve spravovaném kódu nebo HTML5.

Pokud chcete používat WinDbg s aplikacemi pro UPW, musíte nejprve zakázat správu doby životnosti procesu (PLM) pro balíček aplikace pomocí PLMDebug, jak je popsáno v tématu Testování a ladění nástrojů pro správu doby života procesu (PLM).

plmdebug /enableDebug [PackageFullName] ""C:\Program Files\Debugging Tools for Windows (x64)\WinDbg.exe\" -server npipe:pipe=test"

Na rozdíl od sady Visual Studio většina základních funkcí WinDbg spoléhá na poskytování příkazů do příkazového okna. Poskytnuté příkazy umožňují zobrazit stav provádění, prozkoumat výpisy havárií v uživatelském režimu a ladit v různých režimech.

Jedním z nejoblíbenějších příkazů v WinDbg je !analyze -v, který se používá k načtení podrobného množství informací o aktuální výjimce, včetně:

  • FAULTING_IP: ukazatel instrukce v době chyby
  • EXCEPTION_RECORD: adresa, kód a příznaky aktuální výjimky
  • STACK_TEXT: trasování zásobníku před výjimkou

Úplný seznam všech příkazů WinDbg naleznete v tématu Příkazy ladicího programu.