Windows 10 UWP Remote deploy und debug

Ein Raspberry ist zwar eine günstige Einstiegsdroge, aber mit Zubehör kommen auch schnell mal 100€ zusammen. So habe ich mich entschlossen einen Mini Computer auszuprobieren. Ziel ist es für Unterwegs einen kleines Device zu haben um verteilte Apps simulieren zu können. Die Wahl fiel auf ein Gerät von Mini PC - CSL für 129€. Nach etlichen Stunden Update auch mit aktueller Windows Version.

WP_20161220_10_45_38_Pro

Runde 10cm lang, passt es in jede Notebook Tasche. Fürs einrichten habe ich das Ding per Bluetooth Tastatur und Maus konfiguriert. Als Monitor per inkl HDMI Adapter ans heimatliche TV angeschlossen. Leider alle paar Minuten eine Bluescreen gehabt. Auf Microsoft, Windows und CSI geflucht und das Ding weggepackt. Durch Zufall war der PC Stick über Nacht im Auto und quasi gefroren und plötzlich funktionierte es. Die Abwärme des LCD TV kombiniert mit der passiven Kühlung waren wohl zu viel.

Im nächsten Schritt wurde der Entwicklermodus auf dem Windows 10 Betriebsystem aktiviert. Nur so lassen sich UWP Apps per Visual Studio deployen. Dazu ruft man in den Einstellungen, den Punkt Update und Sicherheit auf.

Screenshot (2)

Eine interessante Option ist das Device Portal. Mit diesem erhält man eine Web Oberfläche (IP + Port 50080) um einen Windows 10 Device Remote zu administrieren. Das wird später noch gebraucht.

Zu diesem Zeitpunkt sollte in Visual Studio der RemoteConnection Manager das Gerät schon finden. Es funktioniert auch Wlan, muss sich aber im gleichen IP Netz befinden. Das Pairing von Devices ist in meinem Fall nicht nötig gewesen.

remote1

Es stehen drei Authentifizierungsverfahren zu Verfügung. Da mein Mini PC eine WIndows Workgroup außerhalb der Domain ist, muss ich “keine Authentifizierung verwenden”.

Nun muss auf dem Remote Device noch die Visual Studio Debugging Erweiterung installiert werden. Zu Finden als Download zu Visual Studio 2017 Tools.

Es bestehen zwei Möglichkeiten die Debugging Erweiterung zu betreiben. Per Config Wizard lassen sich diese als Service anlegen, so das kein Benutzer angemeldet sein muss.

Capture3

Allerdings muss man sich dann unbedingt Authentifizieren, was mir in der vorliegenden Konfiguration nicht erfolgreich gelungen ist.

Der Zweite Weg startet einfach die Anwendung. Das erfordert einen Windows Konfiguration mit automatischer Anmeldung. Mein Ziel ist es ja, ohne Bildschirm den Mini PC betreiben zu können. Ein gestartetes MSVSMON.EXE:

Capture

Auch hier gibt es Probleme im Detail. Man muss explizit einstellen, das anonym remote Debugging klappt.

Capture2

Für einen ersten Test sollte das Szenario aber schon reichen.

Das Visual Studio Projekt kann nun als Ziel ein Remote Computer auswählen. Die Einstellungen finden sich in den Einstellungen des Projektes-Debugging.

image

Wenn das Deployment fehl schlägt, gibt das Output Windows Auskunft über Details.

Schweregrad    Code    Beschreibung    Projekt    Datei    Zeile    Unterdrückungszustand
Fehler        DEP0700: Fehler beim Registrieren der App. [0x80073CF9] Another user has already installed an unpackaged version of this app. The current user cannot replace this with a packaged version. The conflicting package is 239d0767-27e8-4f1d-bea1-1f7055628def and it was published by CN=pre.    romeApp3
           

 

In meinem Fall habe ich die App beim Testen unter einem anderen Benutzer installiert und konnte sie nicht überschreiben. Hier greife ich nun zum Remote Device Management und verwalte die installierten Apps aus dem Browser.

remote5

So kann ich die APP löschen.

Letztendlich habe ich mich für die automatische Anmeldung ohne Passwort entschieden. Der Default Benutzer hat auch die nötigen Administrator Rechte für das Remote Debugging. Deswegen benötige ich MSVSMON  mit Optionen gestartet, die mir die nötigen Settings vornimmt.

/noauth /anyuser /nosecuritywarn

Wenn das auf der Kommando Zeile (CMD.EXE) klappt, wird es Zeit das in die Autostart Optionen zu übernehmen. Dazu benötigt man regedit, weil das nur per Registry möglich ist.

Der Registry Pfad lautet HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Capture6

Als Test nun den Mini PC neu starten und es erscheint der Visual Studio Remote Debugger Dialog von vorhin. Ergänzt um eine weitere Zeile die auf die fehlende Authentifizierung hinweist. Wenn das Deployment mit Visual Studio erfolgt, erscheint eine dritte Zeile die den angemeldeten Benutzer ausgibt.

Der Vollständigkeit halber zwei weitere Fehlermeldungen aus dem Visual Studio Output Fenster. Im ersten Fall war MSVSMON nicht gestartet. Leicht zu prüfen über den Task Manager (auch per Web based Device Management), Im zweiten Fall war auf dem Entwicklungsrechner die falsche Authentifizierungsmethode ausgewählt.

1>------ Bereitstellung gestartet: Projekt: romeApp3, Konfiguration: Debug x86 ------
1>Fehler: Die Verbindung mit dem Microsoft Visual Studio Remote Debugger mit dem Namen "win10-mini" konnte nicht hergestellt werden.  Visual Studio Remote Debugger (MSVSMON.EXE) wird auf dem Remotecomputer anscheinend nicht ausgeführt. Dies kann daran liegen, dass die Kommunikation mit dem Remotecomputer durch eine Firewall verhindert wird. Informationen zum Konfigurieren des Remotedebugging finden Sie in der Hilfe.
========== Erstellen: 0 erfolgreich, 0 fehlerhaft, 1 aktuell, 0 übersprungen ==========
========== Bereitstellen: 0 erfolgreich, 1 fehlerhaft, 0 übersprungen ==========
windows 10 developer mode msvson

Schweregrad    Code    Beschreibung    Projekt    Datei    Zeile    Unterdrückungszustand
Fehler        DEP6957: Fehler beim Herstellen einer Verbindung mit dem Gerät "192.168.0.108" mithilfe universeller Authentifizierung. Bitte stellen Sie sicher, dass der richtige Remoteauthentifizierungsmodus in den Debugeinstellungen des Projekts angegeben wird. COMException - The network event being waited on triggered an error. [0x8007274C]    romeApp3

Kommentare sind geschlossen