Dela via


Distribuera och felsöka UWP-appar

Den här artikeln vägleder dig genom stegen för att rikta in dig på olika distributions- och felsökningsmål.

Med Microsoft Visual Studio kan du distribuera och felsöka dina UWP-appar (Universal Windows Platform) på en mängd olika Windows 10-enheter. Visual Studio hanterar processen med att skapa och registrera appen på målenheten.

Välja ett distributionsmål

Om du vill välja ett mål går du till listrutan för felsökningsmål bredvid knappen Starta felsökning och väljer vilket mål du vill distribuera din app till. När målet har valts väljer du Starta felsökning (F5) för att distribuera och felsöka det målet, eller välj Ctrl+F5 för att bara distribuera till det målet.

Felsöka enhetsmållista

  • Simulator distribuerar appen till en simulerad miljö på den aktuella utvecklingsdatorn. Det här alternativet är bara tillgängligt om appens Minsta version för målplattform är mindre än eller lika med operativsystemet på din utvecklingsdator.
  • Den lokala datorn distribuerar appen till den aktuella utvecklingsdatorn. Det här alternativet är bara tillgängligt om appens Minsta version för målplattform är mindre än eller lika med operativsystemet på din utvecklingsdator.
  • Med fjärrdatorn kan du ange ett fjärrmål för att distribuera appen. Mer information om hur du distribuerar till en fjärrdator finns i Ange en fjärrenhet.
  • Enheten distribuerar appen till en USB-ansluten enhet. Enheten måste vara upplåst för utvecklare och ha skärmen upplåst.
  • En emulator målenhet startar och distribuerar appen till en emulator enligt den konfiguration som specificeras i namnet. Emulatorer är endast tillgängliga på Hyper-V aktiverade datorer som kör Windows 8.1 eller senare.

Felsöka distribuerade appar

Visual Studio kan också ansluta till alla UWP-appprocesser som körs genom att välja Felsöka och sedan Koppla till process. Anslutning till en process som körs kräver inte det ursprungliga Visual Studio-projektet, men att läsa in processens symboler hjälper avsevärt när du felsöker en process som du inte har den ursprungliga koden för.

Dessutom kan alla installerade apppaket anslutas och felsökas genom att välja Felsöka, Annat och sedan Felsöka installerade apppaket.

dialogruta Felsöka installerat apppaket

Om du väljer Starta inte, men om du felsöker min kod när den startar , kommer Visual Studio-felsökaren att ansluta till UWP-appen när du startar den vid en anpassad tidpunkt. Det här är ett effektivt sätt att felsöka kontrollsökvägar från olika startmetoder, till exempel protokollaktivering med anpassade parametrar.

UWP-appar kan utvecklas och kompileras i Windows 8.1 eller senare, men windows 10 måste köras. Om du utvecklar en UWP-app på en Windows 8.1-dator kan du fjärrfelsöka en UWP-app som körs på en annan Windows 10-enhet, förutsatt att både värden och måldatorn finns på samma LAN. Det gör du genom att ladda ned och installera Fjärrverktyg för Visual Studio på båda datorerna. Den installerade versionen måste matcha den befintliga versionen av Visual Studio som du har installerat, och den arkitektur som du väljer (x86, x64) måste också matcha målappens.

Paketlayout

Från och med Visual Studio 2015 Update 3 har vi lagt till alternativet för utvecklare att ange layoutsökvägen för sina UWP-appar. Detta avgör var paketlayouten kopieras till på disken när du skapar din app. Som standard anges den här egenskapen i förhållande till projektets rotkatalog. Om du inte ändrar den här egenskapen förblir beteendet detsamma som för tidigare versioner av Visual Studio.

Den här egenskapen kan ändras i projektets felsökningsegenskaper .

Om du vill inkludera alla layoutfiler i paketet när du skapar ett paket för din app måste du lägga till projektegenskapen <IncludeLayoutFilesInPackage>true</IncludeLayoutFilesInPackage>.

