Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel führt Sie durch die Schritte, um verschiedene Bereitstellungs- und Debugging-Ziele anzuvisieren.
Mit Microsoft Visual Studio können Sie Ihre Apps für die universelle Windows-Plattform (UWP) auf einer Vielzahl von Windows 10-Geräten bereitstellen und debuggen. Visual Studio behandelt den Prozess des Erstellens und Registrierens der App auf dem Zielgerät.
Auswählen eines Bereitstellungsziels
Um ein Ziel auszuwählen, wechseln Sie zur Dropdownliste "Debugziel" neben der Schaltfläche "Debuggen starten", und wählen Sie aus, für welches Ziel Sie Ihre App bereitstellen möchten. Nachdem das Ziel ausgewählt wurde, wählen Sie Debuggen starten (F5) aus, um das Ziel bereitzustellen und zu debuggen, oder wählen Sie STRG+F5- aus, um nur für dieses Ziel bereitzustellen.
- Simulator wird die App in einer simulierten Umgebung auf Ihrem aktuellen Entwicklungsrechner bereitstellen. Diese Option ist nur verfügbar, wenn die Target Platform Min. Version der App kleiner oder gleich dem Betriebssystem auf Ihrem Entwicklungscomputer ist.
- Lokale Maschine wird die App auf Ihrem aktuellen Entwicklungscomputer bereitstellen. Diese Option ist nur verfügbar, wenn die Target Platform Min. Version der App kleiner oder gleich dem Betriebssystem auf Ihrem Entwicklungscomputer ist.
- Remote-Maschine ermöglicht Ihnen die Angabe eines Remoteziels für die Bereitstellung der App. Weitere Informationen zur Bereitstellung auf einem Remotecomputer finden Sie unter Angeben eines Remotegeräts.
- Device stellt die App auf einem USB-verbundenen Gerät bereit. Das Gerät muss im Entwicklermodus entsperrt sein und der Bildschirm muss entsperrt sein.
- Ein Emulator Ziel startet und stellt die App in einem Emulator mit der im Namen angegebenen Konfiguration bereit. Emulatoren sind nur auf Hyper-V aktivierten Computern mit Windows 8.1 oder höher verfügbar.
Debuggen bereitgestellter Apps
Visual Studio kann auch mit jedem laufenden UWP-App-Prozess verbunden werden, indem Sie Debugauswählen und dann An Prozess anhängen. Das Anhängen an einen ausgeführten Prozess erfordert nicht das ursprüngliche Visual Studio-Projekt, aber das Laden der -Symbole des Prozesses hilft erheblich beim Debuggen eines Prozesses, für den Sie nicht über den ursprünglichen Code verfügen.
Darüber hinaus können alle installierten App-Pakete angefügt und debuggt werden, indem Sie Debug-, Andereund dann Installierte App-Pakete debuggenauswählen.
Wenn Sie die Option Nicht starten, aber meinen Code debuggen, wenn er startet wählen, wird der Visual Studio-Debugger an Ihre UWP-App angefügt, wenn Sie sie zu einem benutzerdefinierten Zeitpunkt starten. Dies ist eine effektive Möglichkeit, Steuerungspfade aus verschiedenen Startmethodenzu debuggen, z. B. Protokollaktivierung mit benutzerdefinierten Parametern.
UWP-Apps können unter Windows 8.1 oder höher entwickelt und kompiliert werden, erfordern jedoch die Ausführung von Windows 10. Wenn Sie eine UWP-App auf einem Windows 8.1-PC entwickeln, können Sie eine UWP-App remote debuggen, die auf einem anderen Windows 10-Gerät ausgeführt wird, vorausgesetzt, der Host und der Zielcomputer befinden sich auf demselben LAN. Laden Sie dazu die Remotetools für Visual Studio auf beiden Computern herunter, und installieren Sie sie. Die installierte Version muss mit der vorhandenen Version von Visual Studio übereinstimmen, die Sie installiert haben, und die von Ihnen ausgewählte Architektur (x86, x64) muss auch mit der ihrer Ziel-App übereinstimmen.
Paketlayout
Seit Visual Studio 2015 Update 3 haben wir die Möglichkeit für Entwickler hinzugefügt, den Layoutpfad für ihre UWP-Apps anzugeben. Dadurch wird festgelegt, wo das Paketlayout beim Erstellen der App auf die Festplatte kopiert wird. Diese Eigenschaft wird standardmäßig relativ zum Stammverzeichnis des Projekts festgelegt. Wenn Sie diese Eigenschaft nicht ändern, bleibt das Verhalten unverändert wie bei früheren Versionen von Visual Studio.
Diese Eigenschaft kann in den Debug- Eigenschaften des Projekts geändert werden.
Wenn Sie alle Layoutdateien in Ihr Paket einschließen möchten, wenn Sie ein Paket für Ihre App erstellen, müssen Sie die Projekteigenschaft <IncludeLayoutFilesInPackage>true</IncludeLayoutFilesInPackage>
hinzufügen.
So fügen Sie diese Eigenschaft hinzu:
- Klicken Sie mit der rechten Maustaste auf das Projekt, und dann Projekt entladenauswählen.
- Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie dann Bearbeiten [Projektname].xxproj (xxproj ändert sich je nach Projektsprache).
- Fügen Sie die Eigenschaft hinzu, und laden Sie das Projekt erneut.
Angeben eines Remotegeräts
C# und Microsoft Visual Basic
Um einen Remotecomputer für C#- oder Microsoft Visual Basic-Apps anzugeben, wählen Sie Remotecomputer in der Dropdownliste "Debugziel" aus. Das Dialogfeld Remoteverbindungen wird angezeigt, in dem Sie eine IP-Adresse angeben oder ein entdecktes Gerät auswählen können. Standardmäßig ist der Universelle Authentifizierungsmodus ausgewählt. Informationen zum Bestimmen des zu verwendenden Authentifizierungsmodus finden Sie unter Authentifizierungsmodi.
Um zu diesem Dialogfeld zurückzukehren, können Sie Projekteigenschaften öffnen und zur Registerkarte Debuggen wechseln. Wählen Sie dort Suchen neben Remotecomputer aus:
Um eine App auf einem Remote-PC vor Creators Update bereitzustellen, müssen Sie auch die Visual Studio-Remotetools auf dem Ziel-PC herunterladen und installieren. Vollständige Anweisungen finden Sie unter Remote-PC-Anweisungen. Ab dem Creators Update-PC wird jedoch auch die Remotebereitstellung unterstützt.
C++ und JavaScript
So geben Sie ein Remotecomputerziel für eine C++- oder JavaScript-UWP-App an:
- Klicken Sie im Lösungs-Explorermit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Eigenschaften.
- Wechseln Sie zu Einstellungen für das Debuggen, und wählen Sie unter Zu startender Debuggerdie Option Remotecomputeraus.
- Geben Sie den Computernamen ein (oder klicken Sie auf Suchen nach, um einen zu finden), und legen Sie dann die eigenschaft Authentifizierungstyp fest.
Nachdem der Computer angegeben wurde, können Sie Remotecomputer in der Dropdownliste "Debugziel" auswählen, um zu diesem angegebenen Computer zurückzukehren. Es kann jeweils nur ein Remotecomputer ausgewählt werden.
Anleitung für Remote-PC
Hinweis
Diese Anweisungen sind nur für ältere Versionen von Windows 10 erforderlich. Seit dem Creators Update kann ein PC wie eine Xbox behandelt werden. Das heißt, durch Aktivieren der Geräteermittlung im Menü "Entwicklermodus" des PCs und Verwenden der universellen Authentifizierung zum PIN-Koppeln und Herstellen einer Verbindung mit dem PC.
Für die Bereitstellung auf einem Remote-PC vor Creators Update muss auf dem Ziel-PC die Visual Studio-Remotetools installiert sein. Der Remote-PC muss auch eine Version von Windows ausführen, die größer oder gleich der Mindestversion der Zielplattformseigenschaft Ihrer Apps ist. Nachdem Sie die Remotetools installiert haben, müssen Sie den Remotedebugger auf dem Ziel-PC starten.
Suchen Sie dazu im Menü Start nach Remotedebugger, öffnen Sie ihn, und lassen Sie den Debugger ggf. die Konfiguration der Firewalleinstellungen zu. Standardmäßig wird der Debugger mit der Windows-Authentifizierung gestartet. Dies erfordert Benutzeranmeldeinformationen, wenn der angemeldete Benutzer nicht auf beiden PCs identisch ist.
Um es in Keine Authentifizierungzu ändern, gehen Sie im Remotedebuggerzu Tools –>Optionen, und stellen Sie es dann auf Keine Authentifizierungein. Nachdem der Remotedebugger eingerichtet wurde, müssen Sie auch sicherstellen, dass Sie das Hostgerät auf Entwicklermodusfestgelegt haben. Danach können Sie von Ihrem Entwicklungscomputer aus bereitstellen.
Weitere Informationen finden Sie auf der Webseite Visual Studio Download Center.
Übergeben von Debug-Argumenten für die Befehlszeile
In Visual Studio 2019 können Sie Debug-Argumente für die Befehlszeile übergeben, wenn Sie mit dem Debuggen von UWP-Anwendungen beginnen. Sie können auf die Befehlszeilen-Debug-Argumente aus dem args-Parameter in der OnLaunched--Methode der Application-Klasse zugreifen. Um Befehlszeilendebugargumente anzugeben, öffnen Sie die Eigenschaften des Projekts, und navigieren Sie zur Registerkarte Debuggen.
Hinweis
Dies ist in Visual Studio 2017 (Version 15.1) für C#, VB und C++ verfügbar. JavaScript ist in späteren Versionen verfügbar. Mit Ausnahme des Simulators sind Befehlszeilen-Debug-Argumente für alle Bereitstellungstypen verfügbar.
Für C#- und VB-UWP-Projekte wird ein Feld 'Befehlszeilenargumente' unter Startoptionenangezeigt.
Für C++- und JS-UWP-Projekte sind Befehlszeilenargumente als Feld in den Debugging-Eigenschaftenzu sehen.
Nachdem Sie die Befehlszeilenargumente angegeben haben, können Sie innerhalb der OnLaunched-Methode der App auf den Wert des Arguments zugreifen. Das LaunchActivatedEventArgs Objekt Args verfügt über eine Arguments-eigenschaft, wobei der Wert auf den Text im feld Befehlszeilenargumente festgelegt ist.
Authentifizierungsmodi
Es gibt drei Authentifizierungsmodi für die Bereitstellung von Remote-Computern.
- Universelles (unverschlüsseltes Protokoll): Verwenden Sie diesen Authentifizierungsmodus, wenn Sie auf einem Remotegerät bereitstellen. Derzeit gilt dies für IoT-Geräte, Xbox-Geräte und HoloLens-Geräte sowie PCs mit Windows Version 1703 (Creators Update) oder höher. Universelles (unverschlüsseltes Protokoll) sollte nur in vertrauenswürdigen Netzwerken verwendet werden. Die Debugverbindung ist anfällig für bösartige Benutzer, die Daten zwischen der Entwicklungsmaschine und dem Remotecomputer abfangen und ändern können.
- Windows: Dieser Authentifizierungsmodus soll nur für einen Remote-PC (Desktop oder Laptop) mit den Visual Studio-Remotetools verwendet werden. Verwenden Sie diesen Authentifizierungsmodus, wenn Sie Zugriff auf die Anmeldeinformationen des angemeldeten Benutzers des Zielcomputers haben. Dies ist der sicherste Kanal für die Remotebereitstellung.
- Keine: Dieser Authentifizierungsmodus soll nur für einen Remote-PC (Desktop oder Laptop) mit den Visual Studio-Remotetools verwendet werden. Verwenden Sie diesen Authentifizierungsmodus, wenn Sie einen Testcomputer in einer Umgebung eingerichtet haben, in der ein Testkonto angemeldet ist und Sie die Anmeldeinformationen nicht eingeben können. Stellen Sie sicher, dass die Remotedebuggereinstellungen so festgelegt sind, dass keine Authentifizierung akzeptiert wird.
Erweiterte Remotebereitstellungsoptionen
Ab der Veröffentlichung von Visual Studio 2015 Update 3 und dem Windows 10 Anniversary Update gibt es neue erweiterte Remotebereitstellungsoptionen für bestimmte Windows 10-Geräte. Die erweiterten Remotebereitstellungsoptionen finden Sie im Menü Debug unter Projekteigenschaften.
Die neuen Eigenschaften umfassen:
- Bereitstellungstyp
- Paketregistrierungspfad
- Bewahren Sie alle Dateien auf dem Gerät auf – auch diejenigen, die nicht mehr Teil Ihres Layouts sind
Anforderungen
Um die erweiterten Remotebereitstellungsoptionen zu nutzen, müssen Sie die folgenden Anforderungen erfüllen:
- Visual Studio 2015 Update 3 oder höher mit Windows 10 Tools 1.4.1 oder höher installiert haben (einschließlich des Windows 10 Anniversary Update SDK) Es wird empfohlen, die neueste Version von Visual Studio mit Updates zu verwenden, um sicherzustellen, dass Sie alle neuesten Entwicklungs- und Sicherheitsfeatures erhalten.
- Ein Windows 10 Anniversary Update Xbox-Fernbedienungsgerät oder ein PC mit dem Windows 10 Creators Update anvisieren.
- Modus für universelle Authentifizierung verwenden
Eigenschaften-Seiten
Bei einer C#- oder Visual Basic-UWP-App sieht die Eigenschaftenseite wie folgt aus.
Bei einer C++-UWP-App sieht die Eigenschaftenseite wie folgt aus.
Kopieren von Dateien auf das Gerät
Dateien auf das Gerät kopieren überträgt die Dateien tatsächlich über das Netzwerk auf das Remote-Gerät. Es wird das Paketlayout kopieren und registrieren, das in den Layout-Ordnerpfad erstellt wird. Visual Studio behält die Dateien, die mit den Dateien in Ihrem Visual Studio-Projekt auf das Gerät kopiert werden, synchron. Es gibt jedoch eine Möglichkeit, alle Dateien auf dem Gerät zu zu behalten – auch solche, die nicht mehr Teil Ihres Layoutssind. Wenn Sie diese Option auswählen, bleiben alle Dateien, die zuvor auf das Remotegerät kopiert wurden, aber nicht mehr Teil Ihres Projekts sind, auf dem Remotegerät.
Der Paketregistrierungspfad angegeben, wenn Sie Dateien auf das Gerät kopieren ist der physische Speicherort auf dem Remotegerät, auf dem die Dateien kopiert werden. Dieser Pfad kann als beliebiger relativer Pfad angegeben werden. Der Speicherort, an dem die Dateien bereitgestellt werden, ist relativ zu einem Stammverzeichnis für Entwicklungsdateien, der je nach Zielgerät variieren wird. Die Angabe dieses Pfads ist nützlich für mehrere Entwickler, die dasselbe Gerät nutzen und an Paketen mit einer bestimmten Buildabweichung arbeiten.
Hinweis
Kopieren von Dateien auf Gerät wird derzeit auf Xbox unter Windows 10 Anniversary Update und PCs unter Windows 10 Creators Update unterstützt.
Auf dem Remotegerät wird das Layout an den folgenden Standardspeicherort kopiert: \\MY-DEVKIT\DevelopmentFiles\PACKAGE-REGISTRATION-PATH
Layout aus dem Netzwerk registrieren
Wenn Sie sich für die Registrierung des Layouts aus dem Netzwerk entscheiden, können Sie Ihr Paketlayout in eine Netzwerkfreigabe bauen und dann das Layout auf dem Remotegerät direkt vom Netzwerk registrieren. Dies erfordert, dass Sie einen Layoutordnerpfad (eine Netzwerkfreigabe) angeben, auf den vom Remotegerät aus zugegriffen werden kann. Der Layout-Ordnerpfad ist der Pfad, der relativ zum PC festgelegt wird, auf dem Visual Studio ausgeführt wird, während der Paketregistrierungspfad der gleiche Pfad ist, jedoch relativ zum Remotegerät angegeben.
Um das Layout erfolgreich aus dem Netzwerk zu registrieren, müssen Sie zuerst den Layout-Ordnerpfad in einen freigegebenen Netzwerkordner umwandeln. Klicken Sie dazu im Datei-Explorer mit der rechten Maustaste auf den Ordner, wählen Sie Für > bestimmte Personen freigebenaus, und wählen Sie dann die Benutzer aus, für die Sie den Ordner freigeben möchten. Wenn Sie versuchen, das Layout aus dem Netzwerk zu registrieren, werden Sie aufgefordert, Anmeldeinformationen einzugeben, um sicherzustellen, dass Sie sich als Benutzer mit Freigabeberechtigungen registrieren.
Hilfe hierzu finden Sie in den folgenden Beispielen:
Beispiel 1 (lokaler Layoutordner, zugänglich als Netzwerkfreigabe):
-
Layout-Ordnerpfad =
D:\Layouts\App1
-
Paketregistrierungspfad =
\\NETWORK-SHARE\Layouts\App1
-
Layout-Ordnerpfad =
Beispiel 2 (Netzwerklayoutordner):
-
Layout-Ordnerpfad =
\\NETWORK-SHARE\Layouts\App1
-
Paketregistrierungspfad =
\\NETWORK-SHARE\Layouts\App1
-
Layout-Ordnerpfad =
Wenn Sie das Layout zuerst aus dem Netzwerk registrieren, werden Ihre Anmeldeinformationen auf dem Zielgerät zwischengespeichert, sodass Sie sich nicht wiederholt anmelden müssen. Um zwischengespeicherte Anmeldeinformationen zu entfernen, können Sie das WinAppDeployCmd.exe Tool aus dem Windows 10 SDK mit dem Befehl deletecreds verwenden.
Sie können nicht auswählen, alle Dateien auf dem Gerät beibehalten, wenn Sie das Layout aus dem Netzwerk registrieren, da keine Dateien physisch auf das Remotegerät kopiert werden.
Hinweis
Register-Layout aus dem Netzwerk wird derzeit auf Xbox unter Windows 10 Anniversary Update und auf PCs unter Windows 10 Creators Update unterstützt.
Auf dem Remotegerät wird das Layout je nach Gerätefamilie am folgenden Standardspeicherort registriert: Xbox: \\MY-DEVKIT\DevelopmentFiles\XrfsFiles
– dies ist ein Symlink zum Paketregistrierungspfad, PC keinen Symlink verwendet und stattdessen den Paketregistrierungspfad direkt registriert
Debuggingoptionen
Unter Windows 10 wird die Startleistung von UWP-Apps verbessert, indem Apps proaktiv gestartet und dann in einer Technik, die als Vorabstartbezeichnet wird, angehalten werden. Viele Apps müssen nichts Besonderes tun, um in diesem Modus zu arbeiten, aber einige Apps müssen möglicherweise ihr Verhalten anpassen. Um Probleme in diesen Codepfaden zu debuggen, können Sie das Debuggen der App über Visual Studio im Vorabstartmodus starten.
Das Debuggen wird sowohl von einem Visual Studio-Projekt unterstützt (Debug- ->Andere Debugziele ->Debuggen der universellen Windows-App vor dem Start), als auch für Apps, die bereits auf dem Computer installiert sind (Debug ->Andere Debugziele ->Debuggen des installierten App-Pakets, indem Sie das Kontrollkästchen App mit Vorstart aktivieren auswählen). Weitere Informationen finden Sie unter Debuggen des UWP-Vorabstarts.
Sie können die folgenden Bereitstellungsoptionen auf der Eigenschaftenseite Debug des Startprojekts festlegen:
lokales Netzwerk-Loopback zulassen
Aus Sicherheitsgründen darf eine UWP-App, die standardmäßig installiert ist, keine Netzwerkaufrufe an das Gerät tätigen, auf dem sie installiert ist. Standardmäßig erstellt die Visual Studio-Bereitstellung eine Ausnahme von dieser Regel für die bereitgestellte App. Mit dieser Ausnahme können Sie Kommunikationsverfahren auf einem einzigen Computer testen. Bevor Sie Ihre App an den Microsoft Store übermitteln, sollten Sie Ihre App ohne Ausnahme testen.
So entfernen Sie die Netzwerk-Loopback-Ausnahme aus der App:
- Deaktivieren Sie auf der Eigenschaftenseite "C# und Visual Basic Debuggen" das Kontrollkästchen lokalen Netzwerk-Loopback zulassen.
- Legen Sie auf der Eigenschaftenseite für "JavaScript und C++ Debuggen" den Wert für "Lokales Netzwerkschleifenback zulassen" auf "Nein" fest.
Starten Sie nicht, sondern debuggen Sie meinen Code, wenn er startet/Anwendung starten
So konfigurieren Sie die Bereitstellung so, dass beim Starten der App automatisch eine Debugsitzung gestartet wird:
- Auf der Eigenschaftenseite "C# und Visual Basic Debuggen" aktivieren Sie das Kontrollkästchen Nicht starten, sondern meinen Code debuggen, wenn er startet.
- Legen Sie auf der Eigenschaftenseite "JavaScript" und "C++" Debugging den Wert Launch Application auf Jafest.
Symbole
Symboldateien enthalten eine Vielzahl von sehr nützlichen Daten beim Debuggen von Code, z. B. Variablen, Funktionsnamen und Einstiegspunktadressen, sodass Sie Ausnahmen und die Ausführungsreihenfolge des Aufrufstapels besser verstehen können. Symbole für die meisten Varianten von Windows sind über die Microsoft Symbol Server verfügbar oder können für schnellere, Offline-Nachschlagevorgänge unter Herunterladen von Windows-Symbolpaketenheruntergeladen werden.
Um Symboloptionen für Visual Studio festzulegen, wählen Sie Tools > Optionenaus, und wechseln Sie dann im Dialogfeld zum Debuggen > Symbole.
Um Symbole in einer Debugsitzung mit WinDbgzu laden, setzen Sie die sympath Variable auf den Symbolpaketspeicherort. Wenn Sie beispielsweise den folgenden Befehl ausführen, werden Symbole vom Microsoft Symbol Server geladen und dann im Verzeichnis "C:\Symbols" zwischengespeichert:
.sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
.reload
Sie können weitere Pfade mithilfe des ‘;’
Trennzeichens hinzufügen oder den Befehl .sympath+
verwenden. Für fortgeschrittenere Symboloperationen, die WinDbg verwenden, siehe öffentliche und private Symbole.
WinDbg
WinDbg ist ein leistungsstarker Debugger, der als Teil der Debugging-Tools für Windows-Suite ausgeliefert wird, das im Windows SDKenthalten ist. Mit der Windows SDK-Installation können Sie Debugtools für Windows als eigenständiges Produkt installieren. WinDbg ist zwar hoch nützlich für das Debuggen von systemeigenem Code, wird jedoch nicht für Apps empfohlen, die in verwaltetem Code oder HTML5 geschrieben wurden.
Um WinDbg mit UWP-Apps zu verwenden, müssen Sie zunächst die Prozesslebensdauerverwaltung (Process Lifetime Management, PLM) für Ihr App-Paket mithilfe von PLMDebug deaktivieren, wie in Test- und Debuggingtools für die Prozesslebensdauer-Verwaltung (Process Lifetime Management, PLM)beschrieben.
plmdebug /enableDebug [PackageFullName] ""C:\Program Files\Debugging Tools for Windows (x64)\WinDbg.exe\" -server npipe:pipe=test"
Im Gegensatz zu Visual Studio basiert der Großteil der Kernfunktionen von WinDbg auf der Bereitstellung von Befehlen für das Befehlsfenster. Mit den bereitgestellten Befehlen können Sie den Ausführungsstatus anzeigen, Absturzabbilder im Benutzermodus untersuchen und in einer Vielzahl von Modi debuggen.
Einer der beliebtesten Befehle in WinDbg ist !analyze -v
, der zum Abrufen umfassender Informationen über die aktuelle Ausnahme verwendet wird, einschließlich:
- FAULTING_IP: Anweisungszeiger zum Zeitpunkt des Fehlers
- EXCEPTION_RECORD: Adresse, Code und Kennzeichnungen der aktuellen Ausnahme
- STACK_TEXT: Stapelablaufverfolgung vor Ausnahme
Eine vollständige Liste aller WinDbg-Befehle finden Sie unter Debuggerbefehle.