Ich habe eine kopflose App in C # für den Raspberry Pi 2 B entwickelt.
Ich kann die App in Visual Studio problemlos debuggen. Ich habe ein Ethernet-Kabel direkt zwischen meiner Workstation und der Karte angeschlossen. Wenn ich in meinem Browser navigiere zu: minwinpc:8080/AppXManager.htm
Ich kann das gewünschte Programm in der Liste der installierten Apps sehen. Ich habe versucht, es zu entfernen, in VS neu zu erstellen / neu bereitzustellen, und die App verlässt die Liste und kehrt von der Liste zurück. Daher weiß ich, dass es die aktuelle Version ist.
Das Problem ist: Ich kann es nicht über die Web-GUI auf "Start" bringen. Ich wähle meine App aus und erhalte dann den folgenden Fehler:
Failed to start package BlinkyHeadlessCS-uwp_q8jk9dv1tcdg!App
Wie kann ich festlegen, dass mein Blinkprogramm über die Web-Benutzeroberfläche gestartet wird, und wie kann ich es nach dem Start automatisch ausführen lassen?
quelle
Antworten:
WOOO HOOO !!!!
OK, also habe ich es endlich verstanden ...
Dies hat bei mir funktioniert, wenn nur eine (1) Headless-App bereitgestellt wurde.
Schritt 1: Öffnen Sie Powershell als Administrator
Schritt 2: Stellen Sie mit diesem Befehl eine Verbindung zur Karte her:
net start WinRM
... HINWEIS Ich hatte ein Ethernet-Kabel direkt von meinem Laptop zur Himbeer-Pi-2-Karte. HINWEIS Wenn Sie VS bereits ausgeführt haben, wird Ihnen mitgeteilt, dass Sie bereits eine Verbindung hergestellt haben ...Schritt 3: Führen Sie in Powershell das nächste Mal aus
Set-Item WSMan:\localhost\Client\TrustedHosts -Value minwinpc
... Ich habe den Standardnamen für mein Gerät beibehalten . HINWEIS Wenn Sie dazu aufgefordert werden, geben Sie 'Y' ein.Schritt 4:
Enter-PSSession -ComputerName minwinpc -Credential minwinpc\Administrator
... HINWEIS Sie werden zur Eingabe des Kennworts aufgefordert. Wenn Sie die Standardeinstellung annehmen, geben Sie "p @ ssw0rd" ein - ja, Groß- und Kleinschreibung beachtenSchritt 5: Warte eine Weile ... im Ernst, es dauert einen Moment ...
Schritt 6: In Powershell wird nun der Gerätename in der Eingabeaufforderung angezeigt. Geben Sie den folgenden Befehl ein:
IotStartup remove
Schritt 7: Geben Sie in Powershell ... Folgendes ein:
IotStartup list
..., um den Namen der kopflosen App zu erhalten, die Sie standardmäßig verwenden möchten.Schritt 8: In Powershell ... Typ:
IotStartup add headless <the-exact-full-name-of-the-headless-app-here>
Schritt 9: Geben Sie in Powershell ... Folgendes ein:
setbootoption headless
.... Dies fordert Sie bei Erfolg zum Neustart aufSchritt 10: Geben Sie in Powershell ... Folgendes ein:
shutdown /r /t 0
... dies führt dazu, dass Ihr Gerät sofort neu gestartet wird- FERTIG .... von hier aus warten Sie nur, bis Ihre App startet! Ich hatte ein einfaches LED-Programm und es startete schließlich von selbst nach dem Neustart.
quelle
Sie können von Visual Studio aus eine Verbindung zu Ihrer App herstellen. (Nur Debuggen, Release scheint nicht zu funktionieren)
Do not launch, but debug my code when it starts
Wenn Ihre App beim Debuggen keinen Ausnahmebruchpunkt erreicht, aber dennoch eine Fehlermeldung angezeigt wird, ist etwas anderes fehlerhaft. Möglicherweise hat Ihre SD-Karte Dateien beschädigt? Versuchen Sie es mit einer anderen SD-Karte und einer Neuinstallation
Autostart-App
Sie können dies über das WebGui Now
Oder Sie können mit SSH oder Powershell eine Verbindung zur IoT-Powershell-Befehlszeile herstellen. Ich denke, SSH ist einfacher.
headed
(für Apps, die einen Bildschirm verwenden) oderheadless
(für kopflose Apps) und den appName, wenn das Ergebnis zuvor ein einzelnes Element oder stattdessen den vollständigen seltsamen Namen warheader :
Befehle:
und um die Standard-App zurückzusetzen
Weitere Debugging-Optionen
Sie können auch eine Verbindung zu einem beliebigen Remote-Prozess herstellen, ohne ein Projekt zu öffnen und einfach auf die
Attach
Wiedergabetaste zu klicken . Dies funktioniert jedoch nicht gut, wenn es beim Start abgestürzt ist, kann aber funktionieren, wenn eine App jedes Mal an einem bestimmten Ort abstürzt.Sie können den Absturzspeicherauszug über die WebGUI unter Debuggen anzeigen, aber diese Speicherauszugsdateien sind kernelspezifisch und können beim Debuggen sehr mühsam sein. Dies beinhaltet keine Fehlermeldungen oder leicht verständlichen Stapelspeicherauszüge. Weitere Informationen hier , obwohl ich
.dmp
in Visual 2015 keine Datei öffnen konnte , möglicherweise weil es sich um die Community-Edition handelt. Aber selbst mein Pro 2013 wird es nicht öffnen.quelle