Så här lägger du till den här egenskapen:

  1. Högerklicka på projektet och välj sedan Ta bort projekt.
  2. Högerklicka på projektet och välj sedan Redigera [projektnamn].xxproj (.xxproj ändras beroende på projektspråket).
  3. Lägg till egenskapen och ladda sedan om projektet.

Ange en fjärrenhet

C# och Microsoft Visual Basic

Om du vill ange en fjärrdator för C# eller Microsoft Visual Basic-appar väljer du Fjärrdator i listrutan felsökningsmål. Dialogrutan Fjärranslutningar visas, där du kan ange en IP-adress eller välja en identifierad enhet. Som standard är universellt autentiseringsläge valt. Information om vilket autentiseringsläge som ska användas finns i Autentiseringslägen.

Dialogrutan Fjärranslutningar

Om du vill återgå till den här dialogrutan kan du öppna projektegenskaper och gå till fliken Felsökning . Därifrån väljer du Sök bredvid Fjärrdator:

fliken Felsöka

Om du vill distribuera en app till en fjärrdator före Creators Update måste du också ladda ned och installera Visual Studio Remote Tools på måldatorn. Fullständiga instruktioner finns i Instruktioner för fjärrdatorer. Men från och med Creators Update PC har även stöd för fjärrdistribution.

C++ och JavaScript

Så här anger du ett fjärrdatormål för en C++ eller JavaScript UWP-app:

  1. Högerklicka på projektet i Solution Explorer och klicka sedan på Egenskaper.
  2. Gå till Felsökningsinställningar och under Felsökningsprogram för att starta väljer du Fjärrdator.
  3. Ange datornamnet (eller klicka på Leta upp för att hitta ett) och ange sedan egenskapen Autentiseringstyp .

Felsöka egenskapssidor

När datorn har angetts kan du välja Fjärrdator i listrutan felsökningsmål för att återgå till den angivna datorn. Endast en fjärrdator kan väljas i taget.

Instruktioner för fjärrdator

Anmärkning

Dessa instruktioner krävs endast för äldre versioner av Windows 10. Från och med Creators Update kan en dator behandlas som en Xbox. Det innebär att genom att aktivera Enhetsidentifiering i datorns meny För utvecklarläge och använda universell autentisering för att pin-para ihop och ansluta med datorn.

Om du vill distribuera till en fjärrdator före Creators Update måste måldatorn ha Visual Studio Remote Tools installerat. Fjärrdatorn måste också köra en version av Windows som är större än eller lika med dina appar Target Platform Min. Version egenskap. När du har installerat fjärrverktygen måste du starta fjärrfelsökaren på måldatorn.

Det gör du genom att söka efter fjärrfelsökareStart-menyn , öppna den och om du uppmanas att göra det kan du låta felsökaren konfigurera brandväggsinställningarna. Som standard startas felsökningsprogrammet med Windows-autentisering. Detta kräver användarautentiseringsuppgifter om den inloggade användaren inte är samma på båda datorerna.

Om du vill ändra den till ingen autentisering går du till Verktyg -> i Fjärrfelsökaren och ställer sedan in den på Ingen autentisering. När fjärrfelsökaren har konfigurerats måste du också se till att du har ställt in värdenheten på utvecklarläge. Därefter kan du distribuera från utvecklingsdatorn.

Mer information finns på sidan Nedladdningscenter för Visual Studio .

Sända felsökningsargument för kommandoraden

I Visual Studio 2019 kan du skicka felsökningsargument för kommandoraden när du börjar felsöka UWP-program. Du kan komma åt kommandoradens felsökningsargument från args-parametern i metoden OnLaunched i klassen Application . Om du vill ange argument för felsökning av kommandorad öppnar du projektets egenskaper och navigerar till fliken Felsök .

Anmärkning

Detta är tillgängligt i Visual Studio 2017 (version 15.1) för C#, VB och C++. JavaScript är tillgängligt i senare versioner. Argument för felsökning av kommandorad är tillgängliga för alla distributionstyper förutom simulatorn.

För C#- och VB UWP-projekt visas ett kommandoradsargument: fält under Startalternativ.

kommandorads-argument

För C++- och JS UWP-projekt visas Kommandoradsargument som ett fält i Felsökningsalternativ.

Skärmbild av App 4:s egenskapssidor med konfigurationsegenskaper > med alternativet Felsökning valt, visar egenskapen Kommandoradsargument i tabellen.

När du har angett kommandoradsargumenten kan du komma åt värdet för argumentet i appens OnLaunched-metod . LaunchActivatedEventArgs-objektet args har egenskapen Argument med värdet inställt på texten i fältet kommandoradsargument.

Skärmbild av kommandoradsargument för C++ och JS.

Autentiseringslägen

Det finns tre autentiseringslägen för distribution av fjärrdatorer:

  • Universellt (okrypterat protokoll): Använd det här autentiseringsläget när du distribuerar till en fjärrenhet. För närvarande gäller detta för IoT-enheter, Xbox-enheter och HoloLens-enheter samt datorer med Windows Version 1703 (Creators Update) eller senare. Universellt (okrypterat protokoll) bör endast användas i betrodda nätverk. Felsökningsanslutningen är sårbar för skadliga användare som kan avlyssna och ändra data som skickas mellan utvecklings- och fjärrdatorn.
  • Windows: Det här autentiseringsläget är endast avsett att användas för en fjärrdator (stationär eller bärbar dator) som kör Visual Studio Remote Tools. Använd det här autentiseringsläget när du har åtkomst till autentiseringsuppgifterna för den inloggade användaren av måldatorn. Det här är den säkraste kanalen för fjärrdistribution.
  • Ingen: Det här autentiseringsläget är endast avsett att användas för en fjärrdator (stationär eller bärbar dator) som kör Visual Studio Remote Tools. Använd det här autentiseringsläget när du har en testdator konfigurerad i en miljö som har ett testkonto loggat in och du inte kan ange autentiseringsuppgifterna. Kontrollera att inställningarna för fjärrfelsökaren är inställda på att inte acceptera någon autentisering.

Avancerade alternativ för fjärrdistribution

Från och med lanseringen av Visual Studio 2015 Update 3 och Windows 10 Anniversary Update finns det nya avancerade fjärrdistributionsalternativ för vissa Windows 10-enheter. De avancerade fjärrdistributionsalternativen finns på felsökningsmenyn för projektegenskaper.

De nya egenskaperna omfattar:

  • Distributionstyp
  • Sökväg för paketregistrering
  • Behåll alla filer på enheten – även de som inte längre ingår i layouten

Kravspecifikation

Om du vill använda de avancerade alternativen för fjärrdistribution måste du uppfylla följande krav:

  • Ha Visual Studio 2015 Update 3 eller senare Visual Studio-versionen installerad med Windows 10 Tools 1.4.1 eller senare (som innehåller Windows 10 Anniversary Update SDK) Vi rekommenderar att du använder den senaste versionen av Visual Studio med uppdateringar för att se till att du får alla de senaste utvecklings- och säkerhetsfunktionerna.
  • Sikta mot en Windows 10 Anniversary Update Xbox-enhet eller en Windows 10 Creators Update-dator
  • Använda universellt autentiseringsläge

Egenskapssidor

För en C#- eller Visual Basic UWP-app ser egenskapssidan ut så här.

CS- eller VB-egenskaper

För en C++ UWP-app ser egenskapssidan ut så här.

Cpp-egenskaper

Kopiera filer till enheten

Kopiera filer till enheten överför filerna via nätverket till den fjärranslutna enheten. Den kopierar och registrerar paketlayouten som har skapats till mappsökvägen Layout. Visual Studio håller filerna som kopieras till enheten synkroniserade med filerna i Visual Studio-projektet. Det finns dock ett alternativ för att behålla alla filer på enheten – även de som inte längre ingår i layouten. Om du väljer det här alternativet finns alla filer som tidigare kopierats till fjärrenheten, men som inte längre är en del av projektet, kvar på fjärrenheten.

Den paketregistreringssökväg som anges när du kopierar filer till enheten är den fysiska platsen på fjärrenheten där filerna kopieras. Den här sökvägen kan anges som valfri relativ sökväg. Platsen där filerna distribueras är relativ till en rot för utvecklingsfiler som varierar beroende på målenheten. Att ange den här sökvägen är användbart för flera utvecklare som delar samma enhet och arbetar med paket med viss kompileringsavvikelse.

Anmärkning

Kopiera filer till enheten stöds för närvarande på Xbox som kör Windows 10 Anniversary Update och datorer som kör Windows 10 Creators Update .

På fjärrenheten kopieras layouten till följande standardplats: \\MY-DEVKIT\DevelopmentFiles\PACKAGE-REGISTRATION-PATH

Registrera layout från nätverk

När du väljer att registrera layouten från nätverket kan du skapa paketlayouten till en nätverksresurs och sedan registrera layouten på fjärrenheten direkt från nätverket. Detta kräver att du anger sökvägen till en layoutmapp (en nätverksdelning) som är tillgänglig från fjärrenheten. Mappsökvägen för egenskapen Layout är sökvägen som anges i förhållande till den dator som kör Visual Studio, medan mappsökvägen för egenskapen Paketsregistrering är samma sökväg, men anges i förhållande till fjärrenheten.

För att lyckas registrera layouten från nätverket måste du först göra sökvägen till layoutmappen till en delad nätverksmapp. Det gör du genom att högerklicka på mappen i Utforskaren, välja Dela med > specifika personer och sedan välja de användare som du vill dela mappen med. När du försöker registrera layouten från nätverket uppmanas du att ange autentiseringsuppgifter för att säkerställa att du registrerar dig som användare med åtkomst till resursen.

Hjälp med detta finns i följande exempel:

  • Exempel 1 (lokal layoutmapp som är tillgänglig som en nätverksresurs):

    • sökväg för layoutmapp = D:\Layouts\App1
    • Sökväg för paketregistrering = \\NETWORK-SHARE\Layouts\App1
  • Exempel 2 (mapp för nätverkslayout):

    • sökväg för layoutmapp = \\NETWORK-SHARE\Layouts\App1
    • Sökväg för paketregistrering = \\NETWORK-SHARE\Layouts\App1

När du först registrerar layouten från nätverket cachelagras dina autentiseringsuppgifter på målenheten så att du inte behöver logga in upprepade gånger. Om du vill ta bort cachelagrade autentiseringsuppgifter kan du använda verktygetWinAppDeployCmd.exe från Windows 10 SDK med kommandot deletecreds .

Du kan inte välja att behålla alla filer på enheten när du registrerar layouten från nätverket eftersom inga filer kopieras fysiskt till fjärrenheten.

Anmärkning

Registrera layout från nätverk stöds för närvarande på Xbox som kör Windows 10 Anniversary Update och datorer som kör Windows 10 Creators Update.

På fjärrenheten registreras layouten på följande standardplats beroende på enhetsfamiljen: Xbox: \\MY-DEVKIT\DevelopmentFiles\XrfsFiles – det här är en symlink till paketregistreringssökväg, datorn använder inte en symlink och registrerar där i stället paketregistreringssökvägen direkt.

Felsökningsalternativ

I Windows 10 förbättras startprestandan för UWP-appar genom att proaktivt starta och sedan pausa appar i en teknik som kallas prelaunch. Många appar behöver inte göra något speciellt för att fungera i det här läget, men vissa appar kan behöva justera sitt beteende. För att felsöka eventuella problem i dessa kodsökvägar kan du börja felsöka appen från Visual Studio i förstartsläge.

Felsökning stöds både från ett Visual Studio-projekt (Felsöka –>Andra felsökningsmål –>Felsöka universella Windows App Prelaunch-) och för appar som redan är installerade på datorn (Felsöka –>Andra felsökningsmål –>Felsöka installerat apppaket genom att markera kryssrutan Aktivera app med prelaunch). Mer information finns i Felsöka UWP Prelaunch.

Du kan ange följande distributionsalternativ på den Debug-egenskapssidan för startprojektet:

  • Tillåt loopback för lokalt nätverk

    Av säkerhetsskäl tillåts inte en UWP-app som är installerad på standard sätt att göra nätverksanrop till den enhet som den är installerad på. Som standard skapar Visual Studio-distributionen ett undantag från den här regeln för den distribuerade appen. Med det här undantaget kan du testa kommunikationsprocedurer på en enda dator. Innan du skickar din app till Microsoft Store bör du testa appen utan undantaget.

    Så här tar du bort undantaget för nätverksloopback från appen:

    • På egenskapssidan C# och Visual Basic Debug avmarkerar du kryssrutan Tillåt loopback för lokala nätverk.
    • På egenskapssidan JavaScript och C++ Felsökning anger du värdet Tillåt lokal nätverksåterkoppling till Nej.
  • Starta inte, men felsök min kod när den startar/Starta programmet

    Så här konfigurerar du distributionen så att den startar en felsökningssession automatiskt när appen startas:

    • På egenskapssidan för C# och Visual Basic Felsökning markerar du kryssrutan Starta inte, utan felsök min kod när den startar.
    • På egenskapssidan JavaScript och C++ Felsökning anger du värdet Starta program till Ja.

Symboler

Symbolfiler innehåller en mängd mycket användbara data vid felsökning av kod, till exempel variabler, funktionsnamn och startpunktsadresser, så att du bättre kan förstå undantag och anropsstackens körningsordning. Symboler för de flesta varianter av Windows är tillgängliga via Microsoft Symbol Server eller kan laddas ned för snabbare, offline-sökningar på Ladda ned Windows-symbolpaket.

Om du vill ange symbolalternativ för Visual Studio väljer du Verktygsalternativ >och går sedan till Felsökning > av symboler i dialogfönstret.

dialogrutan Alternativ

Om du vill läsa in symboler i en felsökningssession med WinDbg, anger du variabeln sympath till platsen för symbolpaketet. Om du till exempel kör följande kommando kommer symboler att laddas från Microsoft Symbol Server och sedan cachelagras i katalogen C:\Symbols.

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

Du kan lägga till fler sökvägar med hjälp ‘;’ av avgränsare eller använda .sympath+ kommandot . För mer information om avancerade symbolåtgärder som använder WinDbg, se offentliga och privata symboler.

WinDbg

WinDbg är ett kraftfullt felsökningsprogram som levereras som en del av felsökningsverktygen för Windows-paketet, som ingår i Windows SDK. Med Windows SDK-installationen kan du installera felsökningsverktyg för Windows som en fristående produkt. Även om det är mycket användbart för felsökning av intern kod rekommenderar vi inte WinDbg för appar som skrivits i hanterad kod eller HTML5.

Om du vill använda WinDbg med UWP-appar måste du först inaktivera Process Lifetime Management (PLM) för ditt apppaket med hjälp av PLMDebug, enligt beskrivningen i Test- och felsökningsverktyg för Process Lifetime Management (PLM).

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

Till skillnad från Visual Studio förlitar sig de flesta av de viktigaste funktionerna i WinDbg på att tillhandahålla kommandon till kommandofönstret. Med de angivna kommandona kan du visa körningstillstånd, undersöka kraschdumpar i användarläge och felsöka i en mängd olika lägen.

Ett av de mest populära kommandona i WinDbg är !analyze -v, som används för att hämta utförlig information om det aktuella undantaget, inklusive:

  • FAULTING_IP: instruktionspekare vid tidpunkten för felet
  • EXCEPTION_RECORD: adress, kod och flaggor för det aktuella undantaget
  • STACK_TEXT: stackspårning före undantag

En fullständig lista över alla WinDbg-kommandon finns i Felsökningskommandon